Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 10412056: Browser Plugin: Remove MapInstance from BrowserPluginHost + More cross-process navigation work (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed commented out code Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 2facf471fd077e9b86f493a0297d3a56816f42c6..5d328e07e50664a6d0ad996822822941a4cb14d7 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -198,6 +198,8 @@ void MakeNavigateParams(const NavigationEntryImpl& entry,
const NavigationControllerImpl& controller,
content::WebContentsDelegate* delegate,
NavigationController::ReloadType reload_type,
+ const std::string& embedder_channel_name,
+ int embedder_container_id,
ViewMsg_Navigate_Params* params) {
params->page_id = entry.GetPageID();
params->pending_history_list_offset = controller.GetIndexOfEntry(&entry);
@@ -217,6 +219,8 @@ void MakeNavigateParams(const NavigationEntryImpl& entry,
entry.transferred_global_request_id().request_id;
// Avoid downloading when in view-source mode.
params->allow_download = !entry.IsViewSourceMode();
+ params->embedder_channel_name = embedder_channel_name;
+ params->embedder_container_id = embedder_container_id;
if (delegate)
delegate->AddNavigationHeaders(params->url, &params->extra_headers);
@@ -1151,17 +1155,25 @@ bool WebContentsImpl::NavigateToEntry(
dest_render_view_host,
entry.GetURL());
- // Tell BrowserPluginHost about the pending cross-process navigation.
- // TODO(fsamuel): Remove this once this issue is addressed:
- // https://code.google.com/p/chromium/issues/detail?id=128976
- browser_plugin_host()->OnPendingNavigation(dest_render_view_host);
-
// Used for page load time metrics.
current_load_start_ = base::TimeTicks::Now();
// Navigate in the desired RenderViewHost.
+ content::RenderProcessHost* embedder_render_process_host =
+ browser_plugin_host()->embedder_render_process_host();
+ int embedder_process_id =
+ embedder_render_process_host ? embedder_render_process_host->GetID() : -1;
+ int embedder_container_id = browser_plugin_host()->instance_id();
+ std::string embedder_channel_name;
+ if (embedder_process_id != -1) {
+ embedder_channel_name =
+ StringPrintf("%d.r%d", dest_render_view_host->GetProcess()->GetID(),
+ embedder_process_id);
Charlie Reis 2012/05/23 16:57:54 I remember this was discussed in an earlier CL but
Fady Samuel 2012/05/23 17:32:15 Yes, please see here: https://chromiumcodereview.a
Charlie Reis 2012/05/23 17:52:55 Great. Perhaps we can abstract this out so it's n
+ }
ViewMsg_Navigate_Params navigate_params;
MakeNavigateParams(entry, controller_, delegate_, reload_type,
+ embedder_channel_name,
+ embedder_container_id,
&navigate_params);
dest_render_view_host->Navigate(navigate_params);
@@ -2740,11 +2752,13 @@ bool WebContentsImpl::CreateRenderViewForRenderManager(
browser_plugin_host()->embedder_render_process_host();
int embedder_process_id =
embedder_render_process_host ? embedder_render_process_host->GetID() : -1;
+ int embedder_container_id = browser_plugin_host()->instance_id();
if (!static_cast<RenderViewHostImpl*>(
render_view_host)->CreateRenderView(string16(),
opener_route_id,
max_page_id,
- embedder_process_id)) {
+ embedder_process_id,
+ embedder_container_id)) {
return false;
}

Powered by Google App Engine
This is Rietveld 408576698