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 751a13322bcd7a9697ec1f25da688b11d3f82245..6cb6c73a5698a371f2791894a1f90c48861e3aac 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -14,6 +14,7 @@ |
#include "base/string_util.h" |
#include "base/time.h" |
#include "base/utf_string_conversions.h" |
+#include "content/browser/browser_plugin/browser_plugin_host.h" |
#include "content/browser/child_process_security_policy_impl.h" |
#include "content/browser/debugger/devtools_manager_impl.h" |
#include "content/browser/dom_storage/session_storage_namespace_impl.h" |
@@ -320,6 +321,8 @@ WebContentsImpl::WebContentsImpl( |
java_bridge_dispatcher_host_manager_.reset( |
new JavaBridgeDispatcherHostManager(this)); |
#endif |
+ |
+ browser_plugin_host_.reset(new content::BrowserPluginHost(this)); |
} |
WebContentsImpl::~WebContentsImpl() { |
@@ -1146,6 +1149,11 @@ 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(); |
@@ -2730,11 +2738,15 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
int32 max_page_id = |
GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance()); |
+ 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; |
if (!static_cast<RenderViewHostImpl*>( |
render_view_host)->CreateRenderView(string16(), |
opener_route_id, |
max_page_id, |
- -1)) { |
+ embedder_process_id)) { |
return false; |
} |