Title: [153580] trunk/Source/WebKit2
- Revision
- 153580
- Author
- [email protected]
- Date
- 2013-08-01 04:06:42 -0700 (Thu, 01 Aug 2013)
Log Message
[Qt] Enable QML handling of crashed/unresponsive QtWebProcess
https://bugs.webkit.org/show_bug.cgi?id=108474
Forward the processDidCrash, didRelaunchProcess, processDidBecomeUnresponsive
and processDidBecomeResponsive signals to QML's WebView.experimental.
Patch by Milian Wolff <[email protected]> on 2013-08-01
Reviewed by Jocelyn Turcotte.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::processDidCrash):
(QQuickWebViewPrivate::didRelaunchProcess):
(QQuickWebViewPrivate::processDidBecomeUnresponsive):
(QQuickWebViewPrivate::processDidBecomeResponsive):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (153579 => 153580)
--- trunk/Source/WebKit2/ChangeLog 2013-08-01 09:42:53 UTC (rev 153579)
+++ trunk/Source/WebKit2/ChangeLog 2013-08-01 11:06:42 UTC (rev 153580)
@@ -1,3 +1,22 @@
+2013-08-01 Milian Wolff <[email protected]>
+
+ [Qt] Enable QML handling of crashed/unresponsive QtWebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=108474
+
+ Forward the processDidCrash, didRelaunchProcess, processDidBecomeUnresponsive
+ and processDidBecomeResponsive signals to QML's WebView.experimental.
+
+ Reviewed by Jocelyn Turcotte.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::processDidCrash):
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ (QQuickWebViewPrivate::processDidBecomeUnresponsive):
+ (QQuickWebViewPrivate::processDidBecomeResponsive):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+
2013-07-31 Kwang Yul Seo <[email protected]>
Use emptyString instead of String("")
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (153579 => 153580)
--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp 2013-08-01 09:42:53 UTC (rev 153579)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp 2013-08-01 11:06:42 UTC (rev 153580)
@@ -364,6 +364,8 @@
loadClient.didChangeProgress = didChangeProgress;
loadClient.didFinishProgress = didFinishProgress;
loadClient.didChangeBackForwardList = didChangeBackForwardList;
+ loadClient.processDidBecomeUnresponsive = processDidBecomeUnresponsive;
+ loadClient.processDidBecomeResponsive = processDidBecomeResponsive;
WKPageSetPageLoaderClient(webPage.get(), &loadClient);
}
@@ -598,10 +600,14 @@
loadProgressDidChange(100);
emit q->loadingChanged(&loadRequest);
}
+
+ emit q->experimental()->processDidCrash();
}
void QQuickWebViewPrivate::didRelaunchProcess()
{
+ Q_Q(QQuickWebView);
+
qWarning("WARNING: The web process has been successfully restarted.");
if (DrawingAreaProxy *drawingArea = webPageProxy->drawingArea()) {
@@ -611,8 +617,24 @@
updateUserScripts();
updateSchemeDelegates();
}
+
+ emit q->experimental()->didRelaunchProcess();
}
+void QQuickWebViewPrivate::processDidBecomeUnresponsive(WKPageRef, const void* clientInfo)
+{
+ QQuickWebView* q = toQQuickWebViewPrivate(clientInfo)->q_ptr;
+
+ emit q->experimental()->processDidBecomeUnresponsive();
+}
+
+void QQuickWebViewPrivate::processDidBecomeResponsive(WKPageRef, const void* clientInfo)
+{
+ QQuickWebView* q = toQQuickWebViewPrivate(clientInfo)->q_ptr;
+
+ emit q->experimental()->processDidBecomeResponsive();
+}
+
PassOwnPtr<DrawingAreaProxy> QQuickWebViewPrivate::createDrawingAreaProxy()
{
return DrawingAreaProxyImpl::create(webPageProxy.get());
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h (153579 => 153580)
--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h 2013-08-01 09:42:53 UTC (rev 153579)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h 2013-08-01 11:06:42 UTC (rev 153580)
@@ -389,6 +389,11 @@
void remoteInspectorUrlChanged();
void textFound(int matchCount);
+ void processDidCrash();
+ void didRelaunchProcess();
+ void processDidBecomeUnresponsive();
+ void processDidBecomeResponsive();
+
private:
QQuickWebViewExperimental(QQuickWebView* webView, QQuickWebViewPrivate* webViewPrivate);
QQuickWebView* q_ptr;
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (153579 => 153580)
--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h 2013-08-01 09:42:53 UTC (rev 153579)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h 2013-08-01 11:06:42 UTC (rev 153580)
@@ -174,6 +174,8 @@
static void didChangeProgress(WKPageRef, const void* clientInfo);
static void didFinishProgress(WKPageRef, const void* clientInfo);
static void didChangeBackForwardList(WKPageRef, WKBackForwardListItemRef, WKArrayRef, const void *clientInfo);
+ static void processDidBecomeUnresponsive(WKPageRef, const void* clientInfo);
+ static void processDidBecomeResponsive(WKPageRef, const void* clientInfo);
QQuickWebViewPrivate(QQuickWebView* viewport);
RefPtr<WebKit::WebPageProxy> webPageProxy;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes