Index: content/renderer/service_worker/embedded_worker_context_client.cc |
diff --git a/content/renderer/service_worker/embedded_worker_context_client.cc b/content/renderer/service_worker/embedded_worker_context_client.cc |
index e2c50d84f61d11842599e6e8e9fc97b23440ca6f..aa80c2ac7f3268e53bbf40de18b273779d53460f 100644 |
--- a/content/renderer/service_worker/embedded_worker_context_client.cc |
+++ b/content/renderer/service_worker/embedded_worker_context_client.cc |
@@ -17,6 +17,7 @@ |
#include "base/trace_event/trace_event.h" |
#include "content/child/request_extra_data.h" |
#include "content/child/service_worker/service_worker_dispatcher.h" |
+#include "content/child/service_worker/service_worker_message_sender.h" |
#include "content/child/service_worker/service_worker_network_provider.h" |
#include "content/child/service_worker/service_worker_provider_context.h" |
#include "content/child/service_worker/service_worker_registration_handle_reference.h" |
@@ -105,7 +106,8 @@ EmbeddedWorkerContextClient::EmbeddedWorkerContextClient( |
service_worker_scope_(service_worker_scope), |
script_url_(script_url), |
worker_devtools_agent_route_id_(worker_devtools_agent_route_id), |
- sender_(ChildThreadImpl::current()->thread_safe_sender()), |
+ sender_(new ServiceWorkerMessageSender( |
+ ChildThreadImpl::current()->thread_safe_sender())), |
main_thread_task_runner_(RenderThreadImpl::current()->GetTaskRunner()), |
weak_factory_(this) { |
TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", |
@@ -282,7 +284,7 @@ void EmbeddedWorkerContextClient::sendDevToolsMessage( |
const blink::WebString& message, |
const blink::WebString& state_cookie) { |
DevToolsAgent::SendChunkedProtocolMessage( |
- sender_.get(), worker_devtools_agent_route_id_, |
+ sender_->thread_safe_sender(), worker_devtools_agent_route_id_, |
call_id, message.utf8(), state_cookie.utf8()); |
} |
@@ -386,7 +388,7 @@ EmbeddedWorkerContextClient::createServiceWorkerProvider() { |
// Blink is responsible for deleting the returned object. |
return new WebServiceWorkerProviderImpl( |
- thread_safe_sender(), provider_context_.get()); |
+ sender()->thread_safe_sender(), provider_context_.get()); |
} |
void EmbeddedWorkerContextClient::postMessageToClient( |
@@ -457,8 +459,7 @@ void EmbeddedWorkerContextClient::SetRegistrationInServiceWorkerGlobalScope() { |
return; // Cannot be associated with a registration in some tests. |
ServiceWorkerDispatcher* dispatcher = |
- ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
- thread_safe_sender()); |
+ ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(sender()); |
// Register a registration and its version attributes with the dispatcher |
// living on the worker thread. |