| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory; | 202 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory; |
| 203 }; | 203 }; |
| 204 | 204 |
| 205 ServiceWorkerContextClient* | 205 ServiceWorkerContextClient* |
| 206 ServiceWorkerContextClient::ThreadSpecificInstance() { | 206 ServiceWorkerContextClient::ThreadSpecificInstance() { |
| 207 return g_worker_client_tls.Pointer()->Get(); | 207 return g_worker_client_tls.Pointer()->Get(); |
| 208 } | 208 } |
| 209 | 209 |
| 210 ServiceWorkerContextClient::ServiceWorkerContextClient( | 210 ServiceWorkerContextClient::ServiceWorkerContextClient( |
| 211 int embedded_worker_id, | 211 int embedded_worker_id, |
| 212 int64 service_worker_version_id, | 212 std::string service_worker_version_uuid, |
| 213 const GURL& service_worker_scope, | 213 const GURL& service_worker_scope, |
| 214 const GURL& script_url, | 214 const GURL& script_url, |
| 215 int worker_devtools_agent_route_id) | 215 int worker_devtools_agent_route_id) |
| 216 : embedded_worker_id_(embedded_worker_id), | 216 : embedded_worker_id_(embedded_worker_id), |
| 217 service_worker_version_id_(service_worker_version_id), | 217 service_worker_version_uuid_(service_worker_version_uuid), |
| 218 service_worker_scope_(service_worker_scope), | 218 service_worker_scope_(service_worker_scope), |
| 219 script_url_(script_url), | 219 script_url_(script_url), |
| 220 worker_devtools_agent_route_id_(worker_devtools_agent_route_id), | 220 worker_devtools_agent_route_id_(worker_devtools_agent_route_id), |
| 221 sender_(ChildThreadImpl::current()->thread_safe_sender()), | 221 sender_(ChildThreadImpl::current()->thread_safe_sender()), |
| 222 main_thread_task_runner_(RenderThreadImpl::current()->GetTaskRunner()), | 222 main_thread_task_runner_(RenderThreadImpl::current()->GetTaskRunner()), |
| 223 proxy_(nullptr) { | 223 proxy_(nullptr) { |
| 224 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", | 224 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", |
| 225 "ServiceWorkerContextClient::StartingWorkerContext", | 225 "ServiceWorkerContextClient::StartingWorkerContext", |
| 226 this); | 226 this); |
| 227 TRACE_EVENT_ASYNC_STEP_INTO0( | 227 TRACE_EVENT_ASYNC_STEP_INTO0( |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); | 538 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); |
| 539 | 539 |
| 540 // Create a content::ServiceWorkerNetworkProvider for this data source so | 540 // Create a content::ServiceWorkerNetworkProvider for this data source so |
| 541 // we can observe its requests. | 541 // we can observe its requests. |
| 542 scoped_ptr<ServiceWorkerNetworkProvider> provider( | 542 scoped_ptr<ServiceWorkerNetworkProvider> provider( |
| 543 new ServiceWorkerNetworkProvider( | 543 new ServiceWorkerNetworkProvider( |
| 544 MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER)); | 544 MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER)); |
| 545 provider_context_ = provider->context(); | 545 provider_context_ = provider->context(); |
| 546 | 546 |
| 547 // Tell the network provider about which version to load. | 547 // Tell the network provider about which version to load. |
| 548 provider->SetServiceWorkerVersionId(service_worker_version_id_); | 548 provider->SetServiceWorkerVersionId(service_worker_version_uuid_); |
| 549 | 549 |
| 550 // The provider is kept around for the lifetime of the DataSource | 550 // The provider is kept around for the lifetime of the DataSource |
| 551 // and ownership is transferred to the DataSource. | 551 // and ownership is transferred to the DataSource. |
| 552 DataSourceExtraData* extra_data = new DataSourceExtraData(); | 552 DataSourceExtraData* extra_data = new DataSourceExtraData(); |
| 553 data_source->setExtraData(extra_data); | 553 data_source->setExtraData(extra_data); |
| 554 ServiceWorkerNetworkProvider::AttachToDocumentState( | 554 ServiceWorkerNetworkProvider::AttachToDocumentState( |
| 555 extra_data, provider.Pass()); | 555 extra_data, provider.Pass()); |
| 556 | 556 |
| 557 // Blink is responsible for deleting the returned object. | 557 // Blink is responsible for deleting the returned object. |
| 558 return new WebServiceWorkerNetworkProviderImpl(); | 558 return new WebServiceWorkerNetworkProviderImpl(); |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 971 } | 971 } |
| 972 | 972 |
| 973 base::WeakPtr<ServiceWorkerContextClient> | 973 base::WeakPtr<ServiceWorkerContextClient> |
| 974 ServiceWorkerContextClient::GetWeakPtr() { | 974 ServiceWorkerContextClient::GetWeakPtr() { |
| 975 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 975 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
| 976 DCHECK(context_); | 976 DCHECK(context_); |
| 977 return context_->weak_factory.GetWeakPtr(); | 977 return context_->weak_factory.GetWeakPtr(); |
| 978 } | 978 } |
| 979 | 979 |
| 980 } // namespace content | 980 } // namespace content |
| OLD | NEW |