Index: content/child/service_worker/service_worker_network_provider.cc |
diff --git a/content/child/service_worker/service_worker_network_provider.cc b/content/child/service_worker/service_worker_network_provider.cc |
index 5521e4423465f67ca5160da204af02efa86d94af..14c0d976ed28f108c4a3e740e4ce43d13dc5d2ed 100644 |
--- a/content/child/service_worker/service_worker_network_provider.cc |
+++ b/content/child/service_worker/service_worker_network_provider.cc |
@@ -7,6 +7,7 @@ |
#include "base/atomic_sequence_num.h" |
#include "content/child/child_thread_impl.h" |
#include "content/child/request_extra_data.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/service_worker_provider_context.h" |
#include "content/common/navigation_params.h" |
@@ -207,6 +208,25 @@ ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider( |
GetNextProviderId(), |
is_parent_frame_secure) {} |
+ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider( |
+ mojom::ServiceWorkerProviderInfoForStartWorkerPtr info) |
+ : provider_id_(info->provider_id) { |
+ context_ = new ServiceWorkerProviderContext( |
+ provider_id_, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, |
+ std::move(info->client_request), |
+ ChildThreadImpl::current()->thread_safe_sender()); |
+ |
+ ServiceWorkerDispatcher* dispatcher = |
+ ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
+ ChildThreadImpl::current()->thread_safe_sender(), |
+ base::ThreadTaskRunnerHandle::Get().get()); |
+ // TODO(shimazu): Set registration/attributes directly to |context_|. |
+ dispatcher->OnAssociateRegistration(-1 /* unused thread_id */, |
+ info->provider_id, info->registration, |
+ info->attributes); |
+ provider_host_.Bind(std::move(info->host_ptr_info)); |
+} |
+ |
ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider() |
: provider_id_(kInvalidServiceWorkerProviderId) {} |
@@ -218,16 +238,6 @@ ServiceWorkerNetworkProvider::~ServiceWorkerNetworkProvider() { |
provider_host_.reset(); |
} |
-void ServiceWorkerNetworkProvider::SetServiceWorkerVersionId( |
- int64_t version_id, |
- int embedded_worker_id) { |
- DCHECK_NE(kInvalidServiceWorkerProviderId, provider_id_); |
- if (!ChildThreadImpl::current()) |
- return; // May be null in some tests. |
- dispatcher_host_->OnSetHostedVersionId(provider_id(), version_id, |
- embedded_worker_id); |
-} |
- |
bool ServiceWorkerNetworkProvider::IsControlledByServiceWorker() const { |
return context() && context()->controller(); |
} |