| 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 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 if (running_status() == RUNNING) { | 549 if (running_status() == RUNNING) { |
| 550 DCHECK(start_callbacks_.empty()); | 550 DCHECK(start_callbacks_.empty()); |
| 551 task.Run(); | 551 task.Run(); |
| 552 return; | 552 return; |
| 553 } | 553 } |
| 554 StartWorker(purpose, | 554 StartWorker(purpose, |
| 555 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), | 555 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), |
| 556 error_callback, task)); | 556 error_callback, task)); |
| 557 } | 557 } |
| 558 | 558 |
| 559 void ServiceWorkerVersion::DispatchInstallEvent(int request_id) { |
| 560 DispatchEvent<ServiceWorkerHostMsg_InstallEventFinished>( |
| 561 request_id, ServiceWorkerMsg_InstallEvent(request_id), |
| 562 base::Bind(&ServiceWorkerVersion::OnInstallEventResponse, this)); |
| 563 } |
| 564 |
| 559 void ServiceWorkerVersion::AddControllee( | 565 void ServiceWorkerVersion::AddControllee( |
| 560 ServiceWorkerProviderHost* provider_host) { | 566 ServiceWorkerProviderHost* provider_host) { |
| 561 const std::string& uuid = provider_host->client_uuid(); | 567 const std::string& uuid = provider_host->client_uuid(); |
| 562 CHECK(!provider_host->client_uuid().empty()); | 568 CHECK(!provider_host->client_uuid().empty()); |
| 563 DCHECK(!ContainsKey(controllee_map_, uuid)); | 569 DCHECK(!ContainsKey(controllee_map_, uuid)); |
| 564 controllee_map_[uuid] = provider_host; | 570 controllee_map_[uuid] = provider_host; |
| 565 // Keep the worker alive a bit longer right after a new controllee is added. | 571 // Keep the worker alive a bit longer right after a new controllee is added. |
| 566 RestartTick(&idle_time_); | 572 RestartTick(&idle_time_); |
| 567 FOR_EACH_OBSERVER(Listener, listeners_, | 573 FOR_EACH_OBSERVER(Listener, listeners_, |
| 568 OnControlleeAdded(this, provider_host)); | 574 OnControlleeAdded(this, provider_host)); |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 | 940 |
| 935 FinishRequest(request_id, | 941 FinishRequest(request_id, |
| 936 result == blink::WebServiceWorkerEventResultCompleted); | 942 result == blink::WebServiceWorkerEventResultCompleted); |
| 937 | 943 |
| 938 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; | 944 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
| 939 if (result == blink::WebServiceWorkerEventResultRejected) | 945 if (result == blink::WebServiceWorkerEventResultRejected) |
| 940 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; | 946 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
| 941 callback.Run(status); | 947 callback.Run(status); |
| 942 } | 948 } |
| 943 | 949 |
| 950 void ServiceWorkerVersion::OnInstallEventResponse( |
| 951 int request_id, |
| 952 blink::WebServiceWorkerEventResult result, |
| 953 bool has_fetch_handler) { |
| 954 has_fetch_handler_ = has_fetch_handler; |
| 955 OnSimpleEventResponse(request_id, result); |
| 956 } |
| 957 |
| 944 void ServiceWorkerVersion::OnOpenWindow(int request_id, GURL url) { | 958 void ServiceWorkerVersion::OnOpenWindow(int request_id, GURL url) { |
| 945 // Just abort if we are shutting down. | 959 // Just abort if we are shutting down. |
| 946 if (!context_) | 960 if (!context_) |
| 947 return; | 961 return; |
| 948 | 962 |
| 949 if (!url.is_valid()) { | 963 if (!url.is_valid()) { |
| 950 DVLOG(1) << "Received unexpected invalid URL from renderer process."; | 964 DVLOG(1) << "Received unexpected invalid URL from renderer process."; |
| 951 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 965 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 952 base::Bind(&KillEmbeddedWorkerProcess, | 966 base::Bind(&KillEmbeddedWorkerProcess, |
| 953 embedded_worker_->process_id(), | 967 embedded_worker_->process_id(), |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1693 void ServiceWorkerVersion::OnBeginEvent() { | 1707 void ServiceWorkerVersion::OnBeginEvent() { |
| 1694 if (should_exclude_from_uma_ || running_status() != RUNNING || | 1708 if (should_exclude_from_uma_ || running_status() != RUNNING || |
| 1695 idle_time_.is_null()) { | 1709 idle_time_.is_null()) { |
| 1696 return; | 1710 return; |
| 1697 } | 1711 } |
| 1698 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - | 1712 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - |
| 1699 idle_time_); | 1713 idle_time_); |
| 1700 } | 1714 } |
| 1701 | 1715 |
| 1702 } // namespace content | 1716 } // namespace content |
| OLD | NEW |