void FrameLoaderClientQt::callErrorPageExtension(const WebCore::ResourceError& error) { QWebPage* page = m_webFrame->page(); if (page->supportsExtension(QWebPage::ErrorPageExtension)) { QWebPage::ErrorPageExtensionOption option; if (error.domain() == "QtNetwork") option.domain = QWebPage::QtNetwork; else if (error.domain() == "HTTP") option.domain = QWebPage::Http; else if (error.domain() == "WebKit") option.domain = QWebPage::WebKit; else return; option.url = QUrl(error.failingURL()); option.frame = m_webFrame; option.error = error.errorCode(); option.errorString = error.localizedDescription(); QWebPage::ErrorPageExtensionReturn output; if (!page->extension(QWebPage::ErrorPageExtension, &option, &output)) return; KURL baseUrl(output.baseUrl); KURL failingUrl(option.url); WebCore::ResourceRequest request(baseUrl); WTF::RefPtr<WebCore::SharedBuffer> buffer = WebCore::SharedBuffer::create(output.content.constData(), output.content.length()); WebCore::SubstituteData substituteData(buffer, output.contentType, output.encoding, failingUrl); m_frame->loader()->load(request, substituteData, false); } }
KURL DocumentLoader::documentURL() const { KURL url = substituteData().responseURL(); if (url.isEmpty()) url = requestURL(); if (url.isEmpty()) url = m_response.url(); return url; }
void fire(LocalFrame* frame) override { OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicator(); SubstituteData substituteData(SharedBuffer::create(), "text/plain", "UTF-8", KURL(), ForceSynchronousLoad); FrameLoadRequest request(originDocument(), url(), substituteData); request.setReplacesCurrentItem(true); request.setClientRedirect(ClientRedirect); frame->loader().load(request); }
KURL DocumentLoader::documentURL() const { KURL url = substituteData().responseURL(); #if ENABLE(WEB_ARCHIVE) if (url.isEmpty() && m_archive && m_archive->type() == Archive::WebArchive) url = m_archive->mainResource()->url(); #endif if (url.isEmpty()) url = requestURL(); if (url.isEmpty()) url = responseURL(); return url; }
void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl, const wxString& mimetype) { if (m_impl->frame && m_impl->frame->loader()) { WebCore::KURL url(WebCore::KURL(), baseUrl); const wxCharBuffer charBuffer(source.utf8_str()); const char* contents = charBuffer; WTF::PassRefPtr<WebCore::SharedBuffer> sharedBuffer = WebCore::SharedBuffer::create(contents, strlen(contents)); WebCore::SubstituteData substituteData(sharedBuffer, mimetype, WTF::String("UTF-8"), WebCore::blankURL(), url); m_impl->frame->loader()->stop(); m_impl->frame->loader()->load(WebCore::ResourceRequest(url), substituteData, false); } }