NavigationPolicy FrameLoaderClientImpl::decidePolicyForNavigation(const ResourceRequest& request, DocumentLoader* loader, NavigationPolicy policy) { if (!m_webFrame->client()) return NavigationPolicyIgnore; WebDataSourceImpl* ds = WebDataSourceImpl::fromDocumentLoader(loader); WebNavigationPolicy webPolicy = m_webFrame->client()->decidePolicyForNavigation(m_webFrame, ds->extraData(), WrappedResourceRequest(request), ds->navigationType(), static_cast<WebNavigationPolicy>(policy), ds->isRedirect()); return static_cast<NavigationPolicy>(webPolicy); }
NavigationPolicy FrameLoaderClientImpl::decidePolicyForNavigation(const ResourceRequest& request, DocumentLoader* loader, NavigationPolicy policy, bool isTransitionNavigation) { if (!m_webFrame->client()) return NavigationPolicyIgnore; WebDataSourceImpl* ds = WebDataSourceImpl::fromDocumentLoader(loader); WrappedResourceRequest wrappedResourceRequest(request); WebFrameClient::NavigationPolicyInfo navigationInfo(wrappedResourceRequest); navigationInfo.frame = m_webFrame; navigationInfo.extraData = ds->extraData(); navigationInfo.navigationType = ds->navigationType(); navigationInfo.defaultPolicy = static_cast<WebNavigationPolicy>(policy); navigationInfo.isRedirect = ds->isRedirect(); navigationInfo.isTransitionNavigation = isTransitionNavigation; WebNavigationPolicy webPolicy = m_webFrame->client()->decidePolicyForNavigation(navigationInfo); return static_cast<NavigationPolicy>(webPolicy); }
NavigationPolicy FrameLoaderClientImpl::decidePolicyForNavigation(const ResourceRequest& request, DocumentLoader* loader, NavigationPolicy policy) { if (!m_webFrame->client()) return NavigationPolicyIgnore; if (policy == NavigationPolicyNewBackgroundTab && !allowCreatingBackgroundTabs() && !UIEventWithKeyState::newTabModifierSetFromIsolatedWorld()) policy = NavigationPolicyNewForegroundTab; WebDataSourceImpl* ds = WebDataSourceImpl::fromDocumentLoader(loader); WrappedResourceRequest wrappedResourceRequest(request); WebFrameClient::NavigationPolicyInfo navigationInfo(wrappedResourceRequest); navigationInfo.frame = m_webFrame; navigationInfo.extraData = ds->extraData(); navigationInfo.navigationType = ds->navigationType(); navigationInfo.defaultPolicy = static_cast<WebNavigationPolicy>(policy); navigationInfo.isRedirect = ds->isRedirect(); WebNavigationPolicy webPolicy = m_webFrame->client()->decidePolicyForNavigation(navigationInfo); return static_cast<NavigationPolicy>(webPolicy); }