OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <memory> | 8 #include <memory> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 ServiceWorkerContextClient* client = | 414 ServiceWorkerContextClient* client = |
415 ServiceWorkerContextClient::ThreadSpecificInstance(); | 415 ServiceWorkerContextClient::ThreadSpecificInstance(); |
416 if (!client) | 416 if (!client) |
417 return; | 417 return; |
418 response_ = base::MakeUnique<blink::WebURLResponse>(); | 418 response_ = base::MakeUnique<blink::WebURLResponse>(); |
419 WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(), | 419 WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(), |
420 false /* report_security_info */); | 420 false /* report_security_info */); |
421 client->OnNavigationPreloadResponse(fetch_event_id_, std::move(response_), | 421 client->OnNavigationPreloadResponse(fetch_event_id_, std::move(response_), |
422 nullptr); | 422 nullptr); |
423 // This will delete |this|. | 423 // This will delete |this|. |
424 client->OnNavigationPreloadComplete(fetch_event_id_); | 424 client->OnNavigationPreloadComplete( |
| 425 fetch_event_id_, response_head.response_start, |
| 426 response_head.encoded_data_length, 0 /* encoded_body_length */, |
| 427 0 /* decoded_body_length */); |
425 } | 428 } |
426 | 429 |
427 void OnDataDownloaded(int64_t data_length, | 430 void OnDataDownloaded(int64_t data_length, |
428 int64_t encoded_data_length) override { | 431 int64_t encoded_data_length) override { |
429 NOTREACHED(); | 432 NOTREACHED(); |
430 } | 433 } |
431 | 434 |
432 void OnUploadProgress(int64_t current_position, | 435 void OnUploadProgress(int64_t current_position, |
433 int64_t total_size, | 436 int64_t total_size, |
434 OnUploadProgressCallback ack_callback) override { | 437 OnUploadProgressCallback ack_callback) override { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 if (!client) | 480 if (!client) |
478 return; | 481 return; |
479 if (response_) { | 482 if (response_) { |
480 // When the response body from the server is empty, OnComplete() is called | 483 // When the response body from the server is empty, OnComplete() is called |
481 // without OnStartLoadingResponseBody(). | 484 // without OnStartLoadingResponseBody(). |
482 DCHECK(!body_.is_valid()); | 485 DCHECK(!body_.is_valid()); |
483 client->OnNavigationPreloadResponse(fetch_event_id_, std::move(response_), | 486 client->OnNavigationPreloadResponse(fetch_event_id_, std::move(response_), |
484 nullptr); | 487 nullptr); |
485 } | 488 } |
486 // This will delete |this|. | 489 // This will delete |this|. |
487 client->OnNavigationPreloadComplete(fetch_event_id_); | 490 client->OnNavigationPreloadComplete( |
| 491 fetch_event_id_, status.completion_time, status.encoded_data_length, |
| 492 status.encoded_body_length, status.decoded_body_length); |
488 } | 493 } |
489 | 494 |
490 private: | 495 private: |
491 void MaybeReportResponseToClient() { | 496 void MaybeReportResponseToClient() { |
492 if (!response_ || !body_.is_valid()) | 497 if (!response_ || !body_.is_valid()) |
493 return; | 498 return; |
494 ServiceWorkerContextClient* client = | 499 ServiceWorkerContextClient* client = |
495 ServiceWorkerContextClient::ThreadSpecificInstance(); | 500 ServiceWorkerContextClient::ThreadSpecificInstance(); |
496 if (!client) | 501 if (!client) |
497 return; | 502 return; |
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1629 } | 1634 } |
1630 | 1635 |
1631 void ServiceWorkerContextClient::OnNavigationPreloadError( | 1636 void ServiceWorkerContextClient::OnNavigationPreloadError( |
1632 int fetch_event_id, | 1637 int fetch_event_id, |
1633 std::unique_ptr<blink::WebServiceWorkerError> error) { | 1638 std::unique_ptr<blink::WebServiceWorkerError> error) { |
1634 proxy_->OnNavigationPreloadError(fetch_event_id, std::move(error)); | 1639 proxy_->OnNavigationPreloadError(fetch_event_id, std::move(error)); |
1635 context_->preload_requests.Remove(fetch_event_id); | 1640 context_->preload_requests.Remove(fetch_event_id); |
1636 } | 1641 } |
1637 | 1642 |
1638 void ServiceWorkerContextClient::OnNavigationPreloadComplete( | 1643 void ServiceWorkerContextClient::OnNavigationPreloadComplete( |
1639 int fetch_event_id) { | 1644 int fetch_event_id, |
| 1645 base::TimeTicks completion_time, |
| 1646 int64_t encoded_data_length, |
| 1647 int64_t encoded_body_length, |
| 1648 int64_t decoded_body_length) { |
| 1649 proxy_->OnNavigationPreloadComplete( |
| 1650 fetch_event_id, (completion_time - base::TimeTicks()).InSecondsF(), |
| 1651 encoded_data_length, encoded_body_length, decoded_body_length); |
1640 context_->preload_requests.Remove(fetch_event_id); | 1652 context_->preload_requests.Remove(fetch_event_id); |
1641 } | 1653 } |
1642 | 1654 |
1643 base::WeakPtr<ServiceWorkerContextClient> | 1655 base::WeakPtr<ServiceWorkerContextClient> |
1644 ServiceWorkerContextClient::GetWeakPtr() { | 1656 ServiceWorkerContextClient::GetWeakPtr() { |
1645 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1657 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
1646 DCHECK(context_); | 1658 DCHECK(context_); |
1647 return context_->weak_factory.GetWeakPtr(); | 1659 return context_->weak_factory.GetWeakPtr(); |
1648 } | 1660 } |
1649 | 1661 |
1650 } // namespace content | 1662 } // namespace content |
OLD | NEW |