void FrameLoaderClientEfl::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>) { ASSERT(function); ASSERT(m_frame); if (resourceRequest.isNull()) { callPolicyFunction(function, PolicyIgnore); return; } // if not acceptNavigationRequest - look at Qt -> PolicyIgnore; // FIXME: do proper check and only reset forms when on PolicyIgnore char* url = strdup(resourceRequest.url().string().utf8().data()); Ewk_Frame_Resource_Request request = { url, 0 }; bool ret = ewk_view_navigation_policy_decision(m_view, &request); free(url); PolicyAction policy; if (!ret) policy = PolicyIgnore; else { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) { Frame* f = EWKPrivate::coreFrame(m_frame); f->loader()->resetMultipleFormSubmissionProtection(); } policy = PolicyUse; } callPolicyFunction(function, policy); }
void FrameLoaderClientEfl::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>) { ASSERT(function); ASSERT(m_frame); if (resourceRequest.isNull()) { callPolicyFunction(function, PolicyIgnore); return; } // if not acceptNavigationRequest - look at Qt -> PolicyIgnore; // FIXME: do proper check and only reset forms when on PolicyIgnore CString url = resourceRequest.url().string().utf8(); CString firstParty = resourceRequest.firstPartyForCookies().string().utf8(); CString httpMethod = resourceRequest.httpMethod().utf8(); Ewk_Frame_Resource_Request request = { url.data(), firstParty.data(), httpMethod.data(), 0, m_frame, false }; bool ret = ewk_view_navigation_policy_decision(m_view, &request, static_cast<Ewk_Navigation_Type>(action.type())); PolicyAction policy; if (!ret) policy = PolicyIgnore; else { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) { Frame* f = EWKPrivate::coreFrame(m_frame); f->loader()->resetMultipleFormSubmissionProtection(); } policy = PolicyUse; } callPolicyFunction(function, policy); }
void FrameLoaderClientEfl::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const String& MIMEType, const ResourceRequest&) { // we need to call directly here (currently callPolicyFunction does that!) ASSERT(function); if (canShowMIMEType(MIMEType)) callPolicyFunction(function, PolicyUse); else callPolicyFunction(function, PolicyDownload); }
void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WebCore::String& MIMEType, const WebCore::ResourceRequest&) { // we need to call directly here const ResourceResponse& response = m_frame->loader()->activeDocumentLoader()->response(); if (WebCore::contentDispositionType(response.httpHeaderField("Content-Disposition")) == WebCore::ContentDispositionAttachment) callPolicyFunction(function, PolicyDownload); else if (canShowMIMEType(MIMEType)) callPolicyFunction(function, PolicyUse); else callPolicyFunction(function, PolicyDownload); }
void FrameLoaderClientEfl::dispatchDecidePolicyForResponse(FramePolicyFunction function, const ResourceResponse& response, const ResourceRequest& resourceRequest) { // we need to call directly here (currently callPolicyFunction does that!) ASSERT(function); if (resourceRequest.isNull()) { callPolicyFunction(function, PolicyIgnore); return; } if (canShowMIMEType(response.mimeType())) callPolicyFunction(function, PolicyUse); else callPolicyFunction(function, PolicyDownload); }
void FrameLoaderClientEfl::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const NavigationAction&, const ResourceRequest& resourceRequest, PassRefPtr<FormState>, const String&) { ASSERT(function); ASSERT(m_frame); if (resourceRequest.isNull()) { callPolicyFunction(function, PolicyIgnore); return; } // if not acceptNavigationRequest - look at Qt -> PolicyIgnore; // FIXME: do proper check and only reset forms when on PolicyIgnore Frame* f = EWKPrivate::coreFrame(m_frame); f->loader()->resetMultipleFormSubmissionProtection(); callPolicyFunction(function, PolicyUse); }
void FrameLoaderClientQt::dispatchWillSubmitForm(FramePolicyFunction function, PassRefPtr<FormState>) { notImplemented(); // FIXME: This is surely too simple callPolicyFunction(function, PolicyUse); }
void FrameLoaderClientEfl::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>) { ASSERT(function); ASSERT(m_frame); // if not acceptNavigationRequest - look at Qt -> PolicyIgnore; // FIXME: do proper check and only reset forms when on PolicyIgnore Frame* f = ewk_frame_core_get(m_frame); f->loader()->resetMultipleFormSubmissionProtection(); callPolicyFunction(function, PolicyUse); }
void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WebCore::String&) { Q_ASSERT(m_webFrame); QNetworkRequest r(request.toNetworkRequest(m_webFrame)); 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(); if (action.type() == NavigationTypeLinkClicked && r.url().hasFragment()) { ResourceRequest emptyRequest; m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); } callPolicyFunction(function, PolicyIgnore); return; } callPolicyFunction(function, PolicyUse); }
void FrameLoaderClientEfl::dispatchDecidePolicyForResponse(const ResourceResponse& response, const ResourceRequest& resourceRequest, FramePolicyFunction function) { // we need to call directly here (currently callPolicyFunction does that!) ASSERT(function); if (resourceRequest.isNull()) { callPolicyFunction(function, PolicyIgnore); return; } // Ignore responses with an HTTP status code of 204 (No Content) if (response.httpStatusCode() == HTTPNoContent) { callPolicyFunction(function, PolicyIgnore); return; } if (canShowMIMEType(response.mimeType())) callPolicyFunction(function, PolicyUse); else callPolicyFunction(function, PolicyDownload); }
void FrameLoaderClientEfl::dispatchWillSubmitForm(FramePolicyFunction function, PassRefPtr<FormState>) { // FIXME: This is surely too simple ASSERT(function); callPolicyFunction(function, PolicyUse); }