Chromium Code Reviews| 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; |
| } |