| Index: content/browser/service_worker/service_worker_dispatcher_host.cc
|
| diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| index fc102749e40f46541e6d97761823605f534649ea..d4bd580fc43dfae00d496e34589e7c299836d24b 100644
|
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| @@ -678,6 +678,7 @@ void ServiceWorkerDispatcherHost::OnGetRegistrationForReady(
|
|
|
| void ServiceWorkerDispatcherHost::OnPostMessageToWorker(
|
| int handle_id,
|
| + int provider_id,
|
| const base::string16& message,
|
| const std::vector<TransferredMessagePort>& sent_message_ports) {
|
| TRACE_EVENT0("ServiceWorker",
|
| @@ -690,9 +691,14 @@ void ServiceWorkerDispatcherHost::OnPostMessageToWorker(
|
| bad_message::ReceivedBadMessage(this, bad_message::SWDH_POST_MESSAGE);
|
| return;
|
| }
|
| -
|
| + ServiceWorkerProviderHost* provider_host =
|
| + GetContext()->GetProviderHost(render_process_id_, provider_id);
|
| + if (!provider_host) {
|
| + bad_message::ReceivedBadMessage(this, bad_message::SWDH_POST_MESSAGE);
|
| + return;
|
| + }
|
| handle->version()->DispatchMessageEvent(
|
| - message, sent_message_ports,
|
| + provider_host, message, sent_message_ports,
|
| base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
|
| }
|
|
|
| @@ -841,8 +847,8 @@ void ServiceWorkerDispatcherHost::RegistrationComplete(
|
| GetRegistrationObjectInfoAndVersionAttributes(
|
| provider_host->AsWeakPtr(), registration, &info, &attrs);
|
|
|
| - Send(new ServiceWorkerMsg_ServiceWorkerRegistered(
|
| - thread_id, request_id, info, attrs));
|
| + Send(new ServiceWorkerMsg_ServiceWorkerRegistered(thread_id, request_id,
|
| + provider_id, info, attrs));
|
| TRACE_EVENT_ASYNC_END1("ServiceWorker",
|
| "ServiceWorkerDispatcherHost::RegisterServiceWorker",
|
| request_id,
|
| @@ -1097,8 +1103,8 @@ void ServiceWorkerDispatcherHost::GetRegistrationComplete(
|
| }
|
| }
|
|
|
| - Send(new ServiceWorkerMsg_DidGetRegistration(
|
| - thread_id, request_id, info, attrs));
|
| + Send(new ServiceWorkerMsg_DidGetRegistration(thread_id, request_id,
|
| + provider_id, info, attrs));
|
| }
|
|
|
| void ServiceWorkerDispatcherHost::GetRegistrationsComplete(
|
| @@ -1134,8 +1140,8 @@ void ServiceWorkerDispatcherHost::GetRegistrationsComplete(
|
| }
|
| }
|
|
|
| - Send(new ServiceWorkerMsg_DidGetRegistrations(thread_id, request_id,
|
| - object_infos, version_attrs));
|
| + Send(new ServiceWorkerMsg_DidGetRegistrations(
|
| + thread_id, request_id, provider_id, object_infos, version_attrs));
|
| }
|
|
|
| void ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete(
|
| @@ -1159,7 +1165,7 @@ void ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete(
|
| GetRegistrationObjectInfoAndVersionAttributes(
|
| provider_host, registration, &info, &attrs);
|
| Send(new ServiceWorkerMsg_DidGetRegistrationForReady(
|
| - thread_id, request_id, info, attrs));
|
| + thread_id, request_id, provider_host->provider_id(), info, attrs));
|
| }
|
|
|
| void ServiceWorkerDispatcherHost::SendRegistrationError(
|
|
|