Title: [142997] trunk/Source/WebKit2
Revision
142997
Author
[email protected]
Date
2013-02-15 07:33:57 -0800 (Fri, 15 Feb 2013)

Log Message

[Qt] Restore URL Scheme Delegates after QtWebProcess crash
https://bugs.webkit.org/show_bug.cgi?id=108808

When the QtWebProcess crashes, the registered URL Scheme
Delegates are not properly restored over IPC in the newly
launched process instance.

Patch by Milian Wolff <[email protected]> on 2013-02-15
Reviewed by Simon Hausmann.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::didRelaunchProcess):
(QQuickWebViewPrivate::updateSchemeDelegates):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (142996 => 142997)


--- trunk/Source/WebKit2/ChangeLog	2013-02-15 15:25:41 UTC (rev 142996)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-15 15:33:57 UTC (rev 142997)
@@ -1,3 +1,20 @@
+2013-02-15  Milian Wolff  <[email protected]>
+
+        [Qt] Restore URL Scheme Delegates after QtWebProcess crash
+        https://bugs.webkit.org/show_bug.cgi?id=108808
+
+        When the QtWebProcess crashes, the registered URL Scheme
+        Delegates are not properly restored over IPC in the newly
+        launched process instance.
+
+        Reviewed by Simon Hausmann.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewPrivate::didRelaunchProcess):
+        (QQuickWebViewPrivate::updateSchemeDelegates):
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate):
+
 2013-02-15  Allan Sandfeld Jensen  <[email protected]>
 
         Simplify hitTestResultAtPoint and nodesFromRect APIs

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (142996 => 142997)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2013-02-15 15:25:41 UTC (rev 142996)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2013-02-15 15:33:57 UTC (rev 142997)
@@ -589,6 +589,7 @@
 
     updateViewportSize();
     updateUserScripts();
+    updateSchemeDelegates();
 }
 
 PassOwnPtr<DrawingAreaProxy> QQuickWebViewPrivate::createDrawingAreaProxy()
@@ -869,6 +870,17 @@
     }
 }
 
+void QQuickWebViewPrivate::updateSchemeDelegates()
+{
+    webPageProxy->registerApplicationScheme(ASCIILiteral("qrc"));
+
+    QQmlListProperty<QQuickUrlSchemeDelegate> schemes = experimental->schemeDelegates();
+    for (int i = 0, numSchemes = experimental->schemeDelegates_Count(&schemes); i < numSchemes; ++i) {
+        QQuickUrlSchemeDelegate* scheme = experimental->schemeDelegates_At(&schemes, i);
+        webPageProxy->registerApplicationScheme(scheme->scheme());
+    }
+}
+
 QPointF QQuickWebViewPrivate::contentPos() const
 {
     Q_Q(const QQuickWebView);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (142996 => 142997)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2013-02-15 15:25:41 UTC (rev 142996)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2013-02-15 15:33:57 UTC (rev 142997)
@@ -115,6 +115,7 @@
     bool transparentBackground() const;
     void setNavigatorQtObjectEnabled(bool);
     void updateUserScripts();
+    void updateSchemeDelegates();
 
     QPointF contentPos() const;
     void setContentPos(const QPointF&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to