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 364d0dcbfe4fb69e144529eddb14048c91f29250..052ef10246f0948135f40d6d0a3d767e692f213a 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,28 @@ ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider( |
GetNextProviderId(), |
is_parent_frame_secure) {} |
+ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider( |
+ mojom::ServiceWorkerProviderClientInfoPtr info) |
+ : provider_id_(info->provider_id) { |
+ context_ = new ServiceWorkerProviderContext( |
+ provider_id_, info->type, std::move(info->client_request), |
+ ChildThreadImpl::current()->thread_safe_sender()); |
+ |
+ if (info->script_loader_factory_ptr_info.is_valid()) |
+ script_loader_factory_.Bind( |
+ std::move(info->script_loader_factory_ptr_info)); |
+ |
+ ServiceWorkerDispatcher* dispatcher = |
+ ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
+ ChildThreadImpl::current()->thread_safe_sender(), |
+ base::ThreadTaskRunnerHandle::Get().get()); |
+ // TODO(shimazu): Set registration/attributes directly to |context_|. |
+ dispatcher->OnAssociateRegistration(-1, info->provider_id, info->registration, |
+ info->attributes); |
+ |
+ provider_host_.Bind(std::move(info->host_ptr_info)); |
+} |
+ |
ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider() |
: provider_id_(kInvalidServiceWorkerProviderId) {} |
@@ -218,16 +241,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 { |
if (ServiceWorkerUtils::IsServicificationEnabled()) { |
// Interception for subresource loading is not working (yet) |