| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/browser/service_worker/service_worker_version.h" | 5 #include "content/browser/service_worker/service_worker_version.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 ServiceWorkerMetrics::EventType event_type) | 820 ServiceWorkerMetrics::EventType event_type) |
| 821 : error_callback(callback), | 821 : error_callback(callback), |
| 822 start_time(time), | 822 start_time(time), |
| 823 start_time_ticks(time_ticks), | 823 start_time_ticks(time_ticks), |
| 824 event_type(event_type) {} | 824 event_type(event_type) {} |
| 825 | 825 |
| 826 ServiceWorkerVersion::PendingRequest::~PendingRequest() {} | 826 ServiceWorkerVersion::PendingRequest::~PendingRequest() {} |
| 827 | 827 |
| 828 void ServiceWorkerVersion::OnThreadStarted() { | 828 void ServiceWorkerVersion::OnThreadStarted() { |
| 829 DCHECK_EQ(EmbeddedWorkerStatus::STARTING, running_status()); | 829 DCHECK_EQ(EmbeddedWorkerStatus::STARTING, running_status()); |
| 830 DCHECK(provider_host_); |
| 831 provider_host_->SetReadyToSendMessagesToWorker( |
| 832 embedded_worker()->thread_id()); |
| 830 // Activate ping/pong now that JavaScript execution will start. | 833 // Activate ping/pong now that JavaScript execution will start. |
| 831 ping_controller_->Activate(); | 834 ping_controller_->Activate(); |
| 832 } | 835 } |
| 833 | 836 |
| 834 void ServiceWorkerVersion::OnStarting() { | 837 void ServiceWorkerVersion::OnStarting() { |
| 835 for (auto& observer : listeners_) | 838 for (auto& observer : listeners_) |
| 836 observer.OnRunningStateChanged(this); | 839 observer.OnRunningStateChanged(this); |
| 837 } | 840 } |
| 838 | 841 |
| 842 void ServiceWorkerVersion::OnStartWorkerMessageSent() { |
| 843 DCHECK(pending_provider_host_); |
| 844 context()->AddProviderHost(std::move(pending_provider_host_)); |
| 845 } |
| 846 |
| 839 void ServiceWorkerVersion::OnStarted() { | 847 void ServiceWorkerVersion::OnStarted() { |
| 840 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, running_status()); | 848 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, running_status()); |
| 841 RestartTick(&idle_time_); | 849 RestartTick(&idle_time_); |
| 842 | 850 |
| 843 // Fire all start callbacks. | 851 // Fire all start callbacks. |
| 844 scoped_refptr<ServiceWorkerVersion> protect(this); | 852 scoped_refptr<ServiceWorkerVersion> protect(this); |
| 845 FinishStartWorker(SERVICE_WORKER_OK); | 853 FinishStartWorker(SERVICE_WORKER_OK); |
| 846 for (auto& observer : listeners_) | 854 for (auto& observer : listeners_) |
| 847 observer.OnRunningStateChanged(this); | 855 observer.OnRunningStateChanged(this); |
| 848 } | 856 } |
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1421 DCHECK_EQ(EmbeddedWorkerStatus::STOPPED, running_status()); | 1429 DCHECK_EQ(EmbeddedWorkerStatus::STOPPED, running_status()); |
| 1422 | 1430 |
| 1423 if (!ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(site_for_uma_)) { | 1431 if (!ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(site_for_uma_)) { |
| 1424 DCHECK(!event_recorder_); | 1432 DCHECK(!event_recorder_); |
| 1425 event_recorder_ = | 1433 event_recorder_ = |
| 1426 base::MakeUnique<ServiceWorkerMetrics::ScopedEventRecorder>(); | 1434 base::MakeUnique<ServiceWorkerMetrics::ScopedEventRecorder>(); |
| 1427 } | 1435 } |
| 1428 | 1436 |
| 1429 StartTimeoutTimer(); | 1437 StartTimeoutTimer(); |
| 1430 | 1438 |
| 1439 DCHECK(!pending_provider_host_); |
| 1440 pending_provider_host_ = |
| 1441 ServiceWorkerProviderHost::PreCreateForWorkerContext(this, context()); |
| 1442 provider_host_ = pending_provider_host_->AsWeakPtr(); |
| 1443 |
| 1431 auto params = base::MakeUnique<EmbeddedWorkerStartParams>(); | 1444 auto params = base::MakeUnique<EmbeddedWorkerStartParams>(); |
| 1432 params->service_worker_version_id = version_id_; | 1445 params->service_worker_version_id = version_id_; |
| 1433 params->scope = scope_; | 1446 params->scope = scope_; |
| 1434 params->script_url = script_url_; | 1447 params->script_url = script_url_; |
| 1435 params->is_installed = IsInstalled(status_); | 1448 params->is_installed = IsInstalled(status_); |
| 1436 params->pause_after_download = pause_after_download_; | 1449 params->pause_after_download = pause_after_download_; |
| 1450 params->controller_provider = pending_provider_host_.get(); |
| 1437 | 1451 |
| 1438 embedded_worker_->Start( | 1452 embedded_worker_->Start( |
| 1439 std::move(params), mojo::MakeRequest(&event_dispatcher_), | 1453 std::move(params), mojo::MakeRequest(&event_dispatcher_), |
| 1440 base::Bind(&ServiceWorkerVersion::OnStartSentAndScriptEvaluated, | 1454 base::Bind(&ServiceWorkerVersion::OnStartSentAndScriptEvaluated, |
| 1441 weak_factory_.GetWeakPtr())); | 1455 weak_factory_.GetWeakPtr())); |
| 1442 } | 1456 } |
| 1443 | 1457 |
| 1444 void ServiceWorkerVersion::StartTimeoutTimer() { | 1458 void ServiceWorkerVersion::StartTimeoutTimer() { |
| 1445 DCHECK(!timeout_timer_.IsRunning()); | 1459 DCHECK(!timeout_timer_.IsRunning()); |
| 1446 | 1460 |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 | 1833 |
| 1820 void ServiceWorkerVersion::CleanUpExternalRequest( | 1834 void ServiceWorkerVersion::CleanUpExternalRequest( |
| 1821 const std::string& request_uuid, | 1835 const std::string& request_uuid, |
| 1822 ServiceWorkerStatusCode status) { | 1836 ServiceWorkerStatusCode status) { |
| 1823 if (status == SERVICE_WORKER_OK) | 1837 if (status == SERVICE_WORKER_OK) |
| 1824 return; | 1838 return; |
| 1825 external_request_uuid_to_request_id_.erase(request_uuid); | 1839 external_request_uuid_to_request_id_.erase(request_uuid); |
| 1826 } | 1840 } |
| 1827 | 1841 |
| 1828 } // namespace content | 1842 } // namespace content |
| OLD | NEW |