summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
commit2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch)
tree988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
parentdd91e772430dc294e3bf478c119ef8d43c0a3358 (diff)
downloadqtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp')
-rw-r--r--Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp50
1 files changed, 38 insertions, 12 deletions
diff --git a/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp b/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
index de22a9fb3..f510016de 100644
--- a/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
@@ -21,14 +21,22 @@
#include "config.h"
#include "QtWebPageLoadClient.h"
+#include "QtWebError.h"
#include "WKStringQt.h"
#include "qquickwebview_p.h"
#include "qquickwebview_p_p.h"
#include "qwebloadrequest_p.h"
+#include <KURL.h>
#include <WKFrame.h>
+#include <WebPageProxy.h>
+
+using namespace WebCore;
+
+namespace WebKit {
QtWebPageLoadClient::QtWebPageLoadClient(WKPageRef pageRef, QQuickWebView* webView)
: m_webView(webView)
+ , m_webPageProxy(toImpl(pageRef))
, m_loadProgress(0)
{
WKPageLoaderClient loadClient;
@@ -50,31 +58,45 @@ QtWebPageLoadClient::QtWebPageLoadClient(WKPageRef pageRef, QQuickWebView* webVi
WKPageSetPageLoaderClient(pageRef, &loadClient);
}
-void QtWebPageLoadClient::didStartProvisionalLoadForFrame(const QUrl& url)
+void QtWebPageLoadClient::completeLoadWhenProcessDidCrashIfNeeded()
+{
+ // Check if loading was ongoing, when process crashed.
+ if (!m_loadProgress || m_loadProgress == 100)
+ return;
+
+ QUrl url(KURL(WebCore::ParsedURLString, m_webPageProxy->urlAtProcessExit()));
+ QWebLoadRequest loadRequest(url, QQuickWebView::LoadFailedStatus, QLatin1String("The web process crashed."), QQuickWebView::InternalErrorDomain, 0);
+
+ emit m_webView->loadingChanged(&loadRequest);
+ setLoadProgress(100);
+}
+
+void QtWebPageLoadClient::didStartProvisionalLoad(const QUrl& url)
{
QWebLoadRequest loadRequest(url, QQuickWebView::LoadStartedStatus);
- m_webView->d_func()->didChangeLoadingState(&loadRequest);
+ emit m_webView->loadingChanged(&loadRequest);
}
-void QtWebPageLoadClient::didCommitLoadForFrame()
+void QtWebPageLoadClient::didCommitLoad()
{
emit m_webView->navigationHistoryChanged();
emit m_webView->urlChanged();
+ emit m_webView->titleChanged();
m_webView->d_func()->loadDidCommit();
}
-void QtWebPageLoadClient::didSameDocumentNavigationForFrame()
+void QtWebPageLoadClient::didSameDocumentNavigation()
{
emit m_webView->navigationHistoryChanged();
emit m_webView->urlChanged();
}
-void QtWebPageLoadClient::didReceiveTitleForFrame()
+void QtWebPageLoadClient::didReceiveTitle()
{
emit m_webView->titleChanged();
}
-void QtWebPageLoadClient::didFirstVisuallyNonEmptyLayoutForFrame()
+void QtWebPageLoadClient::didFirstVisuallyNonEmptyLayout()
{
m_webView->d_func()->didFinishFirstNonEmptyLayout();
}
@@ -122,7 +144,7 @@ void QtWebPageLoadClient::didStartProvisionalLoadForFrame(WKPageRef, WKFrameRef
WebFrameProxy* wkframe = toImpl(frame);
QString urlStr(wkframe->provisionalURL());
QUrl qUrl = urlStr;
- toQtWebPageLoadClient(clientInfo)->didStartProvisionalLoadForFrame(qUrl);
+ toQtWebPageLoadClient(clientInfo)->didStartProvisionalLoad(qUrl);
}
void QtWebPageLoadClient::didFailProvisionalLoadWithErrorForFrame(WKPageRef, WKFrameRef frame, WKErrorRef error, WKTypeRef, const void* clientInfo)
@@ -136,7 +158,7 @@ void QtWebPageLoadClient::didCommitLoadForFrame(WKPageRef, WKFrameRef frame, WKT
{
if (!WKFrameIsMainFrame(frame))
return;
- toQtWebPageLoadClient(clientInfo)->didCommitLoadForFrame();
+ toQtWebPageLoadClient(clientInfo)->didCommitLoad();
}
void QtWebPageLoadClient::didFinishLoadForFrame(WKPageRef, WKFrameRef frame, WKTypeRef, const void* clientInfo)
@@ -153,16 +175,18 @@ void QtWebPageLoadClient::didFailLoadWithErrorForFrame(WKPageRef, WKFrameRef fra
toQtWebPageLoadClient(clientInfo)->dispatchLoadFailed(error);
}
-void QtWebPageLoadClient::didSameDocumentNavigationForFrame(WKPageRef page, WKFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef userData, const void* clientInfo)
+void QtWebPageLoadClient::didSameDocumentNavigationForFrame(WKPageRef, WKFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef userData, const void* clientInfo)
{
- toQtWebPageLoadClient(clientInfo)->didSameDocumentNavigationForFrame();
+ if (!WKFrameIsMainFrame(frame))
+ return;
+ toQtWebPageLoadClient(clientInfo)->didSameDocumentNavigation();
}
void QtWebPageLoadClient::didReceiveTitleForFrame(WKPageRef, WKStringRef title, WKFrameRef frame, WKTypeRef, const void* clientInfo)
{
if (!WKFrameIsMainFrame(frame))
return;
- toQtWebPageLoadClient(clientInfo)->didReceiveTitleForFrame();
+ toQtWebPageLoadClient(clientInfo)->didReceiveTitle();
}
void QtWebPageLoadClient::didStartProgress(WKPageRef, const void* clientInfo)
@@ -186,10 +210,12 @@ void QtWebPageLoadClient::didFirstVisuallyNonEmptyLayoutForFrame(WKPageRef, WKFr
{
if (!WKFrameIsMainFrame(frame))
return;
- toQtWebPageLoadClient(clientInfo)->didFirstVisuallyNonEmptyLayoutForFrame();
+ toQtWebPageLoadClient(clientInfo)->didFirstVisuallyNonEmptyLayout();
}
void QtWebPageLoadClient::didChangeBackForwardList(WKPageRef, WKBackForwardListItemRef, WKArrayRef, const void *clientInfo)
{
toQtWebPageLoadClient(clientInfo)->didChangeBackForwardList();
}
+
+} // namespace Webkit