summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@theqtcompany.com>2015-09-05 19:14:17 -0700
committerJake Petroules <jake.petroules@theqtcompany.com>2015-09-10 21:09:14 +0000
commit5555afd6ce01bc9891ee33b075cc53f4fa48665e (patch)
treea0fc64b10090e9c7c4574c57c17c92cccc5e3adb /examples
parentffddac06d3b98be9a477a5ecedc2acd255715453 (diff)
Emit a signal when the rendering process exits.
This allows users to implement a "sad tab" feature and/or track rendering process crashes using a crash reporting service. Task-number: QTBUG-48227 Change-Id: I97ef934fe5d0912cd0f41967a39052316b3c66b0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/webengine/quicknanobrowser/BrowserWindow.qml29
-rw-r--r--examples/webenginewidgets/demobrowser/demobrowser.pro1
-rw-r--r--examples/webenginewidgets/demobrowser/webview.cpp22
3 files changed, 52 insertions, 0 deletions
diff --git a/examples/webengine/quicknanobrowser/BrowserWindow.qml b/examples/webengine/quicknanobrowser/BrowserWindow.qml
index bdee68d17..4d7513fae 100644
--- a/examples/webengine/quicknanobrowser/BrowserWindow.qml
+++ b/examples/webengine/quicknanobrowser/BrowserWindow.qml
@@ -393,6 +393,35 @@ ApplicationWindow {
}
request.accept()
}
+
+ onRenderProcessTerminated: {
+ var status = ""
+ switch (terminationStatus) {
+ case WebEngineView.NormalTerminationStatus:
+ status = "(normal exit)"
+ break;
+ case WebEngineView.AbnormalTerminationStatus:
+ status = "(abnormal exit)"
+ break;
+ case WebEngineView.CrashedTerminationStatus:
+ status = "(crashed)"
+ break;
+ case WebEngineView.KilledTerminationStatus:
+ status = "(killed)"
+ break;
+ }
+
+ print("Render process exited with code " + exitCode + " " + status)
+ reloadTimer.running = true
+ }
+
+ Timer {
+ id: reloadTimer
+ interval: 0
+ running: false
+ repeat: false
+ onTriggered: currentWebView.reload()
+ }
}
}
}
diff --git a/examples/webenginewidgets/demobrowser/demobrowser.pro b/examples/webenginewidgets/demobrowser/demobrowser.pro
index 310aea59c..0893fe649 100644
--- a/examples/webenginewidgets/demobrowser/demobrowser.pro
+++ b/examples/webenginewidgets/demobrowser/demobrowser.pro
@@ -1,6 +1,7 @@
TEMPLATE = app
TARGET = demobrowser
QT += webenginewidgets network widgets printsupport
+CONFIG += c++11
qtHaveModule(uitools):!embedded: QT += uitools
else: DEFINES += QT_NO_UITOOLS
diff --git a/examples/webenginewidgets/demobrowser/webview.cpp b/examples/webenginewidgets/demobrowser/webview.cpp
index e454f06c4..c12f3db36 100644
--- a/examples/webenginewidgets/demobrowser/webview.cpp
+++ b/examples/webenginewidgets/demobrowser/webview.cpp
@@ -66,6 +66,7 @@
#include <QtCore/QDebug>
#include <QtCore/QBuffer>
+#include <QtCore/QTimer>
WebPage::WebPage(QWebEngineProfile *profile, QObject *parent)
: QWebEnginePage(profile, parent)
@@ -341,6 +342,27 @@ WebView::WebView(QWidget* parent)
this, SLOT(setProgress(int)));
connect(this, SIGNAL(loadFinished(bool)),
this, SLOT(loadFinished(bool)));
+ connect(this, &QWebEngineView::renderProcessTerminated,
+ [=](QWebEnginePage::RenderProcessTerminationStatus termStatus, int statusCode) {
+ const char *status = "";
+ switch (termStatus) {
+ case QWebEnginePage::NormalTerminationStatus:
+ status = "(normal exit)";
+ break;
+ case QWebEnginePage::AbnormalTerminationStatus:
+ status = "(abnormal exit)";
+ break;
+ case QWebEnginePage::CrashedTerminationStatus:
+ status = "(crashed)";
+ break;
+ case QWebEnginePage::KilledTerminationStatus:
+ status = "(killed)";
+ break;
+ }
+
+ qInfo() << "Render process exited with code" << statusCode << status;
+ QTimer::singleShot(0, [this] { reload(); });
+ });
}
void WebView::setPage(WebPage *_page)