Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 10377170: Browser Plugin: browser process side changes (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Updated according to creis@ Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698