Changeset 163243 in webkit
- Timestamp:
- Feb 1, 2014 9:31:48 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r163237 r163243 1 2014-01-31 Anders Carlsson <andersca@apple.com> 2 3 Add webView:didFailNavigation:withError: delegate method 4 https://bugs.webkit.org/show_bug.cgi?id=128022 5 6 Reviewed by Darin Adler. 7 8 * UIProcess/API/APILoaderClient.h: 9 (API::LoaderClient::didFailLoadWithErrorForFrame): 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::didFailLoadWithErrorForFrame): 17 * UIProcess/WebPageProxy.cpp: 18 (WebKit::WebPageProxy::didFailLoadForFrame): 19 * UIProcess/WebPageProxy.h: 20 * UIProcess/WebPageProxy.messages.in: 21 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 22 (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): 23 1 24 2014-01-31 Brady Eidson <beidson@apple.com> 2 25 -
trunk/Source/WebKit2/UIProcess/API/APILoaderClient.h
r163201 r163243 60 60 virtual void didFinishDocumentLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, API::Object*) { } 61 61 virtual void didFinishLoadForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, API::Object*) { } 62 virtual void didFailLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceError&, API::Object*) { }62 virtual void didFailLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) { } 63 63 virtual void didSameDocumentNavigationForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebKit::SameDocumentNavigationType, API::Object*) { } 64 64 virtual void didReceiveTitleForFrame(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, API::Object*) { } -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r163201 r163243 741 741 } 742 742 743 virtual void didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, const ResourceError& error, API::Object* userData) override743 virtual void didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, uint64_t navigationID, const ResourceError& error, API::Object* userData) override 744 744 { 745 745 if (!m_client.didFailLoadWithErrorForFrame) -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationDelegate.h
r163201 r163243 58 58 - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation; 59 59 - (void)webView:(WKWebView *)webView didFinishLoadingNavigation:(WKNavigation *)navigation; 60 - (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error; 60 61 61 62 @end -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h
r163201 r163243 82 82 virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; 83 83 virtual void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; 84 virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object* userData) override; 84 85 85 86 NavigationState& m_navigationState; … … 95 96 bool webViewDidCommitNavigation : 1; 96 97 bool webViewDidFinishLoadingNavigation : 1; 98 bool webViewDidFailNavigationWithError : 1; 97 99 } m_navigationDelegateMethods; 98 100 -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm
r163201 r163243 71 71 m_navigationDelegateMethods.webViewDidCommitNavigation = [delegate respondsToSelector:@selector(webView:didCommitNavigation:)]; 72 72 m_navigationDelegateMethods.webViewDidFinishLoadingNavigation = [delegate respondsToSelector:@selector(webView:didFinishLoadingNavigation:)]; 73 m_navigationDelegateMethods.webViewDidFailNavigationWithError = [delegate respondsToSelector:@selector(webView:didFailNavigation:withError:)]; 73 74 } 74 75 … … 275 276 } 276 277 278 void NavigationState::LoaderClient::didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy* webFrameProxy, uint64_t navigationID, const WebCore::ResourceError& error, API::Object* userData) 279 { 280 if (!webFrameProxy->isMainFrame()) 281 return; 282 283 if (!m_navigationState.m_navigationDelegateMethods.webViewDidFailNavigationWithError) 284 return; 285 286 auto navigationDelegate = m_navigationState.m_navigationDelegate.get(); 287 if (!navigationDelegate) 288 return; 289 290 // FIXME: We should assert that navigationID is not zero here, but it's currently zero for navigations originating from the web process. 291 WKNavigation *navigation = nil; 292 if (navigationID) 293 navigation = m_navigationState.m_navigations.get(navigationID).get(); 294 295 [navigationDelegate webView:m_navigationState.m_webView didFailNavigation:navigation withError:error]; 296 } 297 277 298 } // namespace WebKit 278 299 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r163218 r163243 2255 2255 } 2256 2256 2257 void WebPageProxy::didFailLoadForFrame(uint64_t frameID, const ResourceError& error, IPC::MessageDecoder& decoder)2257 void WebPageProxy::didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError& error, IPC::MessageDecoder& decoder) 2258 2258 { 2259 2259 RefPtr<API::Object> userData; … … 2275 2275 2276 2276 m_pageLoadState.commitChanges(); 2277 m_loaderClient->didFailLoadWithErrorForFrame(this, frame, error, userData.get());2277 m_loaderClient->didFailLoadWithErrorForFrame(this, frame, navigationID, error, userData.get()); 2278 2278 } 2279 2279 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r163201 r163243 904 904 void didFinishDocumentLoadForFrame(uint64_t frameID, IPC::MessageDecoder&); 905 905 void didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, IPC::MessageDecoder&); 906 void didFailLoadForFrame(uint64_t frameID, const WebCore::ResourceError&, IPC::MessageDecoder&);906 void didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&, IPC::MessageDecoder&); 907 907 void didSameDocumentNavigationForFrame(uint64_t frameID, uint32_t sameDocumentNavigationType, const String&, IPC::MessageDecoder&); 908 908 void didReceiveTitleForFrame(uint64_t frameID, const String&, IPC::MessageDecoder&); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r163201 r163243 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 127 DidFailLoadForFrame(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic127 DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 128 128 DidFinishDocumentLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 129 129 DidFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r163201 r163243 485 485 486 486 // Notify the UIProcess. 487 webPage->send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame->frameID(), error, InjectedBundleUserMessageEncoder(userData.get()))); 487 WebDocumentLoader& documentLoader = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()); 488 webPage->send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame->frameID(), documentLoader.navigationID(), error, InjectedBundleUserMessageEncoder(userData.get()))); 488 489 489 490 // If we have a load listener, notify it.
Note: See TracChangeset
for help on using the changeset viewer.