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

Reply via email to