| Index: content/renderer/service_worker/service_worker_context_client.cc
|
| diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
|
| index 85b79ac8fae5a9277babc0c3386a9399f79e8f2d..1b65fe1ff76fd976d3623cc3dbba0a95e23175ed 100644
|
| --- a/content/renderer/service_worker/service_worker_context_client.cc
|
| +++ b/content/renderer/service_worker/service_worker_context_client.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/threading/thread_checker.h"
|
| #include "base/threading/thread_local.h"
|
| #include "base/trace_event/trace_event.h"
|
| +#include "content/child/navigator_connect/service_port_dispatcher_impl.h"
|
| #include "content/child/notifications/notification_data_conversions.h"
|
| #include "content/child/request_extra_data.h"
|
| #include "content/child/service_worker/service_worker_dispatcher.h"
|
| @@ -181,7 +182,7 @@ struct ServiceWorkerContextClient::WorkerContextData {
|
| IDMap<blink::WebServiceWorkerSkipWaitingCallbacks, IDMapOwnPointer>;
|
|
|
| explicit WorkerContextData(ServiceWorkerContextClient* owner)
|
| - : weak_factory(owner) {}
|
| + : weak_factory(owner), proxy_weak_factory(owner->proxy_) {}
|
|
|
| ~WorkerContextData() {
|
| DCHECK(thread_checker.CalledOnValidThread());
|
| @@ -203,6 +204,7 @@ struct ServiceWorkerContextClient::WorkerContextData {
|
|
|
| base::ThreadChecker thread_checker;
|
| base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory;
|
| + base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory;
|
| };
|
|
|
| ServiceWorkerContextClient*
|
| @@ -251,8 +253,6 @@ void ServiceWorkerContextClient::OnMessageReceived(
|
| OnNotificationClickEvent)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent)
|
| - IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginConnectEvent,
|
| - OnCrossOriginConnectEvent)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker,
|
| OnCrossOriginMessageToWorker)
|
| @@ -349,6 +349,11 @@ void ServiceWorkerContextClient::workerContextStarted(
|
| // willDestroyWorkerContext.
|
| context_.reset(new WorkerContextData(this));
|
|
|
| + // Register Mojo services.
|
| + context_->service_registry.ServiceRegistry::AddService(
|
| + base::Bind(&ServicePortDispatcherImpl::Create,
|
| + context_->proxy_weak_factory.GetWeakPtr()));
|
| +
|
| SetRegistrationInServiceWorkerGlobalScope();
|
|
|
| Send(new EmbeddedWorkerHostMsg_WorkerScriptLoaded(
|
| @@ -497,13 +502,6 @@ void ServiceWorkerContextClient::didHandleSyncEvent(
|
| result));
|
| }
|
|
|
| -void ServiceWorkerContextClient::didHandleCrossOriginConnectEvent(
|
| - int request_id,
|
| - bool accept_connection) {
|
| - Send(new ServiceWorkerHostMsg_CrossOriginConnectEventFinished(
|
| - GetRoutingID(), request_id, accept_connection));
|
| -}
|
| -
|
| blink::WebServiceWorkerNetworkProvider*
|
| ServiceWorkerContextClient::createServiceWorkerNetworkProvider(
|
| blink::WebDataSource* data_source) {
|
| @@ -736,18 +734,6 @@ void ServiceWorkerContextClient::OnGeofencingEvent(
|
| request_id));
|
| }
|
|
|
| -void ServiceWorkerContextClient::OnCrossOriginConnectEvent(
|
| - int request_id,
|
| - const NavigatorConnectClient& client) {
|
| - TRACE_EVENT0("ServiceWorker",
|
| - "ServiceWorkerContextClient::OnCrossOriginConnectEvent");
|
| - blink::WebCrossOriginServiceWorkerClient web_client;
|
| - web_client.origin = client.origin;
|
| - web_client.targetURL = client.target_url;
|
| - web_client.clientID = client.message_port_id;
|
| - proxy_->dispatchCrossOriginConnectEvent(request_id, web_client);
|
| -}
|
| -
|
| void ServiceWorkerContextClient::OnPostMessage(
|
| const base::string16& message,
|
| const std::vector<TransferredMessagePort>& sent_message_ports,
|
|
|