Page* ChromeClientImpl::createWindow( Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features, const NavigationAction& action) { if (!m_webView->client()) return 0; // FrameLoaderClientImpl may have given us a policy to use for the next new // window navigation. If not, determine the policy using the same logic as // show(). WebNavigationPolicy policy; if (m_nextNewWindowNavigationPolicy != WebNavigationPolicyIgnore) { policy = m_nextNewWindowNavigationPolicy; m_nextNewWindowNavigationPolicy = WebNavigationPolicyIgnore; } else policy = getNavigationPolicy(); WrappedResourceRequest request; if (!r.resourceRequest().isEmpty()) request.bind(r.resourceRequest()); else if (!action.resourceRequest().isEmpty()) request.bind(action.resourceRequest()); WebViewImpl* newView = static_cast<WebViewImpl*>( m_webView->client()->createView(WebFrameImpl::fromFrame(frame), request, features, r.frameName(), policy)); if (!newView) return 0; return newView->page(); }
Page* ChromeClientImpl::createWindow( Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features, const NavigationAction&) { if (!m_webView->client()) return 0; WrappedResourceRequest request; if (!r.resourceRequest().isEmpty()) request.bind(r.resourceRequest()); WebViewImpl* newView = static_cast<WebViewImpl*>( m_webView->client()->createView(WebFrameImpl::fromFrame(frame), request, features, r.frameName())); if (!newView) return 0; return newView->page(); }