| 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..b957eb6edbdd5a4aad41a5b649c87ad99f02f62b 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() {
|
| @@ -1080,6 +1083,27 @@ void WebContentsImpl::LostMouseLock() {
|
| delegate_->LostMouseLock();
|
| }
|
|
|
| +void WebContentsImpl::ConnectEmbedderToChannel(
|
| + content::RenderViewHost* render_view_host,
|
| + const IPC::ChannelHandle& channel_handle) {
|
| + browser_plugin_host()->ConnectEmbedderToChannel(
|
| + render_view_host,
|
| + channel_handle);
|
| +}
|
| +
|
| +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_)
|
| @@ -1146,6 +1170,9 @@ bool WebContentsImpl::NavigateToEntry(
|
| dest_render_view_host,
|
| entry.GetURL());
|
|
|
| + // Tell BrowserPluginHost about the pending cross-process navigation.
|
| + browser_plugin_host()->OnPendingNavigation(dest_render_view_host);
|
| +
|
| // Used for page load time metrics.
|
| current_load_start_ = base::TimeTicks::Now();
|
|
|
| @@ -2730,11 +2757,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;
|
| }
|
|
|
|
|