diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2013-08-27 17:23:41 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-02 18:09:23 +0200 |
commit | d6fee73e2129588ef14f57f88ab1556fe5a1fa98 (patch) | |
tree | 9a3bc5ee4cf1d09218cb156afb227d2c8220cdc1 /Source/WebKit2/UIProcess/API | |
parent | 9f77554d6667f5c5dc6e172f3d1dee2277e33917 (diff) | |
download | qtwebkit-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.cpp | 24 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h | 5 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h | 2 |
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*); |