| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_fetch_dispatcher.h" | 5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/time/time.h" |
| 11 #include "base/trace_event/trace_event.h" | 12 #include "base/trace_event/trace_event.h" |
| 12 #include "content/browser/service_worker/embedded_worker_status.h" | 13 #include "content/browser/service_worker/embedded_worker_status.h" |
| 13 #include "content/browser/service_worker/service_worker_version.h" | 14 #include "content/browser/service_worker/service_worker_version.h" |
| 14 #include "content/common/service_worker/service_worker_messages.h" | 15 #include "content/common/service_worker/service_worker_messages.h" |
| 15 #include "content/common/service_worker/service_worker_utils.h" | 16 #include "content/common/service_worker/service_worker_utils.h" |
| 16 | 17 |
| 17 namespace content { | 18 namespace content { |
| 18 | 19 |
| 19 namespace { | 20 namespace { |
| 20 | 21 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 // Helper to receive the fetch event response even if | 75 // Helper to receive the fetch event response even if |
| 75 // ServiceWorkerFetchDispatcher has been destroyed. | 76 // ServiceWorkerFetchDispatcher has been destroyed. |
| 76 class ServiceWorkerFetchDispatcher::ResponseCallback { | 77 class ServiceWorkerFetchDispatcher::ResponseCallback { |
| 77 public: | 78 public: |
| 78 ResponseCallback(base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher, | 79 ResponseCallback(base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher, |
| 79 ServiceWorkerVersion* version) | 80 ServiceWorkerVersion* version) |
| 80 : fetch_dispatcher_(fetch_dispatcher), version_(version) {} | 81 : fetch_dispatcher_(fetch_dispatcher), version_(version) {} |
| 81 | 82 |
| 82 void Run(int request_id, | 83 void Run(int request_id, |
| 83 ServiceWorkerFetchEventResult fetch_result, | 84 ServiceWorkerFetchEventResult fetch_result, |
| 84 const ServiceWorkerResponse& response) { | 85 const ServiceWorkerResponse& response, |
| 86 base::Time dispatch_event_time) { |
| 85 const bool handled = | 87 const bool handled = |
| 86 (fetch_result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE); | 88 (fetch_result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE); |
| 87 if (!version_->FinishRequest(request_id, handled)) | 89 if (!version_->FinishRequest(request_id, handled, dispatch_event_time)) |
| 88 NOTREACHED() << "Should only receive one reply per event"; | 90 NOTREACHED() << "Should only receive one reply per event"; |
| 89 | 91 |
| 90 // |fetch_dispatcher| is null if the URLRequest was killed. | 92 // |fetch_dispatcher| is null if the URLRequest was killed. |
| 91 if (fetch_dispatcher_) | 93 if (fetch_dispatcher_) |
| 92 fetch_dispatcher_->DidFinish(request_id, fetch_result, response); | 94 fetch_dispatcher_->DidFinish(request_id, fetch_result, response); |
| 93 } | 95 } |
| 94 | 96 |
| 95 private: | 97 private: |
| 96 base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; | 98 base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; |
| 97 // Owns |this|. | 99 // Owns |this|. |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 } | 250 } |
| 249 | 251 |
| 250 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() | 252 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() |
| 251 const { | 253 const { |
| 252 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) | 254 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) |
| 253 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; | 255 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; |
| 254 return ResourceTypeToEventType(resource_type_); | 256 return ResourceTypeToEventType(resource_type_); |
| 255 } | 257 } |
| 256 | 258 |
| 257 } // namespace content | 259 } // namespace content |
| OLD | NEW |