Index: content/renderer/render_thread_impl.cc |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
index d39b8cb3c0fd2c4b964de902dc3903eadb62b8dc..454c64a8205d8453fa6f89cb4061e0301cf70355 100644 |
--- a/content/renderer/render_thread_impl.cc |
+++ b/content/renderer/render_thread_impl.cc |
@@ -110,7 +110,7 @@ |
#include "content/renderer/render_view_impl.h" |
#include "content/renderer/renderer_blink_platform_impl.h" |
#include "content/renderer/scheduler/resource_dispatch_throttler.h" |
-#include "content/renderer/service_worker/embedded_worker_dispatcher.h" |
+#include "content/renderer/service_worker/embedded_worker_impl.h" |
#include "content/renderer/service_worker/service_worker_context_client.h" |
#include "content/renderer/service_worker/service_worker_context_message_filter.h" |
#include "content/renderer/shared_worker/embedded_shared_worker_stub.h" |
@@ -657,7 +657,6 @@ void RenderThreadImpl::Init() { |
channel()->SetListenerTaskRunner(renderer_scheduler_->DefaultTaskRunner()); |
main_thread_cache_storage_dispatcher_.reset( |
new CacheStorageDispatcher(thread_safe_sender())); |
- embedded_worker_dispatcher_.reset(new EmbeddedWorkerDispatcher()); |
// Note: This may reorder messages from the ResourceDispatcher with respect to |
// other subsystems. |
@@ -827,6 +826,8 @@ void RenderThreadImpl::Init() { |
base::Bind(CreateRenderFrameSetup)); |
service_registry()->AddService<EmbeddedWorkerSetup>( |
base::Bind(CreateEmbeddedWorkerSetup)); |
+ service_registry()->AddService<EmbeddedWorker>(base::Bind( |
+ &EmbeddedWorkerImpl::Create, make_scoped_refptr(thread_safe_sender()))); |
TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, ""); |
} |
@@ -905,11 +906,6 @@ void RenderThreadImpl::Shutdown() { |
input_event_filter_ = NULL; |
} |
- // RemoveEmbeddedWorkerRoute may be called while deleting |
- // EmbeddedWorkerDispatcher. So it must be deleted before deleting |
- // RenderThreadImpl. |
- embedded_worker_dispatcher_.reset(); |
- |
// Ramp down IDB before we ramp down WebKit (and V8), since IDB classes might |
// hold pointers to V8 objects (e.g., via pending requests). |
main_thread_indexed_db_dispatcher_.reset(); |
@@ -1647,8 +1643,7 @@ bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) { |
// Some messages are handled by delegates. |
if (appcache_dispatcher_->OnMessageReceived(msg) || |
- dom_storage_dispatcher_->OnMessageReceived(msg) || |
- embedded_worker_dispatcher_->OnMessageReceived(msg)) { |
+ dom_storage_dispatcher_->OnMessageReceived(msg)) { |
return true; |
} |