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::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); }