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 3db1cf81460c105aa474848fddf55db0b01a57ca..6da46b55e41ab56c4097d54ea873ba563a7a0444 100644 |
--- a/content/renderer/service_worker/service_worker_context_client.cc |
+++ b/content/renderer/service_worker/service_worker_context_client.cc |
@@ -554,6 +554,7 @@ ServiceWorkerContextClient::ServiceWorkerContextClient( |
const GURL& script_url, |
mojom::ServiceWorkerEventDispatcherRequest dispatcher_request, |
mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host, |
+ mojom::ServiceWorkerProviderClientInfoPtr provider_client_info, |
std::unique_ptr<EmbeddedWorkerInstanceClientImpl> embedded_worker_client) |
: embedded_worker_id_(embedded_worker_id), |
service_worker_version_id_(service_worker_version_id), |
@@ -575,6 +576,11 @@ ServiceWorkerContextClient::ServiceWorkerContextClient( |
"ServiceWorkerContextClient::StartingWorkerContext", |
this, |
"PrepareWorker"); |
+ // Create a content::ServiceWorkerNetworkProvider for this data source so |
+ // we can observe its requests. |
+ pending_network_provider_ = base::MakeUnique<ServiceWorkerNetworkProvider>( |
+ std::move(provider_client_info)); |
+ provider_context_ = pending_network_provider_->context(); |
} |
ServiceWorkerContextClient::~ServiceWorkerContextClient() {} |
@@ -709,9 +715,7 @@ void ServiceWorkerContextClient::WorkerContextStarted( |
SetRegistrationInServiceWorkerGlobalScope(registration_info, version_attrs); |
- (*instance_host_) |
- ->OnThreadStarted(WorkerThread::GetCurrentId(), |
- provider_context_->provider_id()); |
+ (*instance_host_)->OnThreadStarted(WorkerThread::GetCurrentId()); |
TRACE_EVENT_ASYNC_STEP_INTO0( |
"ServiceWorker", |
@@ -1087,23 +1091,9 @@ void ServiceWorkerContextClient::DidHandlePaymentRequestEvent( |
std::unique_ptr<blink::WebServiceWorkerNetworkProvider> |
ServiceWorkerContextClient::CreateServiceWorkerNetworkProvider() { |
DCHECK(main_thread_task_runner_->RunsTasksInCurrentSequence()); |
- |
- // Create a content::ServiceWorkerNetworkProvider for this data source so |
- // we can observe its requests. |
- std::unique_ptr<ServiceWorkerNetworkProvider> provider = |
- base::MakeUnique<ServiceWorkerNetworkProvider>( |
- MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, |
- true /* is_parent_frame_secure */); |
- provider_context_ = provider->context(); |
- network_provider_id_ = provider->provider_id(); |
- |
- // Tell the network provider about which version to load. |
- provider->SetServiceWorkerVersionId(service_worker_version_id_, |
- embedded_worker_id_); |
- |
// Blink is responsible for deleting the returned object. |
return base::MakeUnique<WebServiceWorkerNetworkProviderImpl>( |
- std::move(provider)); |
+ std::move(pending_network_provider_)); |
xiaofengzhang
2017/06/06 03:22:23
I have a stupid question here:
CreateServiceWorker
shimazu
2017/06/06 04:16:56
It might be a complicated part of starting up.
Em
|
} |
std::unique_ptr<blink::WebWorkerFetchContext> |