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 196095ab2a23d2595b26b7523ccfeb094db0ab9c..e258bc931cad02e28166ce52ec09488b9a3b44d9 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" |
@@ -326,6 +327,8 @@ WebContentsImpl::WebContentsImpl( |
java_bridge_dispatcher_host_manager_.reset( |
new JavaBridgeDispatcherHostManager(this)); |
#endif |
+ |
+ browser_plugin_host_.reset(new content::BrowserPluginHost(this)); |
} |
WebContentsImpl::~WebContentsImpl() { |
@@ -1063,6 +1066,19 @@ void WebContentsImpl::LostMouseLock() { |
delegate_->LostMouseLock(); |
} |
+void WebContentsImpl::NavigateGuestFromEmbedder( |
+ content::RenderViewHost* render_view_host, |
+ int container_instance_id, |
+ long long frame_id, |
+ const std::string& src, |
+ const gfx::Size& size) { |
+ browser_plugin_host()->NavigateGuestFromEmbedder(render_view_host, |
+ container_instance_id, |
+ frame_id, |
+ src, |
+ size); |
+} |
+ |
void WebContentsImpl::UpdatePreferredSize(const gfx::Size& pref_size) { |
preferred_size_ = pref_size; |
if (delegate_) |
@@ -1129,6 +1145,9 @@ bool WebContentsImpl::NavigateToEntry( |
dest_render_view_host, |
entry.GetURL()); |
+ // Tell BrowserPluginHost about the pending cross-process navigation. |
+ browser_plugin_host()->OnCrossProcessNavigation(dest_render_view_host); |
+ |
// Used for page load time metrics. |
current_load_start_ = base::TimeTicks::Now(); |
@@ -2713,11 +2732,14 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
int32 max_page_id = |
GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance()); |
+ WebContentsImpl* embedder = browser_plugin_host()->embedder(); |
+ int embedder_process_id = |
+ embedder ? embedder->GetRenderProcessHost()->GetID() : -1; |
if (!static_cast<RenderViewHostImpl*>( |
render_view_host)->CreateRenderView(string16(), |
opener_route_id, |
max_page_id, |
- -1)) { |
+ embedder_process_id)) { |
return false; |
} |