| Index: content/browser/service_worker/service_worker_version.cc
|
| diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
|
| index 802ed2e7311ad813ac91b579c6338dcc31bbdf32..e69d6bbc83b9b02aff26330008cd2b59e9531f81 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -23,6 +23,7 @@
|
| #include "content/browser/service_worker/service_worker_context_core.h"
|
| #include "content/browser/service_worker/service_worker_context_wrapper.h"
|
| #include "content/browser/service_worker/service_worker_metrics.h"
|
| +#include "content/browser/service_worker/service_worker_mojo_event_dispatcher.h"
|
| #include "content/browser/service_worker/service_worker_registration.h"
|
| #include "content/browser/service_worker/service_worker_utils.h"
|
| #include "content/browser/service_worker/stashed_port_manager.h"
|
| @@ -39,6 +40,7 @@
|
| #include "content/public/common/content_client.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/common/result_codes.h"
|
| +#include "content/public/common/service_registry.h"
|
| #include "net/http/http_response_headers.h"
|
| #include "net/http/http_response_info.h"
|
|
|
| @@ -796,12 +798,13 @@ void ServiceWorkerVersion::DispatchSyncEvent(const StatusCallback& callback) {
|
| }
|
|
|
| int request_id = AddRequest(callback, &sync_callbacks_, REQUEST_SYNC);
|
| - ServiceWorkerStatusCode status = embedded_worker_->SendMessage(
|
| - ServiceWorkerMsg_SyncEvent(request_id));
|
| - if (status != SERVICE_WORKER_OK) {
|
| - sync_callbacks_.Remove(request_id);
|
| - RunSoon(base::Bind(callback, status));
|
| - }
|
| + ServiceWorkerMojoEventDispatcher* mojo_event_dispatcher =
|
| + context_->GetMojoEventDispatcher(embedded_worker_->process_id());
|
| + DCHECK(mojo_event_dispatcher);
|
| + mojo_event_dispatcher->DispatchSyncEvent(
|
| + embedded_worker_->thread_id(),
|
| + base::Bind(&self::OnSyncEventFinished, weak_factory_.GetWeakPtr(),
|
| + request_id));
|
| }
|
|
|
| void ServiceWorkerVersion::DispatchNotificationClickEvent(
|
| @@ -1178,8 +1181,6 @@ bool ServiceWorkerVersion::OnMessageReceived(const IPC::Message& message) {
|
| OnInstallEventFinished)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_FetchEventFinished,
|
| OnFetchEventFinished)
|
| - IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SyncEventFinished,
|
| - OnSyncEventFinished)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_NotificationClickEventFinished,
|
| OnNotificationClickEventFinished)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PushEventFinished,
|
| @@ -1351,9 +1352,8 @@ void ServiceWorkerVersion::OnFetchEventFinished(
|
| RemoveCallbackAndStopIfRedundant(&fetch_callbacks_, request_id);
|
| }
|
|
|
| -void ServiceWorkerVersion::OnSyncEventFinished(
|
| - int request_id,
|
| - blink::WebServiceWorkerEventResult result) {
|
| +void ServiceWorkerVersion::OnSyncEventFinished(int request_id,
|
| + ServiceWorkerStatusCode status) {
|
| TRACE_EVENT1("ServiceWorker",
|
| "ServiceWorkerVersion::OnSyncEventFinished",
|
| "Request id", request_id);
|
| @@ -1363,11 +1363,6 @@ void ServiceWorkerVersion::OnSyncEventFinished(
|
| return;
|
| }
|
|
|
| - ServiceWorkerStatusCode status = SERVICE_WORKER_OK;
|
| - if (result == blink::WebServiceWorkerEventResultRejected) {
|
| - status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
|
| - }
|
| -
|
| scoped_refptr<ServiceWorkerVersion> protect(this);
|
| callback->Run(status);
|
| RemoveCallbackAndStopIfRedundant(&sync_callbacks_, request_id);
|
|
|