void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>) { Q_ASSERT(!m_policyFunction); Q_ASSERT(m_webFrame); m_policyFunction = function; #if QT_VERSION < 0x040400 QWebNetworkRequest r(request); #else QNetworkRequest r(request.toNetworkRequest()); #endif QWebPage*page = m_webFrame->page(); if (!page->d->acceptNavigationRequest(m_webFrame, r, QWebPage::NavigationType(action.type()))) { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) m_frame->loader()->resetMultipleFormSubmissionProtection(); if (action.type() == NavigationTypeLinkClicked && r.url().hasFragment()) { ResourceRequest emptyRequest; m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); } slotCallPolicyFunction(PolicyIgnore); return; } slotCallPolicyFunction(PolicyUse); }
void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WebCore::String& MIMEType, const WebCore::ResourceRequest&) { // we need to call directly here Q_ASSERT(!m_policyFunction); m_policyFunction = function; if (canShowMIMEType(MIMEType)) slotCallPolicyFunction(PolicyUse); else slotCallPolicyFunction(PolicyDownload); }
void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WebCore::String&) { Q_ASSERT(!m_policyFunction); Q_ASSERT(m_webFrame); m_policyFunction = function; #if QT_VERSION < 0x040400 QWebNetworkRequest r(request); #else QNetworkRequest r(request.toNetworkRequest()); #endif QWebPage* page = m_webFrame->page(); if (!page->d->acceptNavigationRequest(0, r, QWebPage::NavigationType(action.type()))) { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) m_frame->loader()->resetMultipleFormSubmissionProtection(); slotCallPolicyFunction(PolicyIgnore); return; } slotCallPolicyFunction(PolicyUse); }