void WebFrameLoaderClient::dispatchUnableToImplementPolicy(const ResourceError& error) { WebView* webView = m_webFrame->webView(); COMPtr<IWebPolicyDelegate> policyDelegate; if (FAILED(webView->policyDelegate(&policyDelegate))) policyDelegate = DefaultPolicyDelegate::sharedInstance(); COMPtr<IWebError> webError(AdoptCOM, WebError::createInstance(error)); policyDelegate->unableToImplementPolicyWithError(webView, webError.get(), m_webFrame); }
void WebFrameLoaderClient::dispatchDecidePolicyForResponse(const ResourceResponse& response, const ResourceRequest& request, FramePolicyFunction function) { WebView* webView = m_webFrame->webView(); Frame* coreFrame = core(m_webFrame); ASSERT(coreFrame); COMPtr<IWebPolicyDelegate> policyDelegate; if (FAILED(webView->policyDelegate(&policyDelegate))) policyDelegate = DefaultPolicyDelegate::sharedInstance(); COMPtr<IWebURLRequest> urlRequest(AdoptCOM, WebMutableURLRequest::createInstance(request)); if (SUCCEEDED(policyDelegate->decidePolicyForMIMEType(webView, BString(response.mimeType()), urlRequest.get(), m_webFrame, setUpPolicyListener(function).get()))) return; function(PolicyUse); }
void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction& action, const ResourceRequest& request, PassRefPtr<FormState> formState, FramePolicyFunction function) { WebView* webView = m_webFrame->webView(); Frame* coreFrame = core(m_webFrame); ASSERT(coreFrame); COMPtr<IWebPolicyDelegate> policyDelegate; if (FAILED(webView->policyDelegate(&policyDelegate))) policyDelegate = DefaultPolicyDelegate::sharedInstance(); COMPtr<IWebURLRequest> urlRequest(AdoptCOM, WebMutableURLRequest::createInstance(request)); COMPtr<WebActionPropertyBag> actionInformation(AdoptCOM, WebActionPropertyBag::createInstance(action, formState ? formState->form() : 0, coreFrame)); if (SUCCEEDED(policyDelegate->decidePolicyForNavigationAction(webView, actionInformation.get(), urlRequest.get(), m_webFrame, setUpPolicyListener(function).get()))) return; function(PolicyUse); }