Index: content/renderer/render_thread_impl.cc |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
index b15660b902e3975be714c2e5759ce30a21e571e9..cf93d64d9cfa8c989bcdfd68388f3cb1e0fabe3d 100644 |
--- a/content/renderer/render_thread_impl.cc |
+++ b/content/renderer/render_thread_impl.cc |
@@ -212,6 +212,9 @@ void RenderThreadImpl::Init() { |
dom_storage_dispatcher_.reset(new DomStorageDispatcher()); |
main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher()); |
+ channel_manager_ = new content::BrowserPluginChannelManager(); |
+ AddObserver(channel_manager_.get()); |
+ |
media_stream_center_ = NULL; |
db_message_filter_ = new DBMessageFilter(); |
@@ -266,6 +269,8 @@ RenderThreadImpl::~RenderThreadImpl() { |
RemoveFilter(db_message_filter_.get()); |
db_message_filter_ = NULL; |
+ channel_manager_ = NULL; |
+ |
// Shutdown the file thread if it's running. |
if (file_thread_.get()) |
file_thread_->Stop(); |
@@ -475,6 +480,7 @@ void RenderThreadImpl::EnsureWebKitInitialized() { |
WebKit::WebCompositor::initialize(NULL); |
compositor_initialized_ = true; |
+ browser_plugin_registry_.reset(new content::BrowserPluginRegistry()); |
WebScriptController::enableV8SingleThreadMode(); |
RenderThreadImpl::RegisterSchemes(); |
@@ -860,22 +866,25 @@ void RenderThreadImpl::OnSetCSSColors( |
void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) { |
EnsureWebKitInitialized(); |
// When bringing in render_view, also bring in webkit's glue and jsbindings. |
- RenderViewImpl::Create( |
- params.parent_window, |
- params.opener_route_id, |
- params.renderer_preferences, |
- params.web_preferences, |
- new SharedRenderViewCounter(0), |
- params.view_id, |
- params.surface_id, |
- params.session_storage_namespace_id, |
- params.frame_name, |
- false, |
- params.swapped_out, |
- params.next_page_id, |
- params.screen_info, |
- params.guest, |
- params.accessibility_mode); |
+ if (params.embedder_process_id != -0) |
+ channel_manager_->CreateRenderView(params); |
+ else |
+ RenderViewImpl::Create( |
+ params.parent_window, |
+ params.opener_route_id, |
+ params.renderer_preferences, |
+ params.web_preferences, |
+ new SharedRenderViewCounter(0), |
+ params.view_id, |
+ params.surface_id, |
+ params.session_storage_namespace_id, |
+ params.frame_name, |
+ false, |
+ params.swapped_out, |
+ params.next_page_id, |
+ params.screen_info, |
+ NULL, |
+ params.accessibility_mode); |
} |
GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync( |