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); } }
void encodeResourceError(ArgumentEncoder* encoder, const WebCore::ResourceError& resourceError) { encoder->encode(CoreIPC::In(resourceError.domain(), resourceError.errorCode(), resourceError.failingURL(), resourceError.localizedDescription())); #if USE(CFNETWORK) encoder->encode(WebKit::PlatformCertificateInfo(resourceError.certificate())); #endif }
void WebSoupRequestManager::didFailURIRequest(const WebCore::ResourceError& error, uint64_t requestID) { WebSoupRequestAsyncData* data = m_requestMap.get(requestID); ASSERT(data); GRefPtr<GTask> task = data->releaseTask(); ASSERT(task.get()); g_task_return_new_error(task.get(), g_quark_from_string(error.domain().utf8().data()), error.errorCode(), "%s", error.localizedDescription().utf8().data()); m_requestMap.remove(requestID); }
void CustomProtocolManagerImpl::didFailWithError(uint64_t customProtocolID, const WebCore::ResourceError& error) { WebSoupRequestAsyncData* data = m_customProtocolMap.get(customProtocolID); ASSERT(data); GRefPtr<GTask> task = data->releaseTask(); ASSERT(task.get()); g_task_return_new_error(task.get(), g_quark_from_string(error.domain().utf8().data()), error.errorCode(), "%s", error.localizedDescription().utf8().data()); m_customProtocolMap.remove(customProtocolID); }