Changeset 163201 in webkit
- Timestamp:
- Jan 31, 2014 2:21:27 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r163200 r163201 1 2014-01-31 Anders Carlsson <andersca@apple.com> 2 3 Add webView:didReceiveServerRedirectForProvisionalNavigation: 4 https://bugs.webkit.org/show_bug.cgi?id=128016 5 6 Reviewed by Dan Bernstein. 7 8 * UIProcess/API/APILoaderClient.h: 9 (API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame): 10 * UIProcess/API/C/WKPage.cpp: 11 (WKPageSetPageLoaderClient): 12 * UIProcess/API/Cocoa/WKNavigationDelegate.h: 13 * UIProcess/Cocoa/NavigationState.h: 14 * UIProcess/Cocoa/NavigationState.mm: 15 (WebKit::NavigationState::setNavigationDelegate): 16 (WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame): 17 * UIProcess/WebPageProxy.cpp: 18 (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): 19 * UIProcess/WebPageProxy.h: 20 * UIProcess/WebPageProxy.messages.in: 21 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 22 (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): 23 (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): 24 (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): 25 1 26 2014-01-31 Brady Eidson <beidson@apple.com> 2 27 -
trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h
r163149 r163201 55 55 56 56 virtual void didStartProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) { } 57 virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { }57 virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) { } 58 58 virtual void didFailProvisionalLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) { } 59 59 virtual void didCommitLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) { } -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r163149 r163201 701 701 } 702 702 703 virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override703 virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t navigationID, API::Object* userData) override 704 704 { 705 705 if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame) -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationDelegate.h
r163149 r163201 53 53 54 54 - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation; 55 - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation; 56 55 57 - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error; 56 58 - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation; -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h
r163149 r163201 78 78 private: 79 79 virtual void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; 80 virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*); 80 81 virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) override; 81 82 virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; … … 90 91 91 92 bool webViewDidStartProvisionalNavigation : 1; 93 bool webViewDidReceiveServerRedirectForProvisionalNavigation : 1; 92 94 bool webViewDidFailProvisionalNavigationWithError : 1; 93 95 bool webViewDidCommitNavigation : 1; -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm
r163149 r163201 67 67 68 68 m_navigationDelegateMethods.webViewDidStartProvisionalNavigation = [delegate respondsToSelector:@selector(webView:didStartProvisionalNavigation:)]; 69 m_navigationDelegateMethods.webViewDidReceiveServerRedirectForProvisionalNavigation = [delegate respondsToSelector:@selector(webView:didReceiveServerRedirectForProvisionalNavigation:)]; 69 70 m_navigationDelegateMethods.webViewDidFailProvisionalNavigationWithError = [delegate respondsToSelector:@selector(webView:didFailProvisionalNavigation:withError:)]; 70 71 m_navigationDelegateMethods.webViewDidCommitNavigation = [delegate respondsToSelector:@selector(webView:didCommitNavigation:)]; … … 192 193 } 193 194 195 void NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy* webFrameProxy, uint64_t navigationID, API::Object*) 196 { 197 if (!webFrameProxy->isMainFrame()) 198 return; 199 200 if (!m_navigationState.m_navigationDelegateMethods.webViewDidReceiveServerRedirectForProvisionalNavigation) 201 return; 202 203 auto navigationDelegate = m_navigationState.m_navigationDelegate.get(); 204 if (!navigationDelegate) 205 return; 206 207 // FIXME: We should assert that navigationID is not zero here, but it's currently zero for navigations originating from the web process. 208 WKNavigation *navigation = nil; 209 if (navigationID) 210 navigation = m_navigationState.m_navigations.get(navigationID).get(); 211 212 [navigationDelegate webView:m_navigationState.m_webView didReceiveServerRedirectForProvisionalNavigation:navigation]; 213 } 214 194 215 void NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy* webFrameProxy, uint64_t navigationID, const WebCore::ResourceError& error, API::Object*) 195 216 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r163150 r163201 2124 2124 } 2125 2125 2126 void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, const String& url, IPC::MessageDecoder& decoder)2126 void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& url, IPC::MessageDecoder& decoder) 2127 2127 { 2128 2128 RefPtr<API::Object> userData; … … 2143 2143 2144 2144 m_pageLoadState.commitChanges(); 2145 m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, userData.get());2145 m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, navigationID, userData.get()); 2146 2146 } 2147 2147 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r163149 r163201 899 899 900 900 void didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& url, const String& unreachableURL, IPC::MessageDecoder&); 901 void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, const String&, IPC::MessageDecoder&);901 void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&, IPC::MessageDecoder&); 902 902 void didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&, IPC::MessageDecoder&); 903 903 void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& mimeType, uint32_t frameLoadType, const WebCore::CertificateInfo&, IPC::MessageDecoder&); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r163149 r163201 122 122 # Frame load messages 123 123 DidStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, String unreachableURL, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 124 DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic124 DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 125 125 DidFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 126 126 DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, uint32_t loadType, WebCore::CertificateInfo certificateInfo, WebKit::InjectedBundleUserMessageEncoder userData) Variadic -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r163149 r163201 280 280 return; 281 281 282 DocumentLoader* provisionalLoader = m_frame->coreFrame()->loader().provisionalDocumentLoader();283 const String& url = provisionalLoader->url().string();282 WebDocumentLoader& documentLoader = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().provisionalDocumentLoader()); 283 const String& url = documentLoader.url().string(); 284 284 RefPtr<API::Object> userData; 285 285 … … 288 288 289 289 // Notify the UIProcess. 290 webPage->send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())));290 webPage->send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame->frameID(), documentLoader.navigationID(), url, InjectedBundleUserMessageEncoder(userData.get()))); 291 291 } 292 292
Note: See TracChangeset
for help on using the changeset viewer.