diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-31 20:10:58 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-31 20:10:58 +0000 |
commit | 1a4e9752e622e91fab073fa3c9e70dcc5f2a3ac9 (patch) | |
tree | 2f19e65459454d7b83608294c3eca50d4f386f99 | |
parent | ec0595a4a9ec0d9c99e77b51b2d2da1b074954a5 (diff) | |
download | chromium_src-1a4e9752e622e91fab073fa3c9e70dcc5f2a3ac9.zip chromium_src-1a4e9752e622e91fab073fa3c9e70dcc5f2a3ac9.tar.gz chromium_src-1a4e9752e622e91fab073fa3c9e70dcc5f2a3ac9.tar.bz2 |
Replace the GetAssociatedRenderView call with GetAssociatedRenderFrame in ResourceLoader and SSLClientAuthHandler.
BUG=304341
R=nasko@chromium.org
TBR=mkosiba
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=242656
Review URL: https://codereview.chromium.org/120413003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242759 0039d316-1c4b-4281-b951-d872f2087c98
37 files changed, 140 insertions, 128 deletions
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index 375bc0d..9bbd2b6 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc @@ -91,13 +91,13 @@ bool AwContentsMessageFilter::OnMessageReceived(const IPC::Message& message, } void AwContentsMessageFilter::OnShouldOverrideUrlLoading( - int routing_id, + int render_frame_id, const base::string16& url, bool* ignore_navigation) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); *ignore_navigation = false; AwContentsClientBridgeBase* client = - AwContentsClientBridgeBase::FromID(process_id_, routing_id); + AwContentsClientBridgeBase::FromID(process_id_, render_frame_id); if (client) { *ignore_navigation = client->ShouldOverrideUrlLoading(url); } else { @@ -318,7 +318,7 @@ AwContentBrowserClient::CreateQuotaPermissionContext() { void AwContentBrowserClient::AllowCertificateError( int render_process_id, - int render_view_id, + int render_frame_id, int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, @@ -327,9 +327,8 @@ void AwContentBrowserClient::AllowCertificateError( bool strict_enforcement, const base::Callback<void(bool)>& callback, content::CertificateRequestResultType* result) { - AwContentsClientBridgeBase* client = - AwContentsClientBridgeBase::FromID(render_process_id, render_view_id); + AwContentsClientBridgeBase::FromID(render_process_id, render_frame_id); bool cancel_request = true; if (client) client->AllowCertificateError(cert_error, diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h index 472dd2f..9ed0c6e 100644 --- a/android_webview/browser/aw_content_browser_client.h +++ b/android_webview/browser/aw_content_browser_client.h @@ -94,7 +94,7 @@ class AwContentBrowserClient : public content::ContentBrowserClient { CreateQuotaPermissionContext() OVERRIDE; virtual void AllowCertificateError( int render_process_id, - int render_view_id, + int render_frame_id, int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, diff --git a/android_webview/browser/aw_contents_client_bridge_base.cc b/android_webview/browser/aw_contents_client_bridge_base.cc index 2e7b62c..10d2c6c 100644 --- a/android_webview/browser/aw_contents_client_bridge_base.cc +++ b/android_webview/browser/aw_contents_client_bridge_base.cc @@ -5,7 +5,7 @@ #include "android_webview/browser/aw_contents_client_bridge_base.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/render_view_host.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" using content::BrowserThread; @@ -56,13 +56,13 @@ AwContentsClientBridgeBase* AwContentsClientBridgeBase::FromWebContents( // static AwContentsClientBridgeBase* AwContentsClientBridgeBase::FromID( int render_process_id, - int render_view_id) { + int render_frame_id) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - const content::RenderViewHost* rvh = - content::RenderViewHost::FromID(render_process_id, render_view_id); - if (!rvh) return NULL; + content::RenderFrameHost* rfh = + content::RenderFrameHost::FromID(render_process_id, render_frame_id); + if (!rfh) return NULL; content::WebContents* web_contents = - content::WebContents::FromRenderViewHost(rvh); + content::WebContents::FromRenderFrameHost(rfh); return UserData::GetContents(web_contents); } diff --git a/android_webview/browser/aw_contents_client_bridge_base.h b/android_webview/browser/aw_contents_client_bridge_base.h index 0383a37..a1b3b7f 100644 --- a/android_webview/browser/aw_contents_client_bridge_base.h +++ b/android_webview/browser/aw_contents_client_bridge_base.h @@ -34,7 +34,7 @@ class AwContentsClientBridgeBase { static AwContentsClientBridgeBase* FromWebContents( content::WebContents* web_contents); static AwContentsClientBridgeBase* FromID(int render_process_id, - int render_view_id); + int render_frame_id); virtual ~AwContentsClientBridgeBase(); diff --git a/android_webview/common/render_view_messages.h b/android_webview/common/render_view_messages.h index 163d9c9..35266dd 100644 --- a/android_webview/common/render_view_messages.h +++ b/android_webview/common/render_view_messages.h @@ -107,6 +107,6 @@ IPC_MESSAGE_ROUTED1(AwViewHostMsg_OnContentsSizeChanged, // cornercases. This is sent before updating the NavigationController state // or creating a URLRequest for the main frame resource. IPC_SYNC_MESSAGE_CONTROL2_1(AwViewHostMsg_ShouldOverrideUrlLoading, - int /* routing id */, + int /* render_frame_id id */, base::string16 /* in - url */, bool /* out - result */) diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc index 74f6db1..09f5a5c 100644 --- a/android_webview/renderer/aw_content_renderer_client.cc +++ b/android_webview/renderer/aw_content_renderer_client.cc @@ -19,8 +19,8 @@ #include "content/public/common/url_constants.h" #include "content/public/renderer/document_state.h" #include "content/public/renderer/navigation_state.h" +#include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_thread.h" -#include "content/public/renderer/render_view.h" #include "net/base/net_errors.h" #include "third_party/WebKit/public/platform/WebString.h" #include "third_party/WebKit/public/platform/WebURL.h" @@ -60,7 +60,7 @@ void AwContentRendererClient::RenderThreadStarted() { } bool AwContentRendererClient::HandleNavigation( - content::RenderView* view, + content::RenderFrame* render_frame, content::DocumentState* document_state, int opener_id, blink::WebFrame* frame, @@ -107,9 +107,9 @@ bool AwContentRendererClient::HandleNavigation( bool ignore_navigation = false; base::string16 url = request.url().string(); - int routing_id = view->GetRoutingID(); + int render_frame_id = render_frame->GetRoutingID(); RenderThread::Get()->Send(new AwViewHostMsg_ShouldOverrideUrlLoading( - routing_id, url, &ignore_navigation)); + render_frame_id, url, &ignore_navigation)); return ignore_navigation; } diff --git a/android_webview/renderer/aw_content_renderer_client.h b/android_webview/renderer/aw_content_renderer_client.h index 3a55350..cbabaf1 100644 --- a/android_webview/renderer/aw_content_renderer_client.h +++ b/android_webview/renderer/aw_content_renderer_client.h @@ -41,7 +41,7 @@ class AwContentRendererClient : public content::ContentRendererClient { virtual void AddKeySystems( std::vector<content::KeySystemInfo>* key_systems) OVERRIDE; - virtual bool HandleNavigation(content::RenderView* view, + virtual bool HandleNavigation(content::RenderFrame* render_frame, content::DocumentState* document_state, int opener_id, blink::WebFrame* frame, diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index cca4767..469133b 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -1752,7 +1752,7 @@ ChromeContentBrowserClient::CreateQuotaPermissionContext() { void ChromeContentBrowserClient::AllowCertificateError( int render_process_id, - int render_view_id, + int render_frame_id, int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, @@ -1771,8 +1771,13 @@ void ChromeContentBrowserClient::AllowCertificateError( } // If the tab is being prerendered, cancel the prerender and the request. - WebContents* tab = tab_util::GetWebContentsByID( - render_process_id, render_view_id); + content::RenderFrameHost* render_frame_host = + content::RenderFrameHost::FromID(render_process_id, render_frame_id); + if (!render_frame_host) { + NOTREACHED(); + return; + } + WebContents* tab = WebContents::FromRenderFrameHost(render_frame_host); if (!tab) { NOTREACHED(); return; @@ -1783,7 +1788,8 @@ void ChromeContentBrowserClient::AllowCertificateError( if (prerender_manager && prerender_manager->IsWebContentsPrerendering(tab, NULL)) { if (prerender_manager->prerender_tracker()->TryCancel( - render_process_id, render_view_id, + render_process_id, + render_frame_host->GetRenderViewHost()->GetRoutingID(), prerender::FINAL_STATUS_SSL_ERROR)) { *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; return; diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h index 99ccb01..f1030a5 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h @@ -154,7 +154,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateQuotaPermissionContext() OVERRIDE; virtual void AllowCertificateError( int render_process_id, - int render_view_id, + int render_frame_id, int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index e021d19..0d16779 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc @@ -95,6 +95,10 @@ gfx::NativeView RenderFrameHostImpl::GetNativeView() { return view->GetNativeView(); } +RenderViewHost* RenderFrameHostImpl::GetRenderViewHost() { + return render_view_host_; +} + bool RenderFrameHostImpl::Send(IPC::Message* message) { return GetProcess()->Send(message); } diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h index 8dfc7e5..155b427 100644 --- a/content/browser/frame_host/render_frame_host_impl.h +++ b/content/browser/frame_host/render_frame_host_impl.h @@ -36,6 +36,7 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { virtual RenderProcessHost* GetProcess() OVERRIDE; virtual int GetRoutingID() OVERRIDE; virtual gfx::NativeView GetNativeView() OVERRIDE; + virtual RenderViewHost* GetRenderViewHost() OVERRIDE; // IPC::Sender virtual bool Send(IPC::Message* msg) OVERRIDE; diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc index 886dba4..00760d0 100644 --- a/content/browser/loader/resource_loader.cc +++ b/content/browser/loader/resource_loader.cc @@ -279,8 +279,8 @@ void ResourceLoader::OnSSLCertificateError(net::URLRequest* request, ResourceRequestInfoImpl* info = GetRequestInfo(); int render_process_id; - int render_view_id; - if (!info->GetAssociatedRenderView(&render_process_id, &render_view_id)) + int render_frame_id; + if (!info->GetAssociatedRenderFrame(&render_process_id, &render_frame_id)) NOTREACHED(); SSLManager::OnSSLCertificateError( @@ -289,7 +289,7 @@ void ResourceLoader::OnSSLCertificateError(net::URLRequest* request, info->GetResourceType(), request_->url(), render_process_id, - render_view_id, + render_frame_id, ssl_info, fatal); } diff --git a/content/browser/renderer_host/socket_stream_dispatcher_host.cc b/content/browser/renderer_host/socket_stream_dispatcher_host.cc index 677c281..204bf8e 100644 --- a/content/browser/renderer_host/socket_stream_dispatcher_host.cc +++ b/content/browser/renderer_host/socket_stream_dispatcher_host.cc @@ -144,7 +144,7 @@ void SocketStreamDispatcherHost::OnSSLCertificateError( GlobalRequestID request_id(-1, socket_id); SSLManager::OnSSLCertificateError( weak_ptr_factory_.GetWeakPtr(), request_id, ResourceType::SUB_RESOURCE, - socket->url(), render_process_id_, socket_stream_host->render_view_id(), + socket->url(), render_process_id_, socket_stream_host->render_frame_id(), ssl_info, fatal); } @@ -195,11 +195,11 @@ SocketStreamDispatcherHost::~SocketStreamDispatcherHost() { } // Message handlers called by OnMessageReceived. -void SocketStreamDispatcherHost::OnConnect(int render_view_id, +void SocketStreamDispatcherHost::OnConnect(int render_frame_id, const GURL& url, int socket_id) { DVLOG(2) << "SocketStreamDispatcherHost::OnConnect" - << " render_view_id=" << render_view_id + << " render_frame_id=" << render_frame_id << " url=" << url << " socket_id=" << socket_id; DCHECK_NE(kNoSocketId, socket_id); @@ -223,7 +223,7 @@ void SocketStreamDispatcherHost::OnConnect(int render_view_id, // Note that the SocketStreamHost is responsible for checking that |url| // is valid. SocketStreamHost* socket_stream_host = - new SocketStreamHost(this, render_view_id, socket_id); + new SocketStreamHost(this, render_frame_id, socket_id); hosts_.AddWithID(socket_stream_host, socket_id); socket_stream_host->Connect(url, GetURLRequestContext()); DVLOG(2) << "SocketStreamDispatcherHost::OnConnect -> " << socket_id; diff --git a/content/browser/renderer_host/socket_stream_dispatcher_host.h b/content/browser/renderer_host/socket_stream_dispatcher_host.h index 958eada..163f845 100644 --- a/content/browser/renderer_host/socket_stream_dispatcher_host.h +++ b/content/browser/renderer_host/socket_stream_dispatcher_host.h @@ -76,7 +76,7 @@ class SocketStreamDispatcherHost private: // Message handlers called by OnMessageReceived. - void OnConnect(int render_view_id, const GURL& url, int socket_id); + void OnConnect(int render_frame_id, const GURL& url, int socket_id); void OnSendData(int socket_id, const std::vector<char>& data); void OnCloseReq(int socket_id); diff --git a/content/browser/renderer_host/socket_stream_host.cc b/content/browser/renderer_host/socket_stream_host.cc index ecf6cee..f09f2f3 100644 --- a/content/browser/renderer_host/socket_stream_host.cc +++ b/content/browser/renderer_host/socket_stream_host.cc @@ -28,13 +28,13 @@ class SocketStreamId : public net::SocketStream::UserData { SocketStreamHost::SocketStreamHost( net::SocketStream::Delegate* delegate, - int render_view_id, + int render_frame_id, int socket_id) : delegate_(delegate), - render_view_id_(render_view_id), + render_frame_id_(render_frame_id), socket_id_(socket_id) { DCHECK_NE(socket_id_, kNoSocketId); - VLOG(1) << "SocketStreamHost: render_view_id=" << render_view_id + VLOG(1) << "SocketStreamHost: render_frame_id=" << render_frame_id << " socket_id=" << socket_id_; } diff --git a/content/browser/renderer_host/socket_stream_host.h b/content/browser/renderer_host/socket_stream_host.h index 237e915..eb9b719 100644 --- a/content/browser/renderer_host/socket_stream_host.h +++ b/content/browser/renderer_host/socket_stream_host.h @@ -29,14 +29,14 @@ namespace content { class SocketStreamHost { public: SocketStreamHost(net::SocketStream::Delegate* delegate, - int render_view_id, + int render_frame_id, int socket_id); ~SocketStreamHost(); // Gets socket_id associated with |socket|. static int SocketIdFromSocketStream(const net::SocketStream* socket); - int render_view_id() const { return render_view_id_; } + int render_frame_id() const { return render_frame_id_; } int socket_id() const { return socket_id_; } // Starts to open connection to |url|. @@ -66,7 +66,7 @@ class SocketStreamHost { private: net::SocketStream::Delegate* delegate_; - int render_view_id_; + int render_frame_id_; int socket_id_; scoped_refptr<net::SocketStreamJob> job_; diff --git a/content/browser/ssl/ssl_cert_error_handler.cc b/content/browser/ssl/ssl_cert_error_handler.cc index b3bdb41..a69e993 100644 --- a/content/browser/ssl/ssl_cert_error_handler.cc +++ b/content/browser/ssl/ssl_cert_error_handler.cc @@ -17,11 +17,11 @@ SSLCertErrorHandler::SSLCertErrorHandler( ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id, + int render_frame_id, const net::SSLInfo& ssl_info, bool fatal) : SSLErrorHandler(delegate, id, resource_type, url, render_process_id, - render_view_id), + render_frame_id), ssl_info_(ssl_info), cert_error_(net::MapCertStatusToNetError(ssl_info.cert_status)), fatal_(fatal) { diff --git a/content/browser/ssl/ssl_cert_error_handler.h b/content/browser/ssl/ssl_cert_error_handler.h index 696fb81..6946f42 100644 --- a/content/browser/ssl/ssl_cert_error_handler.h +++ b/content/browser/ssl/ssl_cert_error_handler.h @@ -24,7 +24,7 @@ class SSLCertErrorHandler : public SSLErrorHandler { ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id, + int render_frame_id, const net::SSLInfo& ssl_info, bool fatal); diff --git a/content/browser/ssl/ssl_error_handler.cc b/content/browser/ssl/ssl_error_handler.cc index 8a322f7..ed4c2ac 100644 --- a/content/browser/ssl/ssl_error_handler.cc +++ b/content/browser/ssl/ssl_error_handler.cc @@ -6,7 +6,7 @@ #include "base/bind.h" #include "content/browser/frame_host/navigation_controller_impl.h" -#include "content/browser/renderer_host/render_view_host_impl.h" +#include "content/browser/frame_host/render_frame_host_impl.h" #include "content/browser/ssl/ssl_cert_error_handler.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" @@ -23,12 +23,12 @@ SSLErrorHandler::SSLErrorHandler(const base::WeakPtr<Delegate>& delegate, ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id) + int render_frame_id) : manager_(NULL), request_id_(id), delegate_(delegate), render_process_id_(render_process_id), - render_view_id_(render_view_id), + render_frame_id_(render_frame_id), request_url_(url), resource_type_(resource_type), request_has_been_notified_(false) { @@ -61,10 +61,10 @@ void SSLErrorHandler::Dispatch() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); WebContents* web_contents = NULL; - RenderViewHostImpl* render_view_host = - RenderViewHostImpl::FromID(render_process_id_, render_view_id_); - if (render_view_host) - web_contents = render_view_host->GetDelegate()->GetAsWebContents(); + RenderFrameHost* render_frame_host = + RenderFrameHost::FromID(render_process_id_, render_frame_id_); + if (render_frame_host) + web_contents = WebContents::FromRenderFrameHost(render_frame_host); if (!web_contents) { // We arrived on the UI thread, but the tab we're looking for is no longer diff --git a/content/browser/ssl/ssl_error_handler.h b/content/browser/ssl/ssl_error_handler.h index 5f9e9e5..87bc1da 100644 --- a/content/browser/ssl/ssl_error_handler.h +++ b/content/browser/ssl/ssl_error_handler.h @@ -101,7 +101,7 @@ class SSLErrorHandler : public base::RefCountedThreadSafe<SSLErrorHandler> { void TakeNoAction(); int render_process_id() const { return render_process_id_; } - int render_view_id() const { return render_view_id_; } + int render_frame_id() const { return render_frame_id_; } protected: friend class base::RefCountedThreadSafe<SSLErrorHandler>; @@ -112,7 +112,7 @@ class SSLErrorHandler : public base::RefCountedThreadSafe<SSLErrorHandler> { ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id); + int render_frame_id); virtual ~SSLErrorHandler(); @@ -149,7 +149,7 @@ class SSLErrorHandler : public base::RefCountedThreadSafe<SSLErrorHandler> { // We use these members to find the correct SSLManager when we arrive on // the UI thread. int render_process_id_; - int render_view_id_; + int render_frame_id_; // The URL that we requested. // This read-only member can be accessed on any thread. diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc index b1eb51e..68906ce 100644 --- a/content/browser/ssl/ssl_manager.cc +++ b/content/browser/ssl/ssl_manager.cc @@ -53,7 +53,7 @@ void SSLManager::OnSSLCertificateError( const ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id, + int render_frame_id, const net::SSLInfo& ssl_info, bool fatal) { DCHECK(delegate.get()); @@ -61,7 +61,7 @@ void SSLManager::OnSSLCertificateError( << net::MapCertStatusToNetError(ssl_info.cert_status) << " id: " << id.child_id << "," << id.request_id << " resource_type: " << resource_type << " url: " << url.spec() << " render_process_id: " - << render_process_id << " render_view_id: " << render_view_id + << render_process_id << " render_frame_id: " << render_frame_id << " cert_status: " << std::hex << ssl_info.cert_status; // A certificate error occurred. Construct a SSLCertErrorHandler object and @@ -74,7 +74,7 @@ void SSLManager::OnSSLCertificateError( resource_type, url, render_process_id, - render_view_id, + render_frame_id, ssl_info, fatal))); } diff --git a/content/browser/ssl/ssl_manager.h b/content/browser/ssl/ssl_manager.h index 45100a7..c195e98 100644 --- a/content/browser/ssl/ssl_manager.h +++ b/content/browser/ssl/ssl_manager.h @@ -54,7 +54,7 @@ class SSLManager { ResourceType::Type resource_type, const GURL& url, int render_process_id, - int render_view_id, + int render_frame_id, const net::SSLInfo& ssl_info, bool fatal); diff --git a/content/browser/ssl/ssl_policy.cc b/content/browser/ssl/ssl_policy.cc index ddf9e4c..1127f8d 100644 --- a/content/browser/ssl/ssl_policy.cc +++ b/content/browser/ssl/ssl_policy.cc @@ -187,7 +187,7 @@ void SSLPolicy::OnCertErrorInternal(SSLCertErrorHandler* handler, CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE; GetContentClient()->browser()->AllowCertificateError( handler->render_process_id(), - handler->render_view_id(), + handler->render_frame_id(), handler->cert_error(), handler->ssl_info(), handler->request_url(), diff --git a/content/child/socket_stream_dispatcher.cc b/content/child/socket_stream_dispatcher.cc index beeee75..cdc0845 100644 --- a/content/child/socket_stream_dispatcher.cc +++ b/content/child/socket_stream_dispatcher.cc @@ -96,14 +96,14 @@ void IPCWebSocketStreamHandleBridge::Connect(const GURL& url) { socket_id_ = all_bridges.Get().Add(this); DCHECK_NE(socket_id_, kNoSocketId); - int render_view_id = MSG_ROUTING_NONE; + int render_frame_id = MSG_ROUTING_NONE; const SocketStreamHandleData* data = SocketStreamHandleData::ForHandle(handle_); if (data) - render_view_id = data->render_view_id(); + render_frame_id = data->render_frame_id(); AddRef(); // Released in OnClosed(). ChildThread::current()->Send( - new SocketStreamHostMsg_Connect(render_view_id, url, socket_id_)); + new SocketStreamHostMsg_Connect(render_frame_id, url, socket_id_)); DVLOG(1) << "Bridge #" << socket_id_ << " sent IPC Connect"; // TODO(ukai): timeout to OnConnected. } diff --git a/content/common/socket_stream_handle_data.cc b/content/common/socket_stream_handle_data.cc index dbf75a4..0bf3f57 100644 --- a/content/common/socket_stream_handle_data.cc +++ b/content/common/socket_stream_handle_data.cc @@ -13,14 +13,14 @@ namespace content { // static void SocketStreamHandleData::AddToHandle( - WebSocketStreamHandle* handle, int render_view_id) { + WebSocketStreamHandle* handle, int render_frame_id) { if (!handle) { NOTREACHED(); return; } WebSocketStreamHandleImpl* impl = static_cast<WebSocketStreamHandleImpl*>(handle); - impl->SetUserData(handle, new SocketStreamHandleData(render_view_id)); + impl->SetUserData(handle, new SocketStreamHandleData(render_frame_id)); } // static diff --git a/content/common/socket_stream_handle_data.h b/content/common/socket_stream_handle_data.h index 470e9ba..113f889 100644 --- a/content/common/socket_stream_handle_data.h +++ b/content/common/socket_stream_handle_data.h @@ -19,12 +19,12 @@ class SocketStreamHandleData : public base::SupportsUserData::Data { public: virtual ~SocketStreamHandleData() {} - int render_view_id() const { return render_view_id_; } + int render_frame_id() const { return render_frame_id_; } - // Creates SocketStreamHandleData object with |render_view_id| and store it + // Creates SocketStreamHandleData object with |render_frame_id| and store it // to |handle|. static void AddToHandle( - blink::WebSocketStreamHandle* handle, int render_view_id); + blink::WebSocketStreamHandle* handle, int render_frame_id); // Retrieves the stored user data from blink::WebSocketStreamHandle object. // |handle| must actually be a WebSocketStreamHandleImpl object. @@ -32,11 +32,11 @@ class SocketStreamHandleData : public base::SupportsUserData::Data { blink::WebSocketStreamHandle* handle); private: - explicit SocketStreamHandleData(int render_view_id) - : render_view_id_(render_view_id) { + explicit SocketStreamHandleData(int render_frame_id) + : render_frame_id_(render_frame_id) { } - int render_view_id_; + int render_frame_id_; DISALLOW_COPY_AND_ASSIGN(SocketStreamHandleData); }; diff --git a/content/common/socket_stream_messages.h b/content/common/socket_stream_messages.h index f463741..6e24a15 100644 --- a/content/common/socket_stream_messages.h +++ b/content/common/socket_stream_messages.h @@ -21,10 +21,10 @@ // The browser starts connecting asynchronously. // Once Socket Stream connection is established, the browser will send // SocketStreamMsg_Connected back. -// |render_view_id| must be the routing id of RenderViewImpl to which the +// |render_frame_id| must be the routing id of RenderFrameImpl to which the // Socket Stream belongs. IPC_MESSAGE_CONTROL3(SocketStreamHostMsg_Connect, - int /* render_view_id */, + int /* render_frame_id */, GURL /* socket_url */, int /* socket_id */) diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index 8878a9a..0e2e2a3 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -387,7 +387,7 @@ class CONTENT_EXPORT ContentBrowserClient { // or denied immediately, and the callback won't be run. virtual void AllowCertificateError( int render_process_id, - int render_view_id, + int render_frame_id, int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h index 3aaec7c..e33b12d 100644 --- a/content/public/browser/render_frame_host.h +++ b/content/public/browser/render_frame_host.h @@ -12,6 +12,7 @@ namespace content { class RenderProcessHost; +class RenderViewHost; class SiteInstance; // The interface provides a communication conduit with a frame in the renderer. @@ -35,6 +36,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, // Returns the associated widget's native view. virtual gfx::NativeView GetNativeView() = 0; + // Temporary until we get rid of RenderViewHost. + virtual RenderViewHost* GetRenderViewHost() = 0; + private: // This interface should only be implemented inside content. friend class RenderFrameHostImpl; diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc index 9ffc222..344cbe3 100644 --- a/content/public/renderer/content_renderer_client.cc +++ b/content/public/renderer/content_renderer_client.cc @@ -93,7 +93,7 @@ bool ContentRendererClient::AllowPopup() { #ifdef OS_ANDROID bool ContentRendererClient::HandleNavigation( - RenderView* view, + RenderFrame* render_frame, DocumentState* document_state, int opener_id, blink::WebFrame* frame, diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h index e409afa..958d1fa 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h @@ -179,7 +179,7 @@ class CONTENT_EXPORT ContentRendererClient { // // Returns true if the navigation was handled by the embedder and should be // ignored by WebKit. This method is used by CEF and android_webview. - virtual bool HandleNavigation(RenderView* view, + virtual bool HandleNavigation(RenderFrame* render_frame, DocumentState* document_state, int opener_id, blink::WebFrame* frame, diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 5c7bf33..4014f0d 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -736,8 +736,8 @@ blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation( blink::WebNavigationType type, blink::WebNavigationPolicy default_policy, bool is_redirect) { - return render_view_->decidePolicyForNavigation( - frame, extra_data, request, type, default_policy, is_redirect); + return render_view_->DecidePolicyForNavigation( + this, frame, extra_data, request, type, default_policy, is_redirect); } blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation( @@ -746,8 +746,9 @@ blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation( blink::WebNavigationType type, blink::WebNavigationPolicy default_policy, bool is_redirect) { - return render_view_->decidePolicyForNavigation( - frame, request, type, default_policy, is_redirect); + return decidePolicyForNavigation(frame, + frame->provisionalDataSource()->extraData(), + request, type, default_policy, is_redirect); } void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame, @@ -1289,7 +1290,7 @@ void RenderFrameImpl::requestStorageQuota( void RenderFrameImpl::willOpenSocketStream( blink::WebSocketStreamHandle* handle) { - SocketStreamHandleData::AddToHandle(handle, render_view_->GetRoutingID()); + SocketStreamHandleData::AddToHandle(handle, routing_id_); } void RenderFrameImpl::willStartUsingPeerConnectionHandler( diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 6a9ac1a..53fddbe 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h @@ -210,6 +210,7 @@ class CONTENT_EXPORT RenderFrameImpl const blink::WebURLRequest& request, blink::WebNavigationPolicy policy, const blink::WebString& suggested_name); + // The WebDataSource::ExtraData* is assumed to be a DocumentState* subclass. virtual blink::WebNavigationPolicy decidePolicyForNavigation( blink::WebFrame* frame, blink::WebDataSource::ExtraData* extra_data, diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index b404fa7..9e2b997 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc @@ -140,6 +140,10 @@ class RenderViewImplTest : public RenderViewTest { return static_cast<RenderViewImpl*>(view_); } + RenderFrameImpl* frame() { + return static_cast<RenderFrameImpl*>(view()->GetMainRenderFrame()); + } + // Sends IPC messages that emulates a key-press event. int SendKeyEvent(MockKeyboard::Layout layout, int key_code, @@ -373,19 +377,19 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicy) { // Navigations to normal HTTP URLs can be handled locally. blink::WebURLRequest request(GURL("http://foo.com")); - blink::WebNavigationPolicy policy = view()->decidePolicyForNavigation( - GetMainFrame(), - &state, - request, - blink::WebNavigationTypeLinkClicked, - blink::WebNavigationPolicyCurrentTab, - false); + blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( + GetMainFrame(), + &state, + request, + blink::WebNavigationTypeLinkClicked, + blink::WebNavigationPolicyCurrentTab, + false); EXPECT_EQ(blink::WebNavigationPolicyCurrentTab, policy); // Verify that form posts to WebUI URLs will be sent to the browser process. blink::WebURLRequest form_request(GURL("chrome://foo")); form_request.setHTTPMethod("POST"); - policy = view()->decidePolicyForNavigation( + policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, form_request, @@ -396,7 +400,7 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicy) { // Verify that popup links to WebUI URLs also are sent to browser. blink::WebURLRequest popup_request(GURL("chrome://foo")); - policy = view()->decidePolicyForNavigation( + policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, popup_request, @@ -425,7 +429,7 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicyHandlesAllTopLevel) { blink::WebURLRequest request(GURL("http://foo.com")); for (size_t i = 0; i < arraysize(kNavTypes); ++i) { - blink::WebNavigationPolicy policy = view()->decidePolicyForNavigation( + blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, request, @@ -445,7 +449,7 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { // Navigations to normal HTTP URLs will be sent to browser process. blink::WebURLRequest request(GURL("http://foo.com")); - blink::WebNavigationPolicy policy = view()->decidePolicyForNavigation( + blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, request, @@ -456,7 +460,7 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { // Navigations to WebUI URLs will also be sent to browser process. blink::WebURLRequest webui_request(GURL("chrome://foo")); - policy = view()->decidePolicyForNavigation( + policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, webui_request, @@ -468,7 +472,7 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { // Verify that form posts to data URLs will be sent to the browser process. blink::WebURLRequest data_request(GURL("data:text/html,foo")); data_request.setHTTPMethod("POST"); - policy = view()->decidePolicyForNavigation( + policy = frame()->decidePolicyForNavigation( GetMainFrame(), &state, data_request, @@ -485,13 +489,14 @@ TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { GetMainFrame(), popup_request, blink::WebWindowFeatures(), "foo", blink::WebNavigationPolicyNewForegroundTab, false); RenderViewImpl* new_view = RenderViewImpl::FromWebView(new_web_view); - policy = new_view->decidePolicyForNavigation( - new_web_view->mainFrame(), - &state, - popup_request, - blink::WebNavigationTypeLinkClicked, - blink::WebNavigationPolicyNewForegroundTab, - false); + policy = static_cast<RenderFrameImpl*>(new_view->GetMainRenderFrame())-> + decidePolicyForNavigation( + new_web_view->mainFrame(), + &state, + popup_request, + blink::WebNavigationTypeLinkClicked, + blink::WebNavigationPolicyNewForegroundTab, + false); EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); // Clean up after the new view so we don't leak it. diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index d3a1940..be301da 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -3120,16 +3120,17 @@ const std::string& RenderViewImpl::GetAcceptLanguages() const { return renderer_preferences_.accept_languages; } -WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( - WebFrame* frame, WebDataSource::ExtraData* extraData, - const WebURLRequest& request, WebNavigationType type, - WebNavigationPolicy default_policy, bool is_redirect) { +WebNavigationPolicy RenderViewImpl::DecidePolicyForNavigation( + RenderFrame* render_frame, WebFrame* frame, + WebDataSource::ExtraData* extraData, const WebURLRequest& request, + WebNavigationType type, WebNavigationPolicy default_policy, + bool is_redirect) { #ifdef OS_ANDROID // The handlenavigation API is deprecated and will be removed once // crbug.com/325351 is resolved. if (request.url() != GURL(kSwappedOutURL) && GetContentClient()->renderer()->HandleNavigation( - this, + render_frame, static_cast<DocumentState*>(extraData), opener_id_, frame, @@ -3330,14 +3331,6 @@ WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( return default_policy; } -WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( - WebFrame* frame, const WebURLRequest& request, WebNavigationType type, - WebNavigationPolicy default_policy, bool is_redirect) { - return decidePolicyForNavigation(frame, - frame->provisionalDataSource()->extraData(), - request, type, default_policy, is_redirect); -} - void RenderViewImpl::willSendSubmitEvent(blink::WebFrame* frame, const blink::WebFormElement& form) { FOR_EACH_OBSERVER( diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 2592943..7c57260 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -334,6 +334,16 @@ class CONTENT_EXPORT RenderViewImpl int ShowContextMenu(ContextMenuClient* client, const ContextMenuParams& params); void CancelContextMenu(int request_id); + // Temporary call until this code moves to RenderFrame. + // virtual since overriden by WebTestProxy for layout tests. + virtual blink::WebNavigationPolicy DecidePolicyForNavigation( + RenderFrame* render_frame, + blink::WebFrame* frame, + blink::WebDataSource::ExtraData* extraData, + const blink::WebURLRequest& request, + blink::WebNavigationType type, + blink::WebNavigationPolicy default_policy, + bool is_redirect); // Returns the length of the session history of this RenderView. Note that // this only coincides with the actual length of the session history if this @@ -520,22 +530,6 @@ class CONTENT_EXPORT RenderViewImpl blink::WebFrame* frame, const blink::WebVector<blink::WebString>& newly_matching_selectors, const blink::WebVector<blink::WebString>& stopped_matching_selectors); - - // The WebDataSource::ExtraData* is assumed to be a DocumentState* subclass. - virtual blink::WebNavigationPolicy decidePolicyForNavigation( - blink::WebFrame* frame, - blink::WebDataSource::ExtraData* extraData, - const blink::WebURLRequest& request, - blink::WebNavigationType type, - blink::WebNavigationPolicy default_policy, - bool is_redirect); - // DEPRECATED. - virtual blink::WebNavigationPolicy decidePolicyForNavigation( - blink::WebFrame* frame, - const blink::WebURLRequest& request, - blink::WebNavigationType type, - blink::WebNavigationPolicy default_policy, - bool is_redirect); virtual void willSendSubmitEvent(blink::WebFrame* frame, const blink::WebFormElement& form); virtual void willSubmitForm(blink::WebFrame* frame, diff --git a/content/shell/renderer/test_runner/WebTestProxy.h b/content/shell/renderer/test_runner/WebTestProxy.h index 4f406fbd..7429817 100644 --- a/content/shell/renderer/test_runner/WebTestProxy.h +++ b/content/shell/renderer/test_runner/WebTestProxy.h @@ -68,6 +68,10 @@ struct WebWindowFeatures; typedef unsigned WebColor; } +namespace content { +class RenderFrame; +} + class SkCanvas; namespace WebTestRunner { @@ -491,12 +495,12 @@ public: { return WebTestProxyBase::runModalBeforeUnloadDialog(frame, message); } - virtual blink::WebNavigationPolicy decidePolicyForNavigation(blink::WebFrame* frame, blink::WebDataSource::ExtraData* extraData, const blink::WebURLRequest& request, blink::WebNavigationType type, blink::WebNavigationPolicy defaultPolicy, bool isRedirect) + virtual blink::WebNavigationPolicy DecidePolicyForNavigation(content::RenderFrame* render_frame, blink::WebFrame* frame, blink::WebDataSource::ExtraData* extraData, const blink::WebURLRequest& request, blink::WebNavigationType type, blink::WebNavigationPolicy defaultPolicy, bool isRedirect) { blink::WebNavigationPolicy policy = WebTestProxyBase::decidePolicyForNavigation(frame, extraData, request, type, defaultPolicy, isRedirect); if (policy == blink::WebNavigationPolicyIgnore) return policy; - return Base::decidePolicyForNavigation(frame, extraData, request, type, defaultPolicy, isRedirect); + return Base::DecidePolicyForNavigation(render_frame, frame, extraData, request, type, defaultPolicy, isRedirect); } virtual bool willCheckAndDispatchMessageEvent(blink::WebFrame* sourceFrame, blink::WebFrame* targetFrame, blink::WebSecurityOrigin target, blink::WebDOMMessageEvent event) { |