Index: content/child/service_worker/web_service_worker_impl.cc |
diff --git a/content/child/service_worker/web_service_worker_impl.cc b/content/child/service_worker/web_service_worker_impl.cc |
index f926872c062ae5ec708f077868b7cf3300144c15..4b5970ab2a55b83ceff70f42ad6ea2d9af3dc773 100644 |
--- a/content/child/service_worker/web_service_worker_impl.cc |
+++ b/content/child/service_worker/web_service_worker_impl.cc |
@@ -9,6 +9,7 @@ |
#include "base/macros.h" |
#include "content/child/service_worker/service_worker_dispatcher.h" |
#include "content/child/service_worker/service_worker_handle_reference.h" |
+#include "content/child/service_worker/web_service_worker_provider_impl.h" |
#include "content/child/thread_safe_sender.h" |
#include "content/child/webmessageportchannel_impl.h" |
#include "content/common/service_worker/service_worker_messages.h" |
@@ -43,11 +44,12 @@ class HandleImpl : public blink::WebServiceWorker::Handle { |
void SendPostMessageToWorkerOnMainThread( |
ThreadSafeSender* thread_safe_sender, |
int handle_id, |
+ int provider_id, |
const base::string16& message, |
scoped_ptr<WebMessagePortChannelArray> channels) { |
if (WebRuntimeFeatures::isServiceWorkerExtendableMessageEventEnabled()) { |
thread_safe_sender->Send(new ServiceWorkerHostMsg_PostMessageToWorker( |
- handle_id, message, |
+ handle_id, provider_id, message, |
WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels)))); |
} else { |
thread_safe_sender->Send( |
@@ -100,8 +102,12 @@ blink::WebServiceWorkerState WebServiceWorkerImpl::state() const { |
return state_; |
} |
-void WebServiceWorkerImpl::postMessage(const WebString& message, |
- WebMessagePortChannelArray* channels) { |
+void WebServiceWorkerImpl::postMessage( |
+ blink::WebServiceWorkerProvider* provider, |
+ const WebString& message, |
+ WebMessagePortChannelArray* channels) { |
+ WebServiceWorkerProviderImpl* provider_impl = |
+ static_cast<WebServiceWorkerProviderImpl*>(provider); |
ServiceWorkerDispatcher* dispatcher = |
ServiceWorkerDispatcher::GetThreadSpecificInstance(); |
DCHECK(dispatcher); |
@@ -111,12 +117,13 @@ void WebServiceWorkerImpl::postMessage(const WebString& message, |
// (with thread hopping), so we need to do the same thread hopping here not |
// to overtake those messages. |
dispatcher->main_thread_task_runner()->PostTask( |
- FROM_HERE, base::Bind(&SendPostMessageToWorkerOnMainThread, |
- thread_safe_sender_, handle_ref_->handle_id(), |
- // We cast WebString to string16 before crossing |
- // threads for thread-safety. |
- static_cast<base::string16>(message), |
- base::Passed(make_scoped_ptr(channels)))); |
+ FROM_HERE, |
+ base::Bind(&SendPostMessageToWorkerOnMainThread, thread_safe_sender_, |
+ handle_ref_->handle_id(), provider_impl->provider_id(), |
+ // We cast WebString to string16 before crossing |
+ // threads for thread-safety. |
+ static_cast<base::string16>(message), |
+ base::Passed(make_scoped_ptr(channels)))); |
} |
void WebServiceWorkerImpl::terminate() { |