summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2013-08-27 17:23:41 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-02 18:09:23 +0200
commitd6fee73e2129588ef14f57f88ab1556fe5a1fa98 (patch)
tree9a3bc5ee4cf1d09218cb156afb227d2c8220cdc1 /Source/WebKit2/UIProcess/API
parent9f77554d6667f5c5dc6e172f3d1dee2277e33917 (diff)
downloadqtwebkit-d6fee73e2129588ef14f57f88ab1556fe5a1fa98.tar.gz
[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): NOTE: This is the initial iteration of the patch attached to upstream bug report 108474, i.e.: https://bug-108474-attachments.webkit.org/attachment.cgi?id=185771 The actually committed version is incompatible with the status of QtWebKit stable as the architecture changed too much. Change-Id: I91d28dde2774fd1487a96ac36a14b522ffb7756c git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153580 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/API')
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp24
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h5
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h2
3 files changed, 31 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
index c3e372b54..053987b3e 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
@@ -484,16 +484,40 @@ void QQuickWebViewPrivate::processDidCrash()
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.");
webPageProxy->drawingArea()->setSize(viewSize(), IntSize());
updateViewportSize();
updateUserScripts();
+
+ emit q->experimental()->didRelaunchProcess();
+}
+
+void QQuickWebViewPrivate::processDidBecomeUnresponsive()
+{
+ Q_Q(QQuickWebView);
+
+ qWarning("WARNING: The web process has become unresponsive.");
+
+ emit q->experimental()->processDidBecomeUnresponsive();
+}
+
+void QQuickWebViewPrivate::processDidBecomeResponsive()
+{
+ Q_Q(QQuickWebView);
+
+ qWarning("WARNING: The web process has become responsive.");
+
+ emit q->experimental()->processDidBecomeResponsive();
}
PassOwnPtr<DrawingAreaProxy> QQuickWebViewPrivate::createDrawingAreaProxy()
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
index 1b372fa40..894224c7b 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
@@ -374,6 +374,11 @@ Q_SIGNALS:
void preferredMinimumContentsWidthChanged();
void remoteInspectorUrlChanged();
+ void processDidCrash();
+ void didRelaunchProcess();
+ void processDidBecomeUnresponsive();
+ void processDidBecomeResponsive();
+
private:
QQuickWebViewExperimental(QQuickWebView* webView, QQuickWebViewPrivate* webViewPrivate);
QQuickWebView* q_ptr;
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
index adedb6a31..2a46d5cdc 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
@@ -133,6 +133,8 @@ public:
virtual void pageDidRequestScroll(const QPoint& pos) { }
void processDidCrash();
void didRelaunchProcess();
+ void processDidBecomeUnresponsive();
+ void processDidBecomeResponsive();
PassOwnPtr<WebKit::DrawingAreaProxy> createDrawingAreaProxy();
void handleDownloadRequest(WebKit::DownloadProxy*);