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, ¶ms->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; |
} |