summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2013-08-27 17:14:18 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-02 18:09:27 +0200
commit46eeccf7be809532af652cb57a7cb6f909644404 (patch)
treecd4423dcbfd9c2009dcc93befade29d6a12e50bf /Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
parente99cdcf1369fd54ea15079766b8a5b3d589fddc0 (diff)
downloadqtwebkit-46eeccf7be809532af652cb57a7cb6f909644404.tar.gz
[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): Change-Id: I14493ea1190053e5a523d2cf8a99cc8d526b4fd2 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142997 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
index c3e372b54..85ad6ea2c 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
@@ -494,6 +494,7 @@ void QQuickWebViewPrivate::didRelaunchProcess()
updateViewportSize();
updateUserScripts();
+ updateSchemeDelegates();
}
PassOwnPtr<DrawingAreaProxy> QQuickWebViewPrivate::createDrawingAreaProxy()
@@ -772,6 +773,17 @@ void QQuickWebViewPrivate::updateUserScripts()
webPageProxy->setUserScripts(scripts);
}
+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);