diff options
author | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-27 21:22:14 +0000 |
---|---|---|
committer | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-27 21:22:14 +0000 |
commit | 434bc9bd7fa0f3d22381e467d35ddb34b2a2c1ac (patch) | |
tree | 295f18e66f31723fca363e34547a0e2ac992577d | |
parent | 006128072c1334a8bd8c8658fcd8a5bb280151f9 (diff) | |
download | chromium_src-434bc9bd7fa0f3d22381e467d35ddb34b2a2c1ac.zip chromium_src-434bc9bd7fa0f3d22381e467d35ddb34b2a2c1ac.tar.gz chromium_src-434bc9bd7fa0f3d22381e467d35ddb34b2a2c1ac.tar.bz2 |
Remove unused opener_url from DidStartProvisionalLoad.
The value is unused and potentially incorrect, leading to problems in the
browser process.
BUG=143155
TEST=kSwappedOutURL DCHECK in FilterURL doesn't fire.
Review URL: https://chromiumcodereview.appspot.com/11299019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169756 0039d316-1c4b-4281-b951-d872f2087c98
19 files changed, 14 insertions, 55 deletions
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.cc b/chrome/browser/extensions/api/identity/web_auth_flow.cc index 0aa2489..c5a8ecd 100644 --- a/chrome/browser/extensions/api/identity/web_auth_flow.cc +++ b/chrome/browser/extensions/api/identity/web_auth_flow.cc @@ -166,7 +166,6 @@ void WebAuthFlow::Observe(int type, void WebAuthFlow::ProvisionalChangeToMainFrameUrl( const GURL& url, - const GURL& opener_url, RenderViewHost* render_view_host) { BeforeUrlLoaded(url); } diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.h b/chrome/browser/extensions/api/identity/web_auth_flow.h index fe6e829..06cb878 100644 --- a/chrome/browser/extensions/api/identity/web_auth_flow.h +++ b/chrome/browser/extensions/api/identity/web_auth_flow.h @@ -89,7 +89,6 @@ class WebAuthFlow : public content::NotificationObserver, // WebContentsObserver implementation. virtual void ProvisionalChangeToMainFrameUrl( const GURL& url, - const GURL& opener_url, content::RenderViewHost* render_view_host) OVERRIDE; virtual void DidStopLoading( content::RenderViewHost* render_view_host) OVERRIDE; diff --git a/chrome/browser/prerender/prerender_tab_helper.cc b/chrome/browser/prerender/prerender_tab_helper.cc index 06afd3f..4078a7b 100644 --- a/chrome/browser/prerender/prerender_tab_helper.cc +++ b/chrome/browser/prerender/prerender_tab_helper.cc @@ -138,7 +138,6 @@ PrerenderTabHelper::~PrerenderTabHelper() { void PrerenderTabHelper::ProvisionalChangeToMainFrameUrl( const GURL& url, - const GURL& opener_url, content::RenderViewHost* render_view_host) { url_ = url; PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); diff --git a/chrome/browser/prerender/prerender_tab_helper.h b/chrome/browser/prerender/prerender_tab_helper.h index 3531076..43d50b7 100644 --- a/chrome/browser/prerender/prerender_tab_helper.h +++ b/chrome/browser/prerender/prerender_tab_helper.h @@ -26,7 +26,6 @@ class PrerenderTabHelper // content::WebContentsObserver implementation. virtual void ProvisionalChangeToMainFrameUrl( const GURL& url, - const GURL& opener_url, content::RenderViewHost* render_view_host) OVERRIDE; virtual void DidStopLoading( content::RenderViewHost* render_view_host) OVERRIDE; diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index e176bce..6636d4e 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc @@ -773,7 +773,7 @@ bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { return !extension_dispatcher_->is_extension_process(); } -bool ChromeContentRendererClient::AllowPopup(const GURL& creator) { +bool ChromeContentRendererClient::AllowPopup() { extensions::ChromeV8Context* current_context = extension_dispatcher_->v8_context_set().GetCurrent(); return current_context && current_context->extension() && diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h index 34b408f..807abf5 100644 --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h @@ -87,7 +87,7 @@ class ChromeContentRendererClient : public content::ContentRendererClient { webkit_media::MediaStreamClient* media_stream_client, media::MediaLog* media_log) OVERRIDE; virtual bool RunIdleHandlerWhenWidgetsHidden() OVERRIDE; - virtual bool AllowPopup(const GURL& creator) OVERRIDE; + virtual bool AllowPopup() OVERRIDE; virtual bool ShouldFork(WebKit::WebFrame* frame, const GURL& url, bool is_initial_navigation, diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h index 70bd895..26c7bce 100644 --- a/content/browser/renderer_host/render_view_host_delegate.h +++ b/content/browser/renderer_host/render_view_host_delegate.h @@ -150,7 +150,6 @@ class CONTENT_EXPORT RenderViewHostDelegate { int64 frame_id, int64 parent_frame_id, bool main_frame, - const GURL& opener_url, const GURL& url) {} // The RenderView processed a redirect during a provisional load. @@ -161,7 +160,6 @@ class CONTENT_EXPORT RenderViewHostDelegate { virtual void DidRedirectProvisionalLoad( RenderViewHost* render_view_host, int32 page_id, - const GURL& opener_url, const GURL& source_url, const GURL& target_url) {} diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index 60edf72..007de7f 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -1173,19 +1173,17 @@ void RenderViewHostImpl::OnMsgDidStartProvisionalLoadForFrame( int64 frame_id, int64 parent_frame_id, bool is_main_frame, - const GURL& opener_url, const GURL& url) { delegate_->DidStartProvisionalLoadForFrame( - this, frame_id, parent_frame_id, is_main_frame, opener_url, url); + this, frame_id, parent_frame_id, is_main_frame, url); } void RenderViewHostImpl::OnMsgDidRedirectProvisionalLoad( int32 page_id, - const GURL& opener_url, const GURL& source_url, const GURL& target_url) { delegate_->DidRedirectProvisionalLoad( - this, page_id, opener_url, source_url, target_url); + this, page_id, source_url, target_url); } void RenderViewHostImpl::OnMsgDidFailProvisionalLoadWithError( diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h index f6710a4..c04388d 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h @@ -481,10 +481,8 @@ class CONTENT_EXPORT RenderViewHostImpl void OnMsgDidStartProvisionalLoadForFrame(int64 frame_id, int64 parent_frame_id, bool main_frame, - const GURL& opener_url, const GURL& url); void OnMsgDidRedirectProvisionalLoad(int32 page_id, - const GURL& opener_url, const GURL& source_url, const GURL& target_url); void OnMsgDidFailProvisionalLoadWithError( diff --git a/content/browser/renderer_host/test_render_view_host.cc b/content/browser/renderer_host/test_render_view_host.cc index 7efcec0..f87b832 100644 --- a/content/browser/renderer_host/test_render_view_host.cc +++ b/content/browser/renderer_host/test_render_view_host.cc @@ -288,13 +288,13 @@ void TestRenderViewHost::SendNavigate(int page_id, const GURL& url) { void TestRenderViewHost::SendNavigateWithTransition( int page_id, const GURL& url, PageTransition transition) { - OnMsgDidStartProvisionalLoadForFrame(0, -1, true, GURL(), url); + OnMsgDidStartProvisionalLoadForFrame(0, -1, true, url); SendNavigateWithParameters(page_id, url, transition, url); } void TestRenderViewHost::SendNavigateWithOriginalRequestURL( int page_id, const GURL& url, const GURL& original_request_url) { - OnMsgDidStartProvisionalLoadForFrame(0, -1, true, GURL(), url); + OnMsgDidStartProvisionalLoadForFrame(0, -1, true, url); SendNavigateWithParameters(page_id, url, PAGE_TRANSITION_LINK, original_request_url); } diff --git a/content/browser/web_contents/navigation_controller_impl_unittest.cc b/content/browser/web_contents/navigation_controller_impl_unittest.cc index bbb16ad..b77c650 100644 --- a/content/browser/web_contents/navigation_controller_impl_unittest.cc +++ b/content/browser/web_contents/navigation_controller_impl_unittest.cc @@ -830,7 +830,6 @@ TEST_F(NavigationControllerTest, LoadURL_RedirectAbortDoesntShowPendingURL) { test_rvh()->OnMessageReceived( ViewHostMsg_DidRedirectProvisionalLoad(0, // routing_id -1, // pending page_id - GURL(), // opener kNewURL, // old url kRedirectURL)); // new url diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 7872c6a..03c840e 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -1977,15 +1977,12 @@ void WebContentsImpl::DidStartProvisionalLoadForFrame( int64 frame_id, int64 parent_frame_id, bool is_main_frame, - const GURL& opener_url, const GURL& url) { bool is_error_page = (url.spec() == kUnreachableWebDataURL); GURL validated_url(url); - GURL validated_opener_url(opener_url); RenderProcessHost* render_process_host = render_view_host->GetProcess(); RenderViewHost::FilterURL(render_process_host, false, &validated_url); - RenderViewHost::FilterURL(render_process_host, true, &validated_opener_url); // Notify observers about the start of the provisional load. FOR_EACH_OBSERVER(WebContentsObserver, observers_, @@ -1997,7 +1994,6 @@ void WebContentsImpl::DidStartProvisionalLoadForFrame( // Notify observers about the provisional change in the main frame URL. FOR_EACH_OBSERVER(WebContentsObserver, observers_, ProvisionalChangeToMainFrameUrl(validated_url, - validated_opener_url, render_view_host)); } } @@ -2005,7 +2001,6 @@ void WebContentsImpl::DidStartProvisionalLoadForFrame( void WebContentsImpl::DidRedirectProvisionalLoad( RenderViewHost* render_view_host, int32 page_id, - const GURL& opener_url, const GURL& source_url, const GURL& target_url) { // TODO(creis): Remove this method and have the pre-rendering code listen to @@ -2013,12 +2008,10 @@ void WebContentsImpl::DidRedirectProvisionalLoad( // instead. See http://crbug.com/78512. GURL validated_source_url(source_url); GURL validated_target_url(target_url); - GURL validated_opener_url(opener_url); RenderProcessHost* render_process_host = render_view_host->GetProcess(); RenderViewHost::FilterURL(render_process_host, false, &validated_source_url); RenderViewHost::FilterURL(render_process_host, false, &validated_target_url); - RenderViewHost::FilterURL(render_process_host, true, &validated_opener_url); NavigationEntry* entry; if (page_id == -1) { entry = controller_.GetPendingEntry(); @@ -2032,7 +2025,6 @@ void WebContentsImpl::DidRedirectProvisionalLoad( // Notify observers about the provisional change in the main frame URL. FOR_EACH_OBSERVER(WebContentsObserver, observers_, ProvisionalChangeToMainFrameUrl(validated_target_url, - validated_opener_url, render_view_host)); } diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index 8e45301..0c6b755 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -305,12 +305,10 @@ class CONTENT_EXPORT WebContentsImpl int64 frame_id, int64 parent_frame_id, bool main_frame, - const GURL& opener_url, const GURL& url) OVERRIDE; virtual void DidRedirectProvisionalLoad( RenderViewHost* render_view_host, int32 page_id, - const GURL& opener_url, const GURL& source_url, const GURL& target_url) OVERRIDE; virtual void DidFailProvisionalLoadWithError( diff --git a/content/common/view_messages.h b/content/common/view_messages.h index 606ab61..507b9e7 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h @@ -1688,11 +1688,10 @@ IPC_MESSAGE_ROUTED2(ViewHostMsg_DidRunInsecureContent, GURL /* target URL */) // Sent when the renderer starts a provisional load for a frame. -IPC_MESSAGE_ROUTED5(ViewHostMsg_DidStartProvisionalLoadForFrame, +IPC_MESSAGE_ROUTED4(ViewHostMsg_DidStartProvisionalLoadForFrame, int64 /* frame_id */, int64 /* parent_frame_id */, bool /* true if it is the main frame */, - GURL /* opener url if present, else empty */, GURL /* url */) IPC_MESSAGE_ROUTED5(ViewHostMsg_DidFailLoadWithError, @@ -2105,9 +2104,8 @@ IPC_MESSAGE_ROUTED1(ViewHostMsg_DataReceived_ACK, int /* request_id */) // Sent when a provisional load on the main frame redirects. -IPC_MESSAGE_ROUTED4(ViewHostMsg_DidRedirectProvisionalLoad, +IPC_MESSAGE_ROUTED3(ViewHostMsg_DidRedirectProvisionalLoad, int /* page_id */, - GURL /* opener url if present, else empty */, GURL /* last url */, GURL /* url redirected to */) diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h index 14c7e77..87f5f7e 100644 --- a/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h @@ -61,7 +61,6 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener, RenderViewHost* render_view_host) {} virtual void ProvisionalChangeToMainFrameUrl( const GURL& url, - const GURL& opener_url, RenderViewHost* render_view_host) {} virtual void DidCommitProvisionalLoadForFrame( int64 frame_id, diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc index baf3240..a62995f 100644 --- a/content/public/renderer/content_renderer_client.cc +++ b/content/public/renderer/content_renderer_client.cc @@ -56,7 +56,7 @@ bool ContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { return true; } -bool ContentRendererClient::AllowPopup(const GURL& creator) { +bool ContentRendererClient::AllowPopup() { return false; } diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h index f12b29a..06ad7c3 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h @@ -133,8 +133,8 @@ class CONTENT_EXPORT ContentRendererClient { // all widgets are hidden. virtual bool RunIdleHandlerWhenWidgetsHidden(); - // Returns true if the given url can create popup windows. - virtual bool AllowPopup(const GURL& creator); + // Returns true if a popup window should be allowed. + virtual bool AllowPopup(); // Returns true if the navigation was handled by the embedder and should be // ignored by WebKit. This method is used by CEF. diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 055ece9..0eeaadb 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -1787,12 +1787,6 @@ WebView* RenderViewImpl::createView( // Record whether the creator frame is trying to suppress the opener field. view->opener_suppressed_ = params.opener_suppressed; - // Record the security origin of the creator. - GURL creator_url(creator->document().securityOrigin().toString().utf8()); - if (!creator_url.is_valid() || !creator_url.IsStandard()) - creator_url = GURL(); - view->creator_url_ = creator_url; - // Copy over the alternate error page URL so we can have alt error pages in // the new render view (we don't need the browser to send the URL back down). view->alternate_error_page_url_ = alternate_error_page_url_; @@ -2374,7 +2368,7 @@ void RenderViewImpl::show(WebNavigationPolicy policy) { DCHECK(opener_id_ != MSG_ROUTING_NONE); - if (GetContentClient()->renderer()->AllowPopup(creator_url_)) + if (GetContentClient()->renderer()->AllowPopup()) opened_by_user_gesture_ = true; // Force new windows to a popup if they were not opened with a user gesture. @@ -3223,7 +3217,7 @@ void RenderViewImpl::didStartProvisionalLoad(WebFrame* frame) { Send(new ViewHostMsg_DidStartProvisionalLoadForFrame( routing_id_, frame->identifier(), frame->parent() ? frame->parent()->identifier() : -1, - is_top_most, GetOpenerUrl(), ds->request().url())); + is_top_most, ds->request().url())); } void RenderViewImpl::didReceiveServerRedirectForProvisionalLoad( @@ -3241,7 +3235,7 @@ void RenderViewImpl::didReceiveServerRedirectForProvisionalLoad( GetRedirectChain(data_source, &redirects); if (redirects.size() >= 2) { Send(new ViewHostMsg_DidRedirectProvisionalLoad(routing_id_, page_id_, - GetOpenerUrl(), redirects[redirects.size() - 2], redirects.back())); + redirects[redirects.size() - 2], redirects.back())); } } @@ -4661,13 +4655,6 @@ GURL RenderViewImpl::GetAlternateErrorPageURL(const GURL& failed_url, return url; } -GURL RenderViewImpl::GetOpenerUrl() const { - if (opener_id_ == MSG_ROUTING_NONE || opener_suppressed_) - return GURL(); - else - return creator_url_; -} - GURL RenderViewImpl::GetLoadingUrl(WebKit::WebFrame* frame) const { WebDataSource* ds = frame->dataSource(); if (ds->hasUnreachableURL()) diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 3d5aa72..ec3dcb4e 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -1087,9 +1087,6 @@ class CONTENT_EXPORT RenderViewImpl // Locates a sub frame with given xpath WebKit::WebFrame* GetChildFrame(const string16& frame_xpath) const; - // Returns the opener url if present, else an empty url. - GURL GetOpenerUrl() const; - // Returns the URL being loaded by the given frame's request. GURL GetLoadingUrl(WebKit::WebFrame* frame) const; @@ -1215,7 +1212,6 @@ class CONTENT_EXPORT RenderViewImpl // Used for popups. bool opened_by_user_gesture_; - GURL creator_url_; // Whether this RenderView was created by a frame that was suppressing its // opener. If so, we may want to load pages in a separate process. See |