| 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" |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 void Run(int request_id, | 187 void Run(int request_id, |
| 188 ServiceWorkerFetchEventResult fetch_result, | 188 ServiceWorkerFetchEventResult fetch_result, |
| 189 const ServiceWorkerResponse& response, | 189 const ServiceWorkerResponse& response, |
| 190 base::Time dispatch_event_time) { | 190 base::Time dispatch_event_time) { |
| 191 const bool handled = | 191 const bool handled = |
| 192 (fetch_result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE); | 192 (fetch_result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE); |
| 193 if (!version_->FinishRequest(request_id, handled, dispatch_event_time)) | 193 if (!version_->FinishRequest(request_id, handled, dispatch_event_time)) |
| 194 NOTREACHED() << "Should only receive one reply per event"; | 194 NOTREACHED() << "Should only receive one reply per event"; |
| 195 | 195 |
| 196 // |fetch_dispatcher| is null if the URLRequest was killed. | 196 // |fetch_dispatcher| is null if the URLRequest was killed. |
| 197 if (fetch_dispatcher_) | 197 if (fetch_dispatcher_) { |
| 198 // TODO(falken): Remove this CHECK once https://crbug.com/485900 is |
| 199 // resolved. |
| 200 CHECK(version_->GetMainScriptHttpResponseInfo()); |
| 198 fetch_dispatcher_->DidFinish(request_id, fetch_result, response); | 201 fetch_dispatcher_->DidFinish(request_id, fetch_result, response); |
| 202 } |
| 199 } | 203 } |
| 200 | 204 |
| 201 private: | 205 private: |
| 202 base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; | 206 base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; |
| 203 // Owns |this|. | 207 // Owns |this|. |
| 204 ServiceWorkerVersion* version_; | 208 ServiceWorkerVersion* version_; |
| 205 | 209 |
| 206 DISALLOW_COPY_AND_ASSIGN(ResponseCallback); | 210 DISALLOW_COPY_AND_ASSIGN(ResponseCallback); |
| 207 }; | 211 }; |
| 208 | 212 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 ServiceWorkerStatusCode status) { | 291 ServiceWorkerStatusCode status) { |
| 288 EndNetLogEventWithServiceWorkerStatus( | 292 EndNetLogEventWithServiceWorkerStatus( |
| 289 net_log_, net::NetLogEventType::SERVICE_WORKER_START_WORKER, status); | 293 net_log_, net::NetLogEventType::SERVICE_WORKER_START_WORKER, status); |
| 290 DidFail(status); | 294 DidFail(status); |
| 291 } | 295 } |
| 292 | 296 |
| 293 void ServiceWorkerFetchDispatcher::DispatchFetchEvent() { | 297 void ServiceWorkerFetchDispatcher::DispatchFetchEvent() { |
| 294 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()) | 298 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()) |
| 295 << "Worker stopped too soon after it was started."; | 299 << "Worker stopped too soon after it was started."; |
| 296 | 300 |
| 301 // TODO(falken): Remove this CHECK once https://crbug.com/485900 is resolved. |
| 302 CHECK(version_->GetMainScriptHttpResponseInfo()); |
| 303 |
| 297 DCHECK(!prepare_callback_.is_null()); | 304 DCHECK(!prepare_callback_.is_null()); |
| 298 base::Closure prepare_callback = prepare_callback_; | 305 base::Closure prepare_callback = prepare_callback_; |
| 299 prepare_callback.Run(); | 306 prepare_callback.Run(); |
| 300 | 307 |
| 301 net_log_.BeginEvent(net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT); | 308 net_log_.BeginEvent(net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT); |
| 302 int fetch_event_id; | 309 int fetch_event_id; |
| 303 int event_finish_id; | 310 int event_finish_id; |
| 304 if (timeout_) { | 311 if (timeout_) { |
| 305 fetch_event_id = version_->StartRequestWithCustomTimeout( | 312 fetch_event_id = version_->StartRequestWithCustomTimeout( |
| 306 GetEventType(), | 313 GetEventType(), |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 } | 473 } |
| 467 | 474 |
| 468 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() | 475 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() |
| 469 const { | 476 const { |
| 470 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) | 477 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) |
| 471 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; | 478 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; |
| 472 return ResourceTypeToEventType(resource_type_); | 479 return ResourceTypeToEventType(resource_type_); |
| 473 } | 480 } |
| 474 | 481 |
| 475 } // namespace content | 482 } // namespace content |
| OLD | NEW |