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 |