<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[178375] trunk/Source/WebKit2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/178375">178375</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2015-01-13 14:22:27 -0800 (Tue, 13 Jan 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Move more of the Navigation infrastructure down to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=140395
Reviewed by Anders Carlsson.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didStartProvisionalLoadForFrame):
(API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(API::LoaderClient::didCommitLoadForFrame):
(API::LoaderClient::didFinishDocumentLoadForFrame):
(API::LoaderClient::didFinishLoadForFrame):
(API::LoaderClient::didFailLoadWithErrorForFrame):
(API::LoaderClient::didSameDocumentNavigationForFrame):
(API::LoaderClient::didReceiveTitleForFrame):
(API::LoaderClient::didFirstLayoutForFrame):
(API::LoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
(API::LoaderClient::didRemoveFrameFromHierarchy):
(API::LoaderClient::didDisplayInsecureContentForFrame):
(API::LoaderClient::didRunInsecureContentForFrame):
(API::LoaderClient::didDetectXSSForFrame):
(API::LoaderClient::didLayout):
(API::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
(API::LoaderClient::didReceiveAuthenticationChallengeInFrame):
(API::LoaderClient::didStartProgress):
(API::LoaderClient::didChangeProgress):
(API::LoaderClient::didFinishProgress):
(API::LoaderClient::processDidBecomeUnresponsive):
(API::LoaderClient::interactionOccurredWhileProcessUnresponsive):
(API::LoaderClient::processDidBecomeResponsive):
(API::LoaderClient::processDidCrash):
(API::LoaderClient::didChangeBackForwardList):
(API::LoaderClient::shouldKeepCurrentBackForwardListItemInList):
(API::LoaderClient::willGoToBackForwardListItem):
(API::LoaderClient::pluginLoadPolicy):
(API::LoaderClient::didFailToInitializePlugin):
(API::LoaderClient::didBlockInsecurePluginVersion):
(API::LoaderClient::webGLLoadPolicy):
(API::LoaderClient::resolveWebGLLoadPolicy):
(API::LoaderClient::didDestroyNavigation): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
(WebKit::NavigationState::LoaderClient::didLayout):
(WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):
(WebKit::NavigationState::LoaderClient::processDidCrash):
(WebKit::NavigationState::LoaderClient::didDestroyNavigation): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::didStartProgress):
(WebKit::WebPageProxy::didChangeProgress):
(WebKit::WebPageProxy::didFinishProgress):
(WebKit::WebPageProxy::didDestroyNavigation):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
(WebKit::WebPageProxy::didFailToInitializePlugin):
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):
- Moves conversion from navigationID to API::Navigation into WebPageProxy
from NavigationState.
- Changes API::LoaderClient to pass WebPageProxy and WebFrameProxy by reference
rather than pointer, and to take an API::Navigation instead of a navigationID.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
Move access of the navigationID to after calling into the client bundle to avoid
passing a navigationID of a deleted navigation to the UIProcess. This problem was
caught via the WebKit2.StopLoadingDuringDidFailProvisionalLoadTest API test, which
now exercises the Navigation code path. Had that test been written using a Navigation
delegate, the issue would have happened prior to this change.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPILoaderClienth">trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaNavigationStateh">trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaNavigationStatemm">trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/ChangeLog        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -1,3 +1,110 @@
</span><ins>+2015-01-13 Sam Weinig <sam@webkit.org>
+
+ Move more of the Navigation infrastructure down to WebPageProxy
+ https://bugs.webkit.org/show_bug.cgi?id=140395
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/API/APILoaderClient.h:
+ (API::LoaderClient::didStartProvisionalLoadForFrame):
+ (API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
+ (API::LoaderClient::didCommitLoadForFrame):
+ (API::LoaderClient::didFinishDocumentLoadForFrame):
+ (API::LoaderClient::didFinishLoadForFrame):
+ (API::LoaderClient::didFailLoadWithErrorForFrame):
+ (API::LoaderClient::didSameDocumentNavigationForFrame):
+ (API::LoaderClient::didReceiveTitleForFrame):
+ (API::LoaderClient::didFirstLayoutForFrame):
+ (API::LoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
+ (API::LoaderClient::didRemoveFrameFromHierarchy):
+ (API::LoaderClient::didDisplayInsecureContentForFrame):
+ (API::LoaderClient::didRunInsecureContentForFrame):
+ (API::LoaderClient::didDetectXSSForFrame):
+ (API::LoaderClient::didLayout):
+ (API::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
+ (API::LoaderClient::didReceiveAuthenticationChallengeInFrame):
+ (API::LoaderClient::didStartProgress):
+ (API::LoaderClient::didChangeProgress):
+ (API::LoaderClient::didFinishProgress):
+ (API::LoaderClient::processDidBecomeUnresponsive):
+ (API::LoaderClient::interactionOccurredWhileProcessUnresponsive):
+ (API::LoaderClient::processDidBecomeResponsive):
+ (API::LoaderClient::processDidCrash):
+ (API::LoaderClient::didChangeBackForwardList):
+ (API::LoaderClient::shouldKeepCurrentBackForwardListItemInList):
+ (API::LoaderClient::willGoToBackForwardListItem):
+ (API::LoaderClient::pluginLoadPolicy):
+ (API::LoaderClient::didFailToInitializePlugin):
+ (API::LoaderClient::didBlockInsecurePluginVersion):
+ (API::LoaderClient::webGLLoadPolicy):
+ (API::LoaderClient::resolveWebGLLoadPolicy):
+ (API::LoaderClient::didDestroyNavigation): Deleted.
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageSetPageLoaderClient):
+ * UIProcess/Cocoa/NavigationState.h:
+ * UIProcess/Cocoa/NavigationState.mm:
+ (WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
+ (WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
+ (WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
+ (WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
+ (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
+ (WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
+ (WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
+ (WebKit::NavigationState::LoaderClient::didLayout):
+ (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
+ (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):
+ (WebKit::NavigationState::LoaderClient::processDidCrash):
+ (WebKit::NavigationState::LoaderClient::didDestroyNavigation): Deleted.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didChangeBackForwardList):
+ (WebKit::WebPageProxy::willGoToBackForwardListItem):
+ (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
+ (WebKit::WebPageProxy::findPlugin):
+ (WebKit::WebPageProxy::didStartProgress):
+ (WebKit::WebPageProxy::didChangeProgress):
+ (WebKit::WebPageProxy::didFinishProgress):
+ (WebKit::WebPageProxy::didDestroyNavigation):
+ (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didCommitLoadForFrame):
+ (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
+ (WebKit::WebPageProxy::didFinishLoadForFrame):
+ (WebKit::WebPageProxy::didFailLoadForFrame):
+ (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
+ (WebKit::WebPageProxy::didReceiveTitleForFrame):
+ (WebKit::WebPageProxy::didFirstLayoutForFrame):
+ (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
+ (WebKit::WebPageProxy::didLayout):
+ (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
+ (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
+ (WebKit::WebPageProxy::didRunInsecureContentForFrame):
+ (WebKit::WebPageProxy::didDetectXSSForFrame):
+ (WebKit::WebPageProxy::webGLPolicyForURL):
+ (WebKit::WebPageProxy::resolveWebGLPolicyForURL):
+ (WebKit::WebPageProxy::processDidBecomeUnresponsive):
+ (WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
+ (WebKit::WebPageProxy::processDidBecomeResponsive):
+ (WebKit::WebPageProxy::processDidCrash):
+ (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
+ (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
+ (WebKit::WebPageProxy::didFailToInitializePlugin):
+ (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
+ - Moves conversion from navigationID to API::Navigation into WebPageProxy
+ from NavigationState.
+ - Changes API::LoaderClient to pass WebPageProxy and WebFrameProxy by reference
+ rather than pointer, and to take an API::Navigation instead of a navigationID.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
+ Move access of the navigationID to after calling into the client bundle to avoid
+ passing a navigationID of a deleted navigation to the UIProcess. This problem was
+ caught via the WebKit2.StopLoadingDuringDidFailProvisionalLoadTest API test, which
+ now exercises the Navigation code path. Had that test been written using a Navigation
+ delegate, the issue would have happened prior to this change.
+
</ins><span class="cx"> 2015-01-13 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> Begin stubbing out a per page process lifetime tracker object
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPILoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -50,50 +50,50 @@
</span><span class="cx"> namespace API {
</span><span class="cx">
</span><span class="cx"> class Dictionary;
</span><ins>+class Navigation;
</ins><span class="cx"> class Object;
</span><span class="cx">
</span><span class="cx"> class LoaderClient {
</span><span class="cx"> public:
</span><span class="cx"> virtual ~LoaderClient() { }
</span><span class="cx">
</span><del>- virtual void didStartProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, API::Object*) { }
- virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, API::Object*) { }
- virtual void didFailProvisionalLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, const WebCore::ResourceError&, API::Object*) { }
- virtual void didCommitLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, API::Object*) { }
- virtual void didFinishDocumentLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, API::Object*) { }
- virtual void didFinishLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, API::Object*) { }
- virtual void didFailLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, const WebCore::ResourceError&, API::Object*) { }
- virtual void didSameDocumentNavigationForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t, WebKit::SameDocumentNavigationType, API::Object*) { }
- virtual void didReceiveTitleForFrame(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, API::Object*) { }
- virtual void didFirstLayoutForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
- virtual void didDestroyNavigation(WebKit::WebPageProxy*, uint64_t) { }
</del><ins>+ virtual void didStartProvisionalLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
+ virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
+ virtual void didFailProvisionalLoadWithErrorForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
+ virtual void didCommitLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
+ virtual void didFinishDocumentLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
+ virtual void didFinishLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
+ virtual void didFailLoadWithErrorForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) { }
+ virtual void didSameDocumentNavigationForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, WebKit::SameDocumentNavigationType, API::Object*) { }
+ virtual void didReceiveTitleForFrame(WebKit::WebPageProxy&, const WTF::String&, WebKit::WebFrameProxy&, API::Object*) { }
+ virtual void didFirstLayoutForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
</ins><span class="cx">
</span><span class="cx"> // FIXME: We should consider removing didFirstVisuallyNonEmptyLayoutForFrame since it is replaced by didLayout.
</span><del>- virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
</del><ins>+ virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
</ins><span class="cx">
</span><del>- virtual void didRemoveFrameFromHierarchy(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
- virtual void didDisplayInsecureContentForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
- virtual void didRunInsecureContentForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
- virtual void didDetectXSSForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }
</del><ins>+ virtual void didRemoveFrameFromHierarchy(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
+ virtual void didDisplayInsecureContentForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
+ virtual void didRunInsecureContentForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
+ virtual void didDetectXSSForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
</ins><span class="cx">
</span><del>- virtual void didLayout(WebKit::WebPageProxy*, WebCore::LayoutMilestones, API::Object*) { }
</del><ins>+ virtual void didLayout(WebKit::WebPageProxy&, WebCore::LayoutMilestones, API::Object*) { }
</ins><span class="cx">
</span><del>- virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::WebProtectionSpace*) { return false; }
- virtual void didReceiveAuthenticationChallengeInFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::AuthenticationChallengeProxy*) { }
</del><ins>+ virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, WebKit::WebProtectionSpace*) { return false; }
+ virtual void didReceiveAuthenticationChallengeInFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, WebKit::AuthenticationChallengeProxy*) { }
</ins><span class="cx">
</span><del>- virtual void didStartProgress(WebKit::WebPageProxy*) { }
- virtual void didChangeProgress(WebKit::WebPageProxy*) { }
- virtual void didFinishProgress(WebKit::WebPageProxy*) { }
</del><ins>+ virtual void didStartProgress(WebKit::WebPageProxy&) { }
+ virtual void didChangeProgress(WebKit::WebPageProxy&) { }
+ virtual void didFinishProgress(WebKit::WebPageProxy&) { }
</ins><span class="cx">
</span><span class="cx"> // FIXME: These three functions should not be part of this client.
</span><del>- virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy*) { }
- virtual void interactionOccurredWhileProcessUnresponsive(WebKit::WebPageProxy*) { }
- virtual void processDidBecomeResponsive(WebKit::WebPageProxy*) { }
- virtual void processDidCrash(WebKit::WebPageProxy*) { }
</del><ins>+ virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy&) { }
+ virtual void interactionOccurredWhileProcessUnresponsive(WebKit::WebPageProxy&) { }
+ virtual void processDidBecomeResponsive(WebKit::WebPageProxy&) { }
+ virtual void processDidCrash(WebKit::WebPageProxy&) { }
</ins><span class="cx">
</span><del>- virtual void didChangeBackForwardList(WebKit::WebPageProxy*, WebKit::WebBackForwardListItem*, Vector<RefPtr<WebKit::WebBackForwardListItem>>) { }
- virtual bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy*, WebKit::WebBackForwardListItem*) { return true; }
- virtual void willGoToBackForwardListItem(WebKit::WebPageProxy*, WebKit::WebBackForwardListItem*, API::Object*) { }
</del><ins>+ virtual void didChangeBackForwardList(WebKit::WebPageProxy&, WebKit::WebBackForwardListItem*, Vector<RefPtr<WebKit::WebBackForwardListItem>>) { }
+ virtual bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy&, WebKit::WebBackForwardListItem*) { return true; }
+ virtual void willGoToBackForwardListItem(WebKit::WebPageProxy&, WebKit::WebBackForwardListItem*, API::Object*) { }
</ins><span class="cx">
</span><span class="cx"> virtual PassRefPtr<Data> webCryptoMasterKey(WebKit::WebPageProxy&) { return nullptr; }
</span><span class="cx">
</span><span class="lines">@@ -103,14 +103,14 @@
</span><span class="cx"> virtual void didUpdateHistoryTitle(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy&) { }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>- virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy*, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary*, WTF::String& /* unavailabilityDescription */) { return currentPluginLoadPolicy; }
- virtual void didFailToInitializePlugin(WebKit::WebPageProxy*, API::Dictionary*) { }
- virtual void didBlockInsecurePluginVersion(WebKit::WebPageProxy*, API::Dictionary*) { }
</del><ins>+ virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy&, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary*, WTF::String& /* unavailabilityDescription */) { return currentPluginLoadPolicy; }
+ virtual void didFailToInitializePlugin(WebKit::WebPageProxy&, API::Dictionary*) { }
+ virtual void didBlockInsecurePluginVersion(WebKit::WebPageProxy&, API::Dictionary*) { }
</ins><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">
</span><span class="cx"> #if ENABLE(WEBGL)
</span><del>- virtual WebCore::WebGLLoadPolicy webGLLoadPolicy(WebKit::WebPageProxy*, const WTF::String&) const { return WebCore::WebGLLoadPolicy::WebGLAllowCreation; }
- virtual WebCore::WebGLLoadPolicy resolveWebGLLoadPolicy(WebKit::WebPageProxy*, const WTF::String&) const { return WebCore::WebGLLoadPolicy::WebGLAllowCreation; }
</del><ins>+ virtual WebCore::WebGLLoadPolicy webGLLoadPolicy(WebKit::WebPageProxy&, const WTF::String&) const { return WebCore::WebGLLoadPolicy::WebGLAllowCreation; }
+ virtual WebCore::WebGLLoadPolicy resolveWebGLLoadPolicy(WebKit::WebPageProxy&, const WTF::String&) const { return WebCore::WebGLLoadPolicy::WebGLAllowCreation; }
</ins><span class="cx"> #endif // ENABLE(WEBGL)
</span><span class="cx">
</span><span class="cx"> #if USE(QUICK_LOOK)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -785,207 +785,207 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- virtual void didStartProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, API::Object* userData) override
</del><ins>+ virtual void didStartProvisionalLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didStartProvisionalLoadForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didStartProvisionalLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, API::Object* userData) override
</del><ins>+ virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, const ResourceError& error, API::Object* userData) override
</del><ins>+ virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, const ResourceError& error, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFailProvisionalLoadWithErrorForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(&page), toAPI(&frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didCommitLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, API::Object* userData) override
</del><ins>+ virtual void didCommitLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didCommitLoadForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didCommitLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFinishDocumentLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, API::Object* userData) override
</del><ins>+ virtual void didFinishDocumentLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFinishDocumentLoadForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFinishDocumentLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFinishLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, API::Object* userData) override
</del><ins>+ virtual void didFinishLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFinishLoadForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFinishLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, const ResourceError& error, API::Object* userData) override
</del><ins>+ virtual void didFailLoadWithErrorForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, const ResourceError& error, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFailLoadWithErrorForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFailLoadWithErrorForFrame(toAPI(&page), toAPI(&frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didSameDocumentNavigationForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t, SameDocumentNavigationType type, API::Object* userData) override
</del><ins>+ virtual void didSameDocumentNavigationForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, SameDocumentNavigationType type, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didSameDocumentNavigationForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didSameDocumentNavigationForFrame(toAPI(&page), toAPI(&frame), toAPI(type), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didReceiveTitleForFrame(WebPageProxy* page, const String& title, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didReceiveTitleForFrame(WebPageProxy& page, const String& title, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didReceiveTitleForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didReceiveTitleForFrame(toAPI(&page), toAPI(title.impl()), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFirstLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didFirstLayoutForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFirstLayoutForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFirstLayoutForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFirstVisuallyNonEmptyLayoutForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didLayout(WebPageProxy* page, LayoutMilestones milestones, API::Object* userData) override
</del><ins>+ virtual void didLayout(WebPageProxy& page, LayoutMilestones milestones, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didLayout)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didLayout(toAPI(&page), toWKLayoutMilestones(milestones), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didRemoveFrameFromHierarchy(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didRemoveFrameFromHierarchy(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didRemoveFrameFromHierarchy)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didRemoveFrameFromHierarchy(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didDisplayInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didDisplayInsecureContentForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didDisplayInsecureContentForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didDisplayInsecureContentForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didRunInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didRunInsecureContentForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didRunInsecureContentForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didRunInsecureContentForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didDetectXSSForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
</del><ins>+ virtual void didDetectXSSForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didDetectXSSForFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.didDetectXSSForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy* page, WebFrameProxy* frame, WebProtectionSpace* protectionSpace) override
</del><ins>+ virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy& page, WebFrameProxy& frame, WebProtectionSpace* protectionSpace) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.canAuthenticateAgainstProtectionSpaceInFrame)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(page), toAPI(frame), toAPI(protectionSpace), m_client.base.clientInfo);
</del><ins>+ return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(&page), toAPI(&frame), toAPI(protectionSpace), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy* page, WebFrameProxy* frame, AuthenticationChallengeProxy* authenticationChallenge) override
</del><ins>+ virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy& page, WebFrameProxy& frame, AuthenticationChallengeProxy* authenticationChallenge) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didReceiveAuthenticationChallengeInFrame)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didReceiveAuthenticationChallengeInFrame(toAPI(page), toAPI(frame), toAPI(authenticationChallenge), m_client.base.clientInfo);
</del><ins>+ m_client.didReceiveAuthenticationChallengeInFrame(toAPI(&page), toAPI(&frame), toAPI(authenticationChallenge), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didStartProgress(WebPageProxy* page) override
</del><ins>+ virtual void didStartProgress(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didStartProgress)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didStartProgress(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.didStartProgress(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didChangeProgress(WebPageProxy* page) override
</del><ins>+ virtual void didChangeProgress(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didChangeProgress)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didChangeProgress(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.didChangeProgress(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didFinishProgress(WebPageProxy* page) override
</del><ins>+ virtual void didFinishProgress(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didFinishProgress)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.didFinishProgress(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.didFinishProgress(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void processDidBecomeUnresponsive(WebPageProxy* page) override
</del><ins>+ virtual void processDidBecomeUnresponsive(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.processDidBecomeUnresponsive)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.processDidBecomeUnresponsive(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.processDidBecomeUnresponsive(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void interactionOccurredWhileProcessUnresponsive(WebPageProxy* page) override
</del><ins>+ virtual void interactionOccurredWhileProcessUnresponsive(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.interactionOccurredWhileProcessUnresponsive)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.interactionOccurredWhileProcessUnresponsive(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.interactionOccurredWhileProcessUnresponsive(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void processDidBecomeResponsive(WebPageProxy* page) override
</del><ins>+ virtual void processDidBecomeResponsive(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.processDidBecomeResponsive)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.processDidBecomeResponsive(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.processDidBecomeResponsive(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void processDidCrash(WebPageProxy* page) override
</del><ins>+ virtual void processDidCrash(WebPageProxy& page) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.processDidCrash)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_client.processDidCrash(toAPI(page), m_client.base.clientInfo);
</del><ins>+ m_client.processDidCrash(toAPI(&page), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didChangeBackForwardList(WebPageProxy* page, WebBackForwardListItem* addedItem, Vector<RefPtr<WebBackForwardListItem>> removedItems) override
</del><ins>+ virtual void didChangeBackForwardList(WebPageProxy& page, WebBackForwardListItem* addedItem, Vector<RefPtr<WebBackForwardListItem>> removedItems) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.didChangeBackForwardList)
</span><span class="cx"> return;
</span><span class="lines">@@ -1000,21 +1000,21 @@
</span><span class="cx"> removedItemsArray = API::Array::create(WTF::move(removedItemsVector));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_client.didChangeBackForwardList(toAPI(page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo);
</del><ins>+ m_client.didChangeBackForwardList(toAPI(&page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy* page, WebKit::WebBackForwardListItem* item) override
</del><ins>+ virtual bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy& page, WebKit::WebBackForwardListItem* item) override
</ins><span class="cx"> {
</span><span class="cx"> if (!m_client.shouldKeepCurrentBackForwardListItemInList)
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- return m_client.shouldKeepCurrentBackForwardListItemInList(toAPI(page), toAPI(item), m_client.base.clientInfo);
</del><ins>+ return m_client.shouldKeepCurrentBackForwardListItemInList(toAPI(&page), toAPI(item), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void willGoToBackForwardListItem(WebPageProxy* page, WebBackForwardListItem* item, API::Object* userData) override
</del><ins>+ virtual void willGoToBackForwardListItem(WebPageProxy& page, WebBackForwardListItem* item, API::Object* userData) override
</ins><span class="cx"> {
</span><span class="cx"> if (m_client.willGoToBackForwardListItem)
</span><del>- m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client.base.clientInfo);
</del><ins>+ m_client.willGoToBackForwardListItem(toAPI(&page), toAPI(item), toAPI(userData), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual PassRefPtr<API::Data> webCryptoMasterKey(WebPageProxy& page) override
</span><span class="lines">@@ -1023,36 +1023,36 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>- virtual void didFailToInitializePlugin(WebPageProxy* page, API::Dictionary* pluginInformation) override
</del><ins>+ virtual void didFailToInitializePlugin(WebPageProxy& page, API::Dictionary* pluginInformation) override
</ins><span class="cx"> {
</span><span class="cx"> if (m_client.didFailToInitializePlugin_deprecatedForUseWithV0)
</span><del>- m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(page), toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), m_client.base.clientInfo);
</del><ins>+ m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(&page), toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), m_client.base.clientInfo);
</ins><span class="cx">
</span><span class="cx"> if (m_client.pluginDidFail_deprecatedForUseWithV1)
</span><del>- m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), 0, 0, m_client.base.clientInfo);
</del><ins>+ m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), 0, 0, m_client.base.clientInfo);
</ins><span class="cx">
</span><span class="cx"> if (m_client.pluginDidFail)
</span><del>- m_client.pluginDidFail(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation), m_client.base.clientInfo);
</del><ins>+ m_client.pluginDidFail(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual void didBlockInsecurePluginVersion(WebPageProxy* page, API::Dictionary* pluginInformation) override
</del><ins>+ virtual void didBlockInsecurePluginVersion(WebPageProxy& page, API::Dictionary* pluginInformation) override
</ins><span class="cx"> {
</span><span class="cx"> if (m_client.pluginDidFail_deprecatedForUseWithV1)
</span><del>- m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), toAPI(pluginInformation->get<API::String>(pluginInformationBundleIdentifierKey())), toAPI(pluginInformation->get<API::String>(pluginInformationBundleVersionKey())), m_client.base.clientInfo);
</del><ins>+ m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(&page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), toAPI(pluginInformation->get<API::String>(pluginInformationBundleIdentifierKey())), toAPI(pluginInformation->get<API::String>(pluginInformationBundleVersionKey())), m_client.base.clientInfo);
</ins><span class="cx">
</span><span class="cx"> if (m_client.pluginDidFail)
</span><del>- m_client.pluginDidFail(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation), m_client.base.clientInfo);
</del><ins>+ m_client.pluginDidFail(toAPI(&page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary* pluginInformation, String& unavailabilityDescription) override
</del><ins>+ virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy& page, PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary* pluginInformation, String& unavailabilityDescription) override
</ins><span class="cx"> {
</span><span class="cx"> WKStringRef unavailabilityDescriptionOut = 0;
</span><span class="cx"> PluginModuleLoadPolicy loadPolicy = currentPluginLoadPolicy;
</span><span class="cx">
</span><span class="cx"> if (m_client.pluginLoadPolicy_deprecatedForUseWithV2)
</span><del>- loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
</del><ins>+ loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(&page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
</ins><span class="cx"> else if (m_client.pluginLoadPolicy)
</span><del>- loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client.base.clientInfo));
</del><ins>+ loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(&page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client.base.clientInfo));
</ins><span class="cx">
</span><span class="cx"> if (unavailabilityDescriptionOut) {
</span><span class="cx"> RefPtr<API::String> webUnavailabilityDescription = adoptRef(toImpl(unavailabilityDescriptionOut));
</span><span class="lines">@@ -1064,22 +1064,22 @@
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">
</span><span class="cx"> #if ENABLE(WEBGL)
</span><del>- virtual WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy* page, const String& url) const override
</del><ins>+ virtual WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy& page, const String& url) const override
</ins><span class="cx"> {
</span><span class="cx"> WebCore::WebGLLoadPolicy loadPolicy = WebGLAllowCreation;
</span><span class="cx">
</span><span class="cx"> if (m_client.webGLLoadPolicy)
</span><del>- loadPolicy = toWebGLLoadPolicy(m_client.webGLLoadPolicy(toAPI(page), toAPI(url.impl()), m_client.base.clientInfo));
</del><ins>+ loadPolicy = toWebGLLoadPolicy(m_client.webGLLoadPolicy(toAPI(&page), toAPI(url.impl()), m_client.base.clientInfo));
</ins><span class="cx">
</span><span class="cx"> return loadPolicy;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- virtual WebCore::WebGLLoadPolicy resolveWebGLLoadPolicy(WebPageProxy* page, const String& url) const override
</del><ins>+ virtual WebCore::WebGLLoadPolicy resolveWebGLLoadPolicy(WebPageProxy& page, const String& url) const override
</ins><span class="cx"> {
</span><span class="cx"> WebCore::WebGLLoadPolicy loadPolicy = WebGLAllowCreation;
</span><span class="cx">
</span><span class="cx"> if (m_client.resolveWebGLLoadPolicy)
</span><del>- loadPolicy = toWebGLLoadPolicy(m_client.resolveWebGLLoadPolicy(toAPI(page), toAPI(url.impl()), m_client.base.clientInfo));
</del><ins>+ loadPolicy = toWebGLLoadPolicy(m_client.resolveWebGLLoadPolicy(toAPI(&page), toAPI(url.impl()), m_client.base.clientInfo));
</ins><span class="cx">
</span><span class="cx"> return loadPolicy;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaNavigationStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -93,30 +93,29 @@
</span><span class="cx"> ~LoaderClient();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- virtual void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override;
- virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) override;
- virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) override;
- virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override;
- virtual void didFinishDocumentLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) override;
- virtual void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override;
- virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) override;
- virtual void didSameDocumentNavigationForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, SameDocumentNavigationType, API::Object*) override;
- virtual void didDestroyNavigation(WebKit::WebPageProxy*, uint64_t navigationID) override;
- virtual void didLayout(WebKit::WebPageProxy*, WebCore::LayoutMilestones, API::Object*) override;
- virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::WebProtectionSpace*) override;
- virtual void didReceiveAuthenticationChallengeInFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::AuthenticationChallengeProxy*) override;
- virtual void processDidCrash(WebKit::WebPageProxy*) override;
- virtual PassRefPtr<API::Data> webCryptoMasterKey(WebKit::WebPageProxy&) override;
</del><ins>+ virtual void didStartProvisionalLoadForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, API::Object*) override;
+ virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, API::Object*) override;
+ virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
+ virtual void didCommitLoadForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, API::Object*) override;
+ virtual void didFinishDocumentLoadForFrame(WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) override;
+ virtual void didFinishLoadForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, API::Object*) override;
+ virtual void didFailLoadWithErrorForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, const WebCore::ResourceError&, API::Object*) override;
+ virtual void didSameDocumentNavigationForFrame(WebPageProxy&, WebFrameProxy&, API::Navigation*, SameDocumentNavigationType, API::Object*) override;
+ virtual void didLayout(WebPageProxy&, WebCore::LayoutMilestones, API::Object*) override;
+ virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy&, WebKit::WebFrameProxy&, WebKit::WebProtectionSpace*) override;
+ virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy&, WebKit::WebFrameProxy&, WebKit::AuthenticationChallengeProxy*) override;
+ virtual void processDidCrash(WebPageProxy&) override;
+ virtual PassRefPtr<API::Data> webCryptoMasterKey(WebPageProxy&) override;
</ins><span class="cx">
</span><span class="cx"> #if USE(QUICK_LOOK)
</span><span class="cx"> virtual void didStartLoadForQuickLookDocumentInMainFrame(const WTF::String& fileName, const WTF::String& uti) override;
</span><span class="cx"> virtual void didFinishLoadForQuickLookDocumentInMainFrame(const WebKit::QuickLookDocumentData&) override;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- virtual void didNavigateWithNavigationData(WebKit::WebPageProxy&, const WebKit::WebNavigationDataStore&, WebKit::WebFrameProxy&) override;
- virtual void didPerformClientRedirect(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy&) override;
- virtual void didPerformServerRedirect(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy&) override;
- virtual void didUpdateHistoryTitle(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy&) override;
</del><ins>+ virtual void didNavigateWithNavigationData(WebPageProxy&, const WebNavigationDataStore&, WebFrameProxy&) override;
+ virtual void didPerformClientRedirect(WebPageProxy&, const WTF::String&, const WTF::String&, WebFrameProxy&) override;
+ virtual void didPerformServerRedirect(WebPageProxy&, const WTF::String&, const WTF::String&, WebFrameProxy&) override;
+ virtual void didUpdateHistoryTitle(WebPageProxy&, const WTF::String&, const WTF::String&, WebFrameProxy&) override;
</ins><span class="cx">
</span><span class="cx"> NavigationState& m_navigationState;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaNavigationStatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -361,9 +361,9 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didStartProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didStartProvisionalLoadForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewDidStartProvisionalNavigation)
</span><span class="lines">@@ -373,17 +373,17 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [navigationDelegate webView:m_navigationState.m_webView didStartProvisionalNavigation:navigation];
</del><ins>+ [navigationDelegate webView:m_navigationState.m_webView didStartProvisionalNavigation:wkNavigation];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy* page, WebKit::WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy& page, WebKit::WebFrameProxy& webFrameProxy, API::Navigation* navigation, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewDidReceiveServerRedirectForProvisionalNavigation)
</span><span class="lines">@@ -393,12 +393,12 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [navigationDelegate webView:m_navigationState.m_webView didReceiveServerRedirectForProvisionalNavigation:navigation];
</del><ins>+ [navigationDelegate webView:m_navigationState.m_webView didReceiveServerRedirectForProvisionalNavigation:wkNavigation];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static RetainPtr<NSError> createErrorWithRecoveryAttempter(WKWebView *webView, WebFrameProxy& webFrameProxy, NSError *originalError)
</span><span class="lines">@@ -415,24 +415,24 @@
</span><span class="cx"> return adoptNS([[NSError alloc] initWithDomain:originalError.domain code:originalError.code userInfo:userInfo.get()]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, const WebCore::ResourceError& error, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame()) {
</del><ins>+ if (!webFrameProxy.isMainFrame()) {
</ins><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewNavigationDidFailProvisionalLoadInSubframeWithError)
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> auto navigationDelegate = m_navigationState.m_navigationDelegate.get();
</span><del>- auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, *webFrameProxy, error);
</del><ins>+ auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, webFrameProxy, error);
</ins><span class="cx"> // FIXME: Get the main frame's current navigation.
</span><del>- [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*webFrameProxy]).get() withError:errorWithRecoveryAttempter.get()];
</del><ins>+ [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView navigation:nil didFailProvisionalLoadInSubframe:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:webFrameProxy]).get() withError:errorWithRecoveryAttempter.get()];
</ins><span class="cx">
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- RetainPtr<WKNavigation> navigation;
- if (navigationID)
- navigation = wrapper(page->navigationState().takeNavigation(navigationID).get());
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ RetainPtr<WKNavigation> wkNavigation;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><span class="cx"> // FIXME: Set the error on the navigation object.
</span><span class="cx">
</span><span class="lines">@@ -443,13 +443,13 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, *webFrameProxy, error);
- [navigationDelegate webView:m_navigationState.m_webView didFailProvisionalNavigation:navigation.get() withError:errorWithRecoveryAttempter.get()];
</del><ins>+ auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, webFrameProxy, error);
+ [navigationDelegate webView:m_navigationState.m_webView didFailProvisionalNavigation:wkNavigation.get() withError:errorWithRecoveryAttempter.get()];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didCommitLoadForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didCommitLoadForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewDidCommitNavigation)
</span><span class="lines">@@ -459,17 +459,17 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [navigationDelegate webView:m_navigationState.m_webView didCommitNavigation:navigation];
</del><ins>+ [navigationDelegate webView:m_navigationState.m_webView didCommitNavigation:wkNavigation];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didFinishDocumentLoadForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didFinishDocumentLoadForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewNavigationDidFinishDocumentLoad)
</span><span class="lines">@@ -479,17 +479,17 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView navigationDidFinishDocumentLoad:navigation];
</del><ins>+ [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView navigationDidFinishDocumentLoad:wkNavigation];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didFinishLoadForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didFinishLoadForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewDidFinishNavigation)
</span><span class="lines">@@ -499,17 +499,17 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [navigationDelegate webView:m_navigationState.m_webView didFinishNavigation:navigation];
</del><ins>+ [navigationDelegate webView:m_navigationState.m_webView didFinishNavigation:wkNavigation];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, const WebCore::ResourceError& error, API::Object* userData)
</del><ins>+void NavigationState::LoaderClient::didFailLoadWithErrorForFrame(WebPageProxy& page, WebFrameProxy& webFrameProxy, API::Navigation* navigation, const WebCore::ResourceError& error, API::Object* userData)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewDidFailNavigationWithError)
</span><span class="lines">@@ -519,18 +519,18 @@
</span><span class="cx"> if (!navigationDelegate)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ // FIXME: We should assert that navigation is not null here, but it's currently null for some navigations through the page cache.
+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, *webFrameProxy, error);
- [navigationDelegate webView:m_navigationState.m_webView didFailNavigation:navigation withError:errorWithRecoveryAttempter.get()];
</del><ins>+ auto errorWithRecoveryAttempter = createErrorWithRecoveryAttempter(m_navigationState.m_webView, webFrameProxy, error);
+ [navigationDelegate webView:m_navigationState.m_webView didFailNavigation:wkNavigation withError:errorWithRecoveryAttempter.get()];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didSameDocumentNavigationForFrame(WebPageProxy* page, WebFrameProxy* webFrameProxy, uint64_t navigationID, SameDocumentNavigationType navigationType, API::Object*)
</del><ins>+void NavigationState::LoaderClient::didSameDocumentNavigationForFrame(WebPageProxy&, WebFrameProxy& webFrameProxy, API::Navigation* navigation, SameDocumentNavigationType navigationType, API::Object*)
</ins><span class="cx"> {
</span><del>- if (!webFrameProxy->isMainFrame())
</del><ins>+ if (!webFrameProxy.isMainFrame())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewNavigationDidSameDocumentNavigation)
</span><span class="lines">@@ -541,20 +541,15 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // FIXME: We should assert that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
</span><del>- WKNavigation *navigation = nil;
- if (navigationID)
- navigation = wrapper(page->navigationState().navigation(navigationID));
</del><ins>+ WKNavigation *wkNavigation = nil;
+ if (navigation)
+ wkNavigation = wrapper(*navigation);
</ins><span class="cx">
</span><del>- [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView navigation:navigation didSameDocumentNavigation:toWKSameDocumentNavigationType(navigationType)];
</del><ins>+ [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView navigation:wkNavigation didSameDocumentNavigation:toWKSameDocumentNavigationType(navigationType)];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didDestroyNavigation(WebPageProxy* page, uint64_t navigationID)
</del><ins>+void NavigationState::LoaderClient::didLayout(WebKit::WebPageProxy&, WebCore::LayoutMilestones layoutMilestones, API::Object*)
</ins><span class="cx"> {
</span><del>- page->navigationState().didDestroyNavigation(navigationID);
-}
-
-void NavigationState::LoaderClient::didLayout(WebKit::WebPageProxy*, WebCore::LayoutMilestones layoutMilestones, API::Object*)
-{
</del><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewRenderingProgressDidChange)
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -565,7 +560,7 @@
</span><span class="cx"> [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView renderingProgressDidChange:renderingProgressEvents(layoutMilestones)];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::WebProtectionSpace* protectionSpace)
</del><ins>+bool NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, WebKit::WebProtectionSpace* protectionSpace)
</ins><span class="cx"> {
</span><span class="cx"> if (m_navigationState.m_navigationDelegateMethods.webViewDidReceiveAuthenticationChallengeCompletionHandler)
</span><span class="cx"> return true;
</span><span class="lines">@@ -580,7 +575,7 @@
</span><span class="cx"> return [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView canAuthenticateAgainstProtectionSpace:protectionSpace->protectionSpace().nsSpace()];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame(WebPageProxy*, WebFrameProxy*, AuthenticationChallengeProxy* authenticationChallenge)
</del><ins>+void NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame(WebPageProxy&, WebFrameProxy&, AuthenticationChallengeProxy* authenticationChallenge)
</ins><span class="cx"> {
</span><span class="cx"> #if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
</span><span class="cx"> if (m_navigationState.m_navigationDelegateMethods.webViewDidReceiveAuthenticationChallengeCompletionHandler) {
</span><span class="lines">@@ -637,10 +632,8 @@
</span><span class="cx"> [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView didReceiveAuthenticationChallenge:wrapper(*authenticationChallenge)];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NavigationState::LoaderClient::processDidCrash(WebKit::WebPageProxy* page)
</del><ins>+void NavigationState::LoaderClient::processDidCrash(WebKit::WebPageProxy& page)
</ins><span class="cx"> {
</span><del>- page->navigationState().clearAllNavigations();
-
</del><span class="cx"> if (!m_navigationState.m_navigationDelegateMethods.webViewWebProcessDidCrash)
</span><span class="cx"> return;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -1033,7 +1033,7 @@
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didChangeBackForwardList(WebBackForwardListItem* added, Vector<RefPtr<WebBackForwardListItem>> removed)
</span><span class="cx"> {
</span><del>- m_loaderClient->didChangeBackForwardList(this, added, WTF::move(removed));
</del><ins>+ m_loaderClient->didChangeBackForwardList(*this, added, WTF::move(removed));
</ins><span class="cx">
</span><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="lines">@@ -1044,12 +1044,12 @@
</span><span class="cx"> void WebPageProxy::willGoToBackForwardListItem(uint64_t itemID, const UserData& userData)
</span><span class="cx"> {
</span><span class="cx"> if (WebBackForwardListItem* item = m_process->webBackForwardItem(itemID))
</span><del>- m_loaderClient->willGoToBackForwardListItem(this, item, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->willGoToBackForwardListItem(*this, item, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WebPageProxy::shouldKeepCurrentBackForwardListItemInList(WebBackForwardListItem* item)
</span><span class="cx"> {
</span><del>- return m_loaderClient->shouldKeepCurrentBackForwardListItemInList(this, item);
</del><ins>+ return m_loaderClient->shouldKeepCurrentBackForwardListItemInList(*this, item);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WebPageProxy::canShowMIMEType(const String& mimeType)
</span><span class="lines">@@ -1689,7 +1689,7 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> RefPtr<API::Dictionary> pluginInformation = createPluginInformationDictionary(plugin, frameURLString, String(), pageURLString, String(), String());
</span><del>- pluginLoadPolicy = m_loaderClient->pluginLoadPolicy(this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);
</del><ins>+ pluginLoadPolicy = m_loaderClient->pluginLoadPolicy(*this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);
</ins><span class="cx"> #else
</span><span class="cx"> UNUSED_PARAM(frameURLString);
</span><span class="cx"> UNUSED_PARAM(pageURLString);
</span><span class="lines">@@ -2557,7 +2557,7 @@
</span><span class="cx"> m_pageLoadState.didStartProgress(transaction);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didStartProgress(this);
</del><ins>+ m_loaderClient->didStartProgress(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didChangeProgress(double value)
</span><span class="lines">@@ -2566,7 +2566,7 @@
</span><span class="cx"> m_pageLoadState.didChangeProgress(transaction, value);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didChangeProgress(this);
</del><ins>+ m_loaderClient->didChangeProgress(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFinishProgress()
</span><span class="lines">@@ -2575,7 +2575,7 @@
</span><span class="cx"> m_pageLoadState.didFinishProgress(transaction);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didFinishProgress(this);
</del><ins>+ m_loaderClient->didFinishProgress(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::setNetworkRequestsInProgress(bool networkRequestsInProgress)
</span><span class="lines">@@ -2586,7 +2586,8 @@
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didDestroyNavigation(uint64_t navigationID)
</span><span class="cx"> {
</span><del>- m_loaderClient->didDestroyNavigation(this, navigationID);
</del><ins>+ // FIXME: Message check the navigationID.
+ m_navigationState->didDestroyNavigation(navigationID);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& url, const String& unreachableURL, const UserData& userData)
</span><span class="lines">@@ -2599,6 +2600,11 @@
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx"> MESSAGE_CHECK_URL(url);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> if (frame->isMainFrame())
</span><span class="cx"> m_pageLoadState.didStartProvisionalLoad(transaction, url, unreachableURL);
</span><span class="cx">
</span><span class="lines">@@ -2606,7 +2612,7 @@
</span><span class="cx"> frame->didStartProvisionalLoad(url);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didStartProvisionalLoadForFrame(this, frame, navigationID, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didStartProvisionalLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& url, const UserData& userData)
</span><span class="lines">@@ -2615,6 +2621,11 @@
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx"> MESSAGE_CHECK_URL(url);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="cx"> if (frame->isMainFrame())
</span><span class="lines">@@ -2623,7 +2634,7 @@
</span><span class="cx"> frame->didReceiveServerRedirectForProvisionalLoad(url);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, navigationID, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError& error, const UserData& userData)
</span><span class="lines">@@ -2631,6 +2642,11 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = navigationState().takeNavigation(navigationID);
+
</ins><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="cx"> if (frame->isMainFrame())
</span><span class="lines">@@ -2639,7 +2655,7 @@
</span><span class="cx"> frame->didFailProvisionalLoad();
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didFailProvisionalLoadWithErrorForFrame(this, frame, navigationID, error, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::clearLoadDependentCallbacks()
</span><span class="lines">@@ -2660,6 +2676,11 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> if (frame->isMainFrame()) {
</span><span class="cx"> m_hasReceivedLayerTreeTransactionAfterDidCommitLoad = false;
</span><span class="lines">@@ -2707,7 +2728,7 @@
</span><span class="cx"> m_pageScaleFactor = 1;
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didCommitLoadForFrame(this, frame, navigationID, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didCommitLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData& userData)
</span><span class="lines">@@ -2715,7 +2736,12 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- m_loaderClient->didFinishDocumentLoadForFrame(this, frame, navigationID, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
+ m_loaderClient->didFinishDocumentLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData& userData)
</span><span class="lines">@@ -2723,6 +2749,11 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="cx"> bool isMainFrame = frame->isMainFrame();
</span><span class="lines">@@ -2732,7 +2763,7 @@
</span><span class="cx"> frame->didFinishLoad();
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didFinishLoadForFrame(this, frame, navigationID, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didFinishLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx">
</span><span class="cx"> if (isMainFrame)
</span><span class="cx"> m_pageClient.didFinishLoadForMainFrame();
</span><span class="lines">@@ -2743,6 +2774,11 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> clearLoadDependentCallbacks();
</span><span class="cx">
</span><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="lines">@@ -2753,7 +2789,7 @@
</span><span class="cx"> frame->didFailLoad();
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didFailLoadWithErrorForFrame(this, frame, navigationID, error, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didFailLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t opaqueSameDocumentNavigationType, const String& url, const UserData& userData)
</span><span class="lines">@@ -2762,6 +2798,11 @@
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx"> MESSAGE_CHECK_URL(url);
</span><span class="cx">
</span><ins>+ // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
+ RefPtr<API::Navigation> navigation;
+ if (frame->isMainFrame() && navigationID)
+ navigation = &navigationState().navigation(navigationID);
+
</ins><span class="cx"> auto transaction = m_pageLoadState.transaction();
</span><span class="cx">
</span><span class="cx"> bool isMainFrame = frame->isMainFrame();
</span><span class="lines">@@ -2774,7 +2815,7 @@
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><span class="cx">
</span><span class="cx"> SameDocumentNavigationType navigationType = static_cast<SameDocumentNavigationType>(opaqueSameDocumentNavigationType);
</span><del>- m_loaderClient->didSameDocumentNavigationForFrame(this, frame, navigationID, navigationType, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didSameDocumentNavigationForFrame(*this, *frame, navigation.get(), navigationType, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx">
</span><span class="cx"> if (isMainFrame)
</span><span class="cx"> m_pageClient.didSameDocumentNavigationForMainFrame(navigationType);
</span><span class="lines">@@ -2793,7 +2834,7 @@
</span><span class="cx"> frame->didChangeTitle(title);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didReceiveTitleForFrame(this, title, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didReceiveTitleForFrame(*this, title, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFirstLayoutForFrame(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2801,7 +2842,7 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- m_loaderClient->didFirstLayoutForFrame(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didFirstLayoutForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2809,7 +2850,7 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx">
</span><span class="cx"> if (frame->isMainFrame())
</span><span class="cx"> m_pageClient.didFirstVisuallyNonEmptyLayoutForMainFrame();
</span><span class="lines">@@ -2817,7 +2858,7 @@
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didLayout(uint32_t layoutMilestones, const UserData& userData)
</span><span class="cx"> {
</span><del>- m_loaderClient->didLayout(this, static_cast<LayoutMilestones>(layoutMilestones), m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didLayout(*this, static_cast<LayoutMilestones>(layoutMilestones), m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didRemoveFrameFromHierarchy(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2825,7 +2866,7 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- m_loaderClient->didRemoveFrameFromHierarchy(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didRemoveFrameFromHierarchy(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didDisplayInsecureContentForFrame(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2837,7 +2878,7 @@
</span><span class="cx"> m_pageLoadState.didDisplayOrRunInsecureContent(transaction);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didDisplayInsecureContentForFrame(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didDisplayInsecureContentForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didRunInsecureContentForFrame(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2849,7 +2890,7 @@
</span><span class="cx"> m_pageLoadState.didDisplayOrRunInsecureContent(transaction);
</span><span class="cx">
</span><span class="cx"> m_pageLoadState.commitChanges();
</span><del>- m_loaderClient->didRunInsecureContentForFrame(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didRunInsecureContentForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didDetectXSSForFrame(uint64_t frameID, const UserData& userData)
</span><span class="lines">@@ -2857,7 +2898,7 @@
</span><span class="cx"> WebFrameProxy* frame = m_process->webFrame(frameID);
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><del>- m_loaderClient->didDetectXSSForFrame(this, frame, m_process->transformHandlesToObjects(userData.object()).get());
</del><ins>+ m_loaderClient->didDetectXSSForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::frameDidBecomeFrameSet(uint64_t frameID, bool value)
</span><span class="lines">@@ -3212,12 +3253,12 @@
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx"> void WebPageProxy::webGLPolicyForURL(const String& url, uint32_t& loadPolicy)
</span><span class="cx"> {
</span><del>- loadPolicy = static_cast<uint32_t>(m_loaderClient->webGLLoadPolicy(this, url));
</del><ins>+ loadPolicy = static_cast<uint32_t>(m_loaderClient->webGLLoadPolicy(*this, url));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::resolveWebGLPolicyForURL(const String& url, uint32_t& loadPolicy)
</span><span class="cx"> {
</span><del>- loadPolicy = static_cast<uint32_t>(m_loaderClient->resolveWebGLLoadPolicy(this, url));
</del><ins>+ loadPolicy = static_cast<uint32_t>(m_loaderClient->resolveWebGLLoadPolicy(*this, url));
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(WEBGL)
</span><span class="cx">
</span><span class="lines">@@ -4385,7 +4426,7 @@
</span><span class="cx">
</span><span class="cx"> updateBackingStoreDiscardableState();
</span><span class="cx">
</span><del>- m_loaderClient->processDidBecomeUnresponsive(this);
</del><ins>+ m_loaderClient->processDidBecomeUnresponsive(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::interactionOccurredWhileProcessUnresponsive()
</span><span class="lines">@@ -4393,7 +4434,7 @@
</span><span class="cx"> if (!isValid())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_loaderClient->interactionOccurredWhileProcessUnresponsive(this);
</del><ins>+ m_loaderClient->interactionOccurredWhileProcessUnresponsive(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::processDidBecomeResponsive()
</span><span class="lines">@@ -4403,7 +4444,7 @@
</span><span class="cx">
</span><span class="cx"> updateBackingStoreDiscardableState();
</span><span class="cx">
</span><del>- m_loaderClient->processDidBecomeResponsive(this);
</del><ins>+ m_loaderClient->processDidBecomeResponsive(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::processDidCrash()
</span><span class="lines">@@ -4415,7 +4456,9 @@
</span><span class="cx">
</span><span class="cx"> resetStateAfterProcessExited();
</span><span class="cx">
</span><del>- m_loaderClient->processDidCrash(this);
</del><ins>+ navigationState().clearAllNavigations();
+
+ m_loaderClient->processDidCrash(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::resetState(ResetStateReason resetStateReason)
</span><span class="lines">@@ -4642,7 +4685,7 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<WebProtectionSpace> protectionSpace = WebProtectionSpace::create(coreProtectionSpace);
</span><span class="cx">
</span><del>- canAuthenticate = m_loaderClient->canAuthenticateAgainstProtectionSpaceInFrame(this, frame, protectionSpace.get());
</del><ins>+ canAuthenticate = m_loaderClient->canAuthenticateAgainstProtectionSpaceInFrame(*this, *frame, protectionSpace.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didReceiveAuthenticationChallenge(uint64_t frameID, const AuthenticationChallenge& coreChallenge, uint64_t challengeID)
</span><span class="lines">@@ -4658,7 +4701,7 @@
</span><span class="cx"> MESSAGE_CHECK(frame);
</span><span class="cx">
</span><span class="cx"> RefPtr<AuthenticationChallengeProxy> authenticationChallenge = prpAuthenticationChallenge;
</span><del>- m_loaderClient->didReceiveAuthenticationChallengeInFrame(this, frame, authenticationChallenge.get());
</del><ins>+ m_loaderClient->didReceiveAuthenticationChallengeInFrame(*this, *frame, authenticationChallenge.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::exceededDatabaseQuota(uint64_t frameID, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentOriginUsage, uint64_t currentDatabaseUsage, uint64_t expectedUsage, PassRefPtr<Messages::WebPageProxy::ExceededDatabaseQuota::DelayedReply> reply)
</span><span class="lines">@@ -4843,7 +4886,7 @@
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> void WebPageProxy::didFailToInitializePlugin(const String& mimeType, const String& frameURLString, const String& pageURLString)
</span><span class="cx"> {
</span><del>- m_loaderClient->didFailToInitializePlugin(this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get());
</del><ins>+ m_loaderClient->didFailToInitializePlugin(*this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::didBlockInsecurePluginVersion(const String& mimeType, const String& pluginURLString, const String& frameURLString, const String& pageURLString, bool replacementObscured)
</span><span class="lines">@@ -4862,7 +4905,7 @@
</span><span class="cx"> UNUSED_PARAM(replacementObscured);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- m_loaderClient->didBlockInsecurePluginVersion(this, pluginInformation.get());
</del><ins>+ m_loaderClient->didBlockInsecurePluginVersion(*this, pluginInformation.get());
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (178374 => 178375)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-01-13 22:00:35 UTC (rev 178374)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-01-13 22:22:27 UTC (rev 178375)
</span><span class="lines">@@ -465,13 +465,23 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<API::Object> userData;
</span><span class="cx">
</span><del>- uint64_t navigationID = static_cast<WebDocumentLoader*>(m_frame->coreFrame()->loader().provisionalDocumentLoader())->navigationID();
-
</del><span class="cx"> // Notify the bundle client.
</span><span class="cx"> webPage->injectedBundleLoaderClient().didFailProvisionalLoadWithErrorForFrame(webPage, m_frame, error, userData);
</span><span class="cx">
</span><span class="cx"> webPage->sandboxExtensionTracker().didFailProvisionalLoad(m_frame);
</span><span class="cx">
</span><ins>+ // FIXME: This is gross. This is necessary because if the client calls WKBundlePageStopLoading() from within the didFailProvisionalLoadWithErrorForFrame
+ // injected bundle client call, that will cause the provisional DocumentLoader to be disconnected from the Frame, and didDistroyNavigation message
+ // to be sent to the UIProcess (and the destruction of the DocumentLoader). If that happens, and we had captured the navigationID before injected bundle
+ // client call, the DidFailProvisionalLoadForFrame would send a navigationID of a destroyed Navigation, and the UIProcess would not be able to find it
+ // in its table.
+ //
+ // A better solution to this problem would be find a clean way to postpone the disconnection of the DocumentLoader from the Frame until
+ // the entire FrameLoaderClient function was complete.
+ uint64_t navigationID = 0;
+ if (auto documentLoader = m_frame->coreFrame()->loader().provisionalDocumentLoader())
+ navigationID = static_cast<WebDocumentLoader*>(documentLoader)->navigationID();
+
</ins><span class="cx"> // Notify the UIProcess.
</span><span class="cx"> webPage->send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame->frameID(), navigationID, error, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>