InjectedBundlePagePolicyClient.cpp [plain text]
#include "config.h"
#include "InjectedBundlePagePolicyClient.h"
#include "APIError.h"
#include "APIURLRequest.h"
#include "InjectedBundleNavigationAction.h"
#include "WKBundleAPICast.h"
#include "WebFrame.h"
#include "WebPage.h"
namespace WebKit {
using namespace WebCore;
WKBundlePagePolicyAction InjectedBundlePagePolicyClient::decidePolicyForNavigationAction(WebPage* page, WebFrame* frame, InjectedBundleNavigationAction* action, const ResourceRequest& resourceRequest, RefPtr<API::Object>& userData)
{
if (!m_client.decidePolicyForNavigationAction)
return WKBundlePagePolicyActionPassThrough;
Ref<API::URLRequest> request = API::URLRequest::create(resourceRequest);
WKTypeRef userDataToPass = 0;
WKBundlePagePolicyAction policy = m_client.decidePolicyForNavigationAction(toAPI(page), toAPI(frame), toAPI(action), toAPI(request.ptr()), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
return policy;
}
WKBundlePagePolicyAction InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction(WebPage* page, WebFrame* frame, InjectedBundleNavigationAction* action, const ResourceRequest& resourceRequest, const String& frameName, RefPtr<API::Object>& userData)
{
if (!m_client.decidePolicyForNewWindowAction)
return WKBundlePagePolicyActionPassThrough;
Ref<API::URLRequest> request = API::URLRequest::create(resourceRequest);
WKTypeRef userDataToPass = 0;
WKBundlePagePolicyAction policy = m_client.decidePolicyForNewWindowAction(toAPI(page), toAPI(frame), toAPI(action), toAPI(request.ptr()), toAPI(frameName.impl()), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
return policy;
}
WKBundlePagePolicyAction InjectedBundlePagePolicyClient::decidePolicyForResponse(WebPage* page, WebFrame* frame, const ResourceResponse& resourceResponse, const ResourceRequest& resourceRequest, RefPtr<API::Object>& userData)
{
if (!m_client.decidePolicyForResponse)
return WKBundlePagePolicyActionPassThrough;
Ref<API::URLResponse> response = API::URLResponse::create(resourceResponse);
Ref<API::URLRequest> request = API::URLRequest::create(resourceRequest);
WKTypeRef userDataToPass = 0;
WKBundlePagePolicyAction policy = m_client.decidePolicyForResponse(toAPI(page), toAPI(frame), toAPI(response.ptr()), toAPI(request.ptr()), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
return policy;
}
void InjectedBundlePagePolicyClient::unableToImplementPolicy(WebPage* page, WebFrame* frame, const WebCore::ResourceError& error, RefPtr<API::Object>& userData)
{
if (!m_client.unableToImplementPolicy)
return;
WKTypeRef userDataToPass = 0;
m_client.unableToImplementPolicy(toAPI(page), toAPI(frame), toAPI(error), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
}