Changeset 70097 in webkit
- Timestamp:
- Oct 19, 2010 3:45:36 PM (14 years ago)
- Location:
- trunk/WebKit2
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit2/ChangeLog
r70095 r70097 1 2010-10-19 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Anders Carlsson. 4 5 Add alternateHTMLString and unreachableURL API to WebKit2 6 <rdar://problem/8557864> 7 https://bugs.webkit.org/show_bug.cgi?id=47938 8 9 * UIProcess/API/C/WKFrame.cpp: 10 (WKFrameCopyUnreachableURL): 11 * UIProcess/API/C/WKFrame.h: 12 Add accessor for the unreachableURL if one is set. It will only be 13 set during a loadAlternateHTMLString and will be unset on the next normal 14 didStartProvisionalLoadForFrame call. 15 16 * UIProcess/API/C/WKPage.cpp: 17 (WKPageLoadHTMLString): Remove whitespace. 18 (WKPageLoadAlternateHTMLString): 19 * UIProcess/API/C/WKPage.h: 20 Add function to load a string as "alternate", meant for use as error pages. 21 22 * UIProcess/WebFrameProxy.h: 23 (WebKit::WebFrameProxy::setUnreachableURL): 24 (WebKit::WebFrameProxy::unreachableURL): 25 Add setter/getter for the unreachableURL. 26 27 * UIProcess/WebPageProxy.cpp: 28 (WebKit::WebPageProxy::loadAlternateHTMLString): 29 Plumb through the call to loadAlternateHTMLString to the WebProcess 30 and set the main frame's unreachableURL. This does nothing if no pages 31 have ever been loaded in this page. 32 33 (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): 34 If this is not a provisional load of substitute data for an unreachableURL 35 (e.g. someone who called WKPageLoadAlternateHTMLString), reset the 36 frame's unreachableURL. 37 38 * UIProcess/WebPageProxy.h: 39 * UIProcess/WebPageProxy.messages.in: 40 Update function signatures. 41 42 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 43 (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad): 44 Pass whether or not this is a load of SubstituteData for an unreachableURL 45 to the UIProcess. 46 47 * WebProcess/WebPage/WebPage.cpp: 48 (WebKit::WebPage::loadData): 49 (WebKit::WebPage::loadAlternateHTMLString): 50 * WebProcess/WebPage/WebPage.h: 51 * WebProcess/WebPage/WebPage.messages.in: 52 Plumb through the loading of the alternate HTML string. 53 1 54 2010-10-19 Alexey Proskuryakov <ap@apple.com> 2 55 -
trunk/WebKit2/UIProcess/API/C/WKFrame.cpp
r69214 r70097 67 67 } 68 68 69 WKURLRef WKFrameCopyUnreachableURL(WKFrameRef frameRef) 70 { 71 return toCopiedURLAPI(toImpl(frameRef)->unreachableURL()); 72 } 73 69 74 WKStringRef WKFrameCopyMIMEType(WKFrameRef frameRef) 70 75 { -
trunk/WebKit2/UIProcess/API/C/WKFrame.h
r69116 r70097 51 51 WK_EXPORT WKURLRef WKFrameCopyURL(WKFrameRef frame); 52 52 53 WK_EXPORT WKURLRef WKFrameCopyUnreachableURL(WKFrameRef frame); 54 53 55 WK_EXPORT WKStringRef WKFrameCopyMIMEType(WKFrameRef frame); 54 56 -
trunk/WebKit2/UIProcess/API/C/WKPage.cpp
r69978 r70097 60 60 void WKPageLoadHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef) 61 61 { 62 toImpl(pageRef)->loadHTMLString(toWTFString(htmlStringRef), toWTFString(baseURLRef)); 62 toImpl(pageRef)->loadHTMLString(toWTFString(htmlStringRef), toWTFString(baseURLRef)); 63 } 64 65 void WKPageLoadAlternateHTMLString(WKPageRef pageRef, WKStringRef htmlStringRef, WKURLRef baseURLRef, WKURLRef unreachableURLRef) 66 { 67 toImpl(pageRef)->loadAlternateHTMLString(toWTFString(htmlStringRef), toWTFString(baseURLRef), toWTFString(unreachableURLRef)); 63 68 } 64 69 -
trunk/WebKit2/UIProcess/API/C/WKPage.h
r70062 r70097 184 184 WK_EXPORT void WKPageLoadURLRequest(WKPageRef page, WKURLRequestRef urlRequest); 185 185 WK_EXPORT void WKPageLoadHTMLString(WKPageRef page, WKStringRef htmlString, WKURLRef baseURL); 186 WK_EXPORT void WKPageLoadAlternateHTMLString(WKPageRef page, WKStringRef htmlString, WKURLRef baseURL, WKURLRef unreachableURL); 186 187 WK_EXPORT void WKPageLoadPlainTextString(WKPageRef page, WKStringRef plainTextString); 187 188 -
trunk/WebKit2/UIProcess/WebFrameProxy.h
r69461 r70097 75 75 const String& provisionalURL() const { return m_provisionalURL; } 76 76 77 void setUnreachableURL(const String& unreachableURL) { m_unreachableURL = unreachableURL; } 78 const String& unreachableURL() const { return m_unreachableURL; } 79 77 80 void setMIMEType(const String& mimeType) { m_MIMEType = mimeType; } 78 81 const String& mimeType() const { return m_MIMEType; } … … 102 105 String m_url; 103 106 String m_provisionalURL; 107 String m_unreachableURL; 104 108 String m_MIMEType; 105 109 RefPtr<WebCertificateInfo> m_certificateInfo; -
trunk/WebKit2/UIProcess/WebPageProxy.cpp
r70062 r70097 263 263 } 264 264 265 void WebPageProxy::loadAlternateHTMLString(const String& htmlString, const String& baseURL, const String& unreachableURL) 266 { 267 if (!isValid()) 268 return; 269 270 if (!m_mainFrame) 271 return; 272 273 m_mainFrame->setUnreachableURL(unreachableURL); 274 process()->send(Messages::WebPage::LoadAlternateHTMLString(htmlString, baseURL, unreachableURL), m_pageID); 275 } 276 265 277 void WebPageProxy::loadPlainTextString(const String& string) 266 278 { … … 616 628 } 617 629 618 void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, const String& url, CoreIPC::ArgumentDecoder* arguments)630 void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, const String& url, bool loadingSubstituteDataForUnreachableURL, CoreIPC::ArgumentDecoder* arguments) 619 631 { 620 632 RefPtr<APIObject> userData; … … 624 636 625 637 WebFrameProxy* frame = process()->webFrame(frameID); 638 639 if (!loadingSubstituteDataForUnreachableURL) 640 frame->setUnreachableURL(String()); 626 641 627 642 frame->didStartProvisionalLoad(url); -
trunk/WebKit2/UIProcess/WebPageProxy.h
r70062 r70097 126 126 void loadURLRequest(WebURLRequest*); 127 127 void loadHTMLString(const String& htmlString, const String& baseURL); 128 void loadAlternateHTMLString(const String& htmlString, const String& baseURL, const String& unreachableURL); 128 129 void loadPlainTextString(const String& string); 129 130 … … 234 235 void didCreateSubFrame(uint64_t frameID); 235 236 236 void didStartProvisionalLoadForFrame(uint64_t frameID, const String&, CoreIPC::ArgumentDecoder*);237 void didStartProvisionalLoadForFrame(uint64_t frameID, const String&, bool loadingSubstituteDataForUnreachableURL, CoreIPC::ArgumentDecoder*); 237 238 void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, const String&, CoreIPC::ArgumentDecoder*); 238 239 void didFailProvisionalLoadForFrame(uint64_t frameID, const WebCore::ResourceError&, CoreIPC::ArgumentDecoder*); -
trunk/WebKit2/UIProcess/WebPageProxy.messages.in
r70062 r70097 67 67 DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData) 68 68 DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) 69 DidStartProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData)69 DidStartProvisionalLoadForFrame(uint64_t frameID, WTF::String url, bool loadingSubstituteDataForUnreachableURL, WebKit::InjectedBundleUserMessageEncoder userData) 70 70 DidReceiveTitleForFrame(uint64_t frameID, WTF::String title, WebKit::InjectedBundleUserMessageEncoder userData) 71 71 -
trunk/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r70062 r70097 299 299 webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(webPage, m_frame, userData); 300 300 301 302 bool loadingSubstituteDataForUnreachableURL = !provisionalLoader->unreachableURL().isNull(); 303 301 304 // Notify the UIProcess. 302 WebProcess::shared().connection()->send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());305 WebProcess::shared().connection()->send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame->frameID(), url, loadingSubstituteDataForUnreachableURL, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID()); 303 306 } 304 307 -
trunk/WebKit2/WebProcess/WebPage/WebPage.cpp
r70004 r70097 307 307 } 308 308 309 void WebPage::loadData(PassRefPtr<SharedBuffer> sharedBuffer, const String& MIMEType, const String& encodingName, const KURL& baseURL, const KURL& failingURL)309 void WebPage::loadData(PassRefPtr<SharedBuffer> sharedBuffer, const String& MIMEType, const String& encodingName, const KURL& baseURL, const KURL& unreachableURL) 310 310 { 311 311 ResourceRequest request(baseURL); 312 SubstituteData substituteData(sharedBuffer, MIMEType, encodingName, failingURL);312 SubstituteData substituteData(sharedBuffer, MIMEType, encodingName, unreachableURL); 313 313 m_mainFrame->coreFrame()->loader()->load(request, substituteData, false); 314 314 } … … 319 319 KURL baseURL = baseURLString.isEmpty() ? blankURL() : KURL(KURL(), baseURLString); 320 320 loadData(sharedBuffer, "text/html", "utf-16", baseURL, KURL()); 321 } 322 323 void WebPage::loadAlternateHTMLString(const String& htmlString, const String& baseURLString, const String& unreachableURLString) 324 { 325 RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(htmlString.characters()), htmlString.length() * sizeof(UChar)); 326 KURL baseURL = baseURLString.isEmpty() ? blankURL() : KURL(KURL(), baseURLString); 327 KURL unreachableURL = unreachableURLString.isEmpty() ? KURL() : KURL(KURL(), unreachableURLString) ; 328 loadData(sharedBuffer, "text/html", "utf-16", baseURL, unreachableURL); 321 329 } 322 330 -
trunk/WebKit2/WebProcess/WebPage/WebPage.h
r69997 r70097 190 190 void loadURLRequest(const WebCore::ResourceRequest&); 191 191 void loadHTMLString(const String& htmlString, const String& baseURL); 192 void loadAlternateHTMLString(const String& htmlString, const String& baseURL, const String& unreachableURL); 192 193 void loadPlainTextString(const String&); 193 194 void reload(bool reloadFromOrigin); -
trunk/WebKit2/WebProcess/WebPage/WebPage.messages.in
r69978 r70097 36 36 GoForward(uint64_t backForwardItemID) 37 37 GoToBackForwardItem(uint64_t backForwardItemID) 38 LoadHTMLString(WTF::String htmlString, WTF::String url) 38 LoadHTMLString(WTF::String htmlString, WTF::String baseURL) 39 LoadAlternateHTMLString(WTF::String htmlString, WTF::String baseURL, WTF::String unreachableURL); 39 40 LoadPlainTextString(WTF::String string) 40 41 LoadURL(WTF::String url)
Note: See TracChangeset
for help on using the changeset viewer.