Diff
Modified: trunk/Source/WebCore/ChangeLog (155288 => 155289)
--- trunk/Source/WebCore/ChangeLog 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebCore/ChangeLog 2013-09-08 08:17:10 UTC (rev 155289)
@@ -1,5 +1,14 @@
2013-09-08 Andreas Kling <[email protected]>
+ FrameLoader::policyChecker() should return a reference.
+ <https://webkit.org/b/120991>
+
+ Reviewed by Antti Koivisto.
+
+ This function never returns null. Make it return a reference!
+
+2013-09-08 Andreas Kling <[email protected]>
+
FrameLoader::mixedContentChecker() should return a reference.
<https://webkit.org/b/120992>
Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (155288 => 155289)
--- trunk/Source/WebCore/loader/DocumentLoader.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -528,7 +528,7 @@
// listener tells us to. In practice that means the navigation policy needs to be decided
// synchronously for these redirect cases.
if (!redirectResponse.isNull())
- frameLoader()->policyChecker()->checkNavigationPolicy(newRequest, callContinueAfterNavigationPolicy, this);
+ frameLoader()->policyChecker().checkNavigationPolicy(newRequest, callContinueAfterNavigationPolicy, this);
}
void DocumentLoader::callContinueAfterNavigationPolicy(void* argument, const ResourceRequest& request, PassRefPtr<FormState>, bool shouldContinue)
@@ -638,7 +638,7 @@
m_contentFilter = ContentFilter::create(response);
#endif
- frameLoader()->policyChecker()->checkContentPolicy(m_response, callContinueAfterContentPolicy, this);
+ frameLoader()->policyChecker().checkContentPolicy(m_response, callContinueAfterContentPolicy, this);
}
void DocumentLoader::callContinueAfterContentPolicy(void* argument, PolicyAction policy)
@@ -667,7 +667,7 @@
|| equalIgnoringCase("multipart/related", mimeType))
&& !m_substituteData.isValid() && !SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol());
if (!frameLoader()->client().canShowMIMEType(mimeType) || isRemoteWebArchive) {
- frameLoader()->policyChecker()->cannotShowMIMEType(m_response);
+ frameLoader()->policyChecker().cannotShowMIMEType(m_response);
// Check reachedTerminalState since the load may have already been canceled inside of _handleUnimplementablePolicyWithErrorCode::.
stopLoadingForPolicyChange();
return;
@@ -1423,7 +1423,7 @@
m_dataLoadTimer.stop();
if (m_waitingForContentPolicy) {
- frameLoader()->policyChecker()->cancelCheck();
+ frameLoader()->policyChecker().cancelCheck();
ASSERT(m_waitingForContentPolicy);
m_waitingForContentPolicy = false;
}
Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (155288 => 155289)
--- trunk/Source/WebCore/loader/FrameLoader.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -1237,7 +1237,7 @@
NavigationAction action(request, newLoadType, isFormSubmission, event);
if (!targetFrame && !frameName.isEmpty()) {
- policyChecker()->checkNewWindowPolicy(action, FrameLoader::callContinueLoadAfterNewWindowPolicy,
+ policyChecker().checkNewWindowPolicy(action, FrameLoader::callContinueLoadAfterNewWindowPolicy,
request, formState.release(), frameName, this);
return;
}
@@ -1252,9 +1252,9 @@
// work properly.
if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, newLoadType, newURL)) {
oldDocumentLoader->setTriggeringAction(action);
- policyChecker()->stopCheck();
- policyChecker()->setLoadType(newLoadType);
- policyChecker()->checkNavigationPolicy(request, oldDocumentLoader.get(), formState.release(),
+ policyChecker().stopCheck();
+ policyChecker().setLoadType(newLoadType);
+ policyChecker().checkNavigationPolicy(request, oldDocumentLoader.get(), formState.release(),
callContinueFragmentScrollAfterNavigationPolicy, this);
} else {
// must grab this now, since this load may stop the previous load and clear this flag
@@ -1301,7 +1301,7 @@
}
if (request.shouldCheckNewWindowPolicy()) {
- policyChecker()->checkNewWindowPolicy(NavigationAction(request.resourceRequest(), NavigationTypeOther), FrameLoader::callContinueLoadAfterNewWindowPolicy, request.resourceRequest(), 0, request.frameName(), this);
+ policyChecker().checkNewWindowPolicy(NavigationAction(request.resourceRequest(), NavigationTypeOther), FrameLoader::callContinueLoadAfterNewWindowPolicy, request.resourceRequest(), 0, request.frameName(), this);
return;
}
@@ -1382,29 +1382,29 @@
if (m_frame.document())
m_previousURL = m_frame.document()->url();
- policyChecker()->setLoadType(type);
+ policyChecker().setLoadType(type);
RefPtr<FormState> formState = prpFormState;
bool isFormSubmission = formState;
const KURL& newURL = loader->request().url();
const String& httpMethod = loader->request().httpMethod();
- if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker()->loadType(), newURL)) {
+ if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) {
RefPtr<DocumentLoader> oldDocumentLoader = m_documentLoader;
- NavigationAction action(loader->request(), policyChecker()->loadType(), isFormSubmission);
+ NavigationAction action(loader->request(), policyChecker().loadType(), isFormSubmission);
oldDocumentLoader->setTriggeringAction(action);
- policyChecker()->stopCheck();
- policyChecker()->checkNavigationPolicy(loader->request(), oldDocumentLoader.get(), formState,
+ policyChecker().stopCheck();
+ policyChecker().checkNavigationPolicy(loader->request(), oldDocumentLoader.get(), formState,
callContinueFragmentScrollAfterNavigationPolicy, this);
} else {
if (Frame* parent = m_frame.tree().parent())
loader->setOverrideEncoding(parent->loader().documentLoader()->overrideEncoding());
- policyChecker()->stopCheck();
+ policyChecker().stopCheck();
setPolicyDocumentLoader(loader);
if (loader->triggeringAction().isEmpty())
- loader->setTriggeringAction(NavigationAction(loader->request(), policyChecker()->loadType(), isFormSubmission));
+ loader->setTriggeringAction(NavigationAction(loader->request(), policyChecker().loadType(), isFormSubmission));
if (Element* ownerElement = m_frame.ownerElement()) {
// We skip dispatching the beforeload event if we've already
@@ -1419,7 +1419,7 @@
}
}
- policyChecker()->checkNavigationPolicy(loader->request(), loader, formState,
+ policyChecker().checkNavigationPolicy(loader->request(), loader, formState,
callContinueLoadAfterNavigationPolicy, this);
}
}
@@ -1459,7 +1459,7 @@
if (unreachableURL.isEmpty())
return false;
- if (!isBackForwardLoadType(policyChecker()->loadType()))
+ if (!isBackForwardLoadType(policyChecker().loadType()))
return false;
// We only treat unreachableURLs specially during the delegate callbacks
@@ -1468,7 +1468,7 @@
// case handles malformed URLs and unknown schemes. Loading alternate content
// at other times behaves like a standard load.
DocumentLoader* compareDocumentLoader = 0;
- if (policyChecker()->delegateIsDecidingNavigationPolicy() || policyChecker()->delegateIsHandlingUnimplementablePolicy())
+ if (policyChecker().delegateIsDecidingNavigationPolicy() || policyChecker().delegateIsHandlingUnimplementablePolicy())
compareDocumentLoader = m_policyDocumentLoader.get();
else if (m_delegateIsHandlingProvisionalLoadError)
compareDocumentLoader = m_provisionalDocumentLoader.get();
@@ -1568,7 +1568,7 @@
m_inStopAllLoaders = true;
- policyChecker()->stopCheck();
+ policyChecker().stopCheck();
// If no new load is in progress, we should clear the provisional item from history
// before we call stopLoading.
@@ -2561,7 +2561,7 @@
if (Frame* targetFrame = formState ? 0 : findFrameForNavigation(frameName))
targetFrame->loader().loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release());
else
- policyChecker()->checkNewWindowPolicy(action, FrameLoader::callContinueLoadAfterNewWindowPolicy, workingResourceRequest, formState.release(), frameName, this);
+ policyChecker().checkNewWindowPolicy(action, FrameLoader::callContinueLoadAfterNewWindowPolicy, workingResourceRequest, formState.release(), frameName, this);
} else {
// must grab this now, since this load may stop the previous load and clear this flag
bool isRedirect = m_quickRedirectComing;
@@ -2667,7 +2667,7 @@
setProvisionalDocumentLoader(0);
}
- bool isRedirect = m_quickRedirectComing || policyChecker()->loadType() == FrameLoadTypeRedirectWithLockedBackForwardList;
+ bool isRedirect = m_quickRedirectComing || policyChecker().loadType() == FrameLoadTypeRedirectWithLockedBackForwardList;
loadInSameDocument(request.url(), 0, !isRedirect);
}
@@ -2840,7 +2840,7 @@
// If the navigation request came from the back/forward menu, and we punt on it, we have the
// problem that we have optimistically moved the b/f cursor already, so move it back. For sanity,
// we only do this when punting a navigation for the target frame or top-level frame.
- if ((isTargetItem || isLoadingMainFrame()) && isBackForwardLoadType(policyChecker()->loadType())) {
+ if ((isTargetItem || isLoadingMainFrame()) && isBackForwardLoadType(policyChecker().loadType())) {
if (Page* page = m_frame.page()) {
if (HistoryItem* resetItem = page->mainFrame().loader().history().currentItem()) {
page->backForward()->setCurrentItem(resetItem);
@@ -2851,7 +2851,7 @@
return;
}
- FrameLoadType type = policyChecker()->loadType();
+ FrameLoadType type = policyChecker().loadType();
// A new navigation is in progress, so don't clear the history's provisional item.
stopAllLoaders(ShouldNotClearProvisionalItem);
Modified: trunk/Source/WebCore/loader/FrameLoader.h (155288 => 155289)
--- trunk/Source/WebCore/loader/FrameLoader.h 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebCore/loader/FrameLoader.h 2013-09-08 08:17:10 UTC (rev 155289)
@@ -92,7 +92,7 @@
Frame& frame() const { return m_frame; }
- PolicyChecker* policyChecker() const { return m_policyChecker.get(); }
+ PolicyChecker& policyChecker() const { return *m_policyChecker; }
HistoryController& history() const { return *m_history; }
ResourceLoadNotifier* notifier() const { return &m_notifer; }
SubframeLoader& subframeLoader() const { return *m_subframeLoader; }
@@ -386,7 +386,7 @@
// FIXME: These should be OwnPtr<T> to reduce build times and simplify
// header dependencies unless performance testing proves otherwise.
// Some of these could be lazily created for memory savings on devices.
- OwnPtr<PolicyChecker> m_policyChecker;
+ const OwnPtr<PolicyChecker> m_policyChecker;
const OwnPtr<HistoryController> m_history;
mutable ResourceLoadNotifier m_notifer;
const OwnPtr<SubframeLoader> m_subframeLoader;
Modified: trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp (155288 => 155289)
--- trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -107,7 +107,7 @@
{
Frame* f = EWKPrivate::coreFrame(m_frame);
ASSERT(f);
- (f->loader().policyChecker()->*function)(action);
+ (f->loader().policyChecker().*function)(action);
}
WTF::PassRefPtr<DocumentLoader> FrameLoaderClientEfl::createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData)
Modified: trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp (155288 => 155289)
--- trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -155,7 +155,7 @@
ASSERT(policyFunction);
if (!policyFunction)
return;
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyUse);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyUse);
}
void FrameLoaderClient::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
@@ -345,7 +345,7 @@
return;
if (resourceRequest.isNull()) {
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyIgnore);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyIgnore);
return;
}
@@ -421,7 +421,7 @@
return;
if (resourceRequest.isNull()) {
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyIgnore);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyIgnore);
return;
}
@@ -441,7 +441,7 @@
// FIXME: I think Qt version marshals this to another thread so when we
// have multi-threaded download, we might need to do the same
if (!isHandled)
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyUse);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyUse);
}
void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>)
@@ -451,7 +451,7 @@
return;
if (resourceRequest.isNull()) {
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyIgnore);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyIgnore);
return;
}
@@ -468,7 +468,7 @@
g_signal_emit_by_name(webView, "navigation-requested", m_frame, request.get(), &response);
if (response == WEBKIT_NAVIGATION_RESPONSE_IGNORE) {
- (core(m_frame)->loader().policyChecker()->*policyFunction)(PolicyIgnore);
+ (core(m_frame)->loader().policyChecker().*policyFunction)(PolicyIgnore);
return;
}
Modified: trunk/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp (155288 => 155289)
--- trunk/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -85,7 +85,7 @@
WebKitWebPolicyDecisionPrivate* priv = decision->priv;
if (!priv->isCancelled)
- (core(priv->frame)->loader().policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyUse);
+ (core(priv->frame)->loader().policyChecker().*(priv->framePolicyFunction))(WebCore::PolicyUse);
}
/**
@@ -103,7 +103,7 @@
WebKitWebPolicyDecisionPrivate* priv = decision->priv;
if (!priv->isCancelled)
- (core(priv->frame)->loader().policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyIgnore);
+ (core(priv->frame)->loader().policyChecker().*(priv->framePolicyFunction))(WebCore::PolicyIgnore);
}
/**
@@ -121,7 +121,7 @@
WebKitWebPolicyDecisionPrivate* priv = decision->priv;
if (!priv->isCancelled)
- (core(priv->frame)->loader().policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyDownload);
+ (core(priv->frame)->loader().policyChecker().*(priv->framePolicyFunction))(WebCore::PolicyDownload);
}
void webkit_web_policy_decision_cancel(WebKitWebPolicyDecision* decision)
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (155288 => 155289)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm 2013-09-08 08:17:10 UTC (rev 155289)
@@ -815,7 +815,7 @@
{
id <WebFormDelegate> formDelegate = [getWebView(m_webFrame.get()) _formDelegate];
if (!formDelegate) {
- (core(m_webFrame.get())->loader().policyChecker()->*function)(PolicyUse);
+ (core(m_webFrame.get())->loader().policyChecker().*function)(PolicyUse);
return;
}
@@ -2044,7 +2044,7 @@
_policyFunction = nullptr;
ASSERT(policyFunction);
- (frame->loader().policyChecker()->*policyFunction)(action);
+ (frame->loader().policyChecker().*policyFunction)(action);
}
- (void)ignore
Modified: trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp (155288 => 155289)
--- trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -244,7 +244,7 @@
void FrameLoaderClientQt::callPolicyFunction(FramePolicyFunction function, PolicyAction action)
{
- (m_frame->loader().policyChecker()->*function)(action);
+ (m_frame->loader().policyChecker().*function)(action);
}
bool FrameLoaderClientQt::hasWebView() const
Modified: trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp (155288 => 155289)
--- trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -572,7 +572,7 @@
if (SUCCEEDED(policyDelegate->decidePolicyForMIMEType(webView, BString(response.mimeType()), urlRequest.get(), m_webFrame, setUpPolicyListener(function).get())))
return;
- (coreFrame->loader().policyChecker()->*function)(PolicyUse);
+ (coreFrame->loader().policyChecker().*function)(PolicyUse);
}
void WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const NavigationAction& action, const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName)
@@ -591,7 +591,7 @@
if (SUCCEEDED(policyDelegate->decidePolicyForNewWindowAction(webView, actionInformation.get(), urlRequest.get(), BString(frameName), setUpPolicyListener(function).get())))
return;
- (coreFrame->loader().policyChecker()->*function)(PolicyUse);
+ (coreFrame->loader().policyChecker().*function)(PolicyUse);
}
void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& action, const ResourceRequest& request, PassRefPtr<FormState> formState)
@@ -610,7 +610,7 @@
if (SUCCEEDED(policyDelegate->decidePolicyForNavigationAction(webView, actionInformation.get(), urlRequest.get(), m_webFrame, setUpPolicyListener(function).get())))
return;
- (coreFrame->loader().policyChecker()->*function)(PolicyUse);
+ (coreFrame->loader().policyChecker().*function)(PolicyUse);
}
void WebFrameLoaderClient::dispatchUnableToImplementPolicy(const ResourceError& error)
@@ -637,7 +637,7 @@
COMPtr<IWebFormDelegate> formDelegate;
if (FAILED(webView->formDelegate(&formDelegate))) {
- (coreFrame->loader().policyChecker()->*function)(PolicyUse);
+ (coreFrame->loader().policyChecker().*function)(PolicyUse);
return;
}
@@ -656,7 +656,7 @@
return;
// FIXME: Add a sane default implementation
- (coreFrame->loader().policyChecker()->*function)(PolicyUse);
+ (coreFrame->loader().policyChecker().*function)(PolicyUse);
}
void WebFrameLoaderClient::setMainDocumentError(DocumentLoader*, const ResourceError& error)
@@ -1378,5 +1378,5 @@
Frame* coreFrame = core(m_webFrame);
ASSERT(coreFrame);
- (coreFrame->loader().policyChecker()->*function)(action);
+ (coreFrame->loader().policyChecker().*function)(action);
}
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (155288 => 155289)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -625,7 +625,7 @@
return;
if (!request.url().string()) {
- (m_frame->coreFrame()->loader().policyChecker()->*function)(PolicyUse);
+ (m_frame->coreFrame()->loader().policyChecker().*function)(PolicyUse);
return;
}
@@ -634,7 +634,7 @@
// Notify the bundle client.
WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForResponse(webPage, m_frame, response, request, userData);
if (policy == WKBundlePagePolicyActionUse) {
- (m_frame->coreFrame()->loader().policyChecker()->*function)(PolicyUse);
+ (m_frame->coreFrame()->loader().policyChecker().*function)(PolicyUse);
return;
}
@@ -665,7 +665,7 @@
// Notify the bundle client.
WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForNewWindowAction(webPage, m_frame, action.get(), request, frameName, userData);
if (policy == WKBundlePagePolicyActionUse) {
- (m_frame->coreFrame()->loader().policyChecker()->*function)(PolicyUse);
+ (m_frame->coreFrame()->loader().policyChecker().*function)(PolicyUse);
return;
}
@@ -684,7 +684,7 @@
// Always ignore requests with empty URLs.
if (request.isEmpty()) {
- (m_frame->coreFrame()->loader().policyChecker()->*function)(PolicyIgnore);
+ (m_frame->coreFrame()->loader().policyChecker().*function)(PolicyIgnore);
return;
}
@@ -695,7 +695,7 @@
// Notify the bundle client.
WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForNavigationAction(webPage, m_frame, action.get(), request, userData);
if (policy == WKBundlePagePolicyActionUse) {
- (m_frame->coreFrame()->loader().policyChecker()->*function)(PolicyUse);
+ (m_frame->coreFrame()->loader().policyChecker().*function)(PolicyUse);
return;
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (155288 => 155289)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp 2013-09-08 08:15:27 UTC (rev 155288)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp 2013-09-08 08:17:10 UTC (rev 155289)
@@ -222,7 +222,7 @@
m_policyDownloadID = downloadID;
- (m_coreFrame->loader().policyChecker()->*function)(action);
+ (m_coreFrame->loader().policyChecker().*function)(action);
}
void WebFrame::startDownload(const WebCore::ResourceRequest& request)