| 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_url_request_job.h" | 5 #include "content/browser/service_worker/service_worker_url_request_job.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 | 642 |
| 643 SetResponse(response); | 643 SetResponse(response); |
| 644 if (!blob_reader_) { | 644 if (!blob_reader_) { |
| 645 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_HEADERS_ONLY_RESPONSE); | 645 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_HEADERS_ONLY_RESPONSE); |
| 646 CommitResponseHeader(); | 646 CommitResponseHeader(); |
| 647 } | 647 } |
| 648 } | 648 } |
| 649 | 649 |
| 650 void ServiceWorkerURLRequestJob::SetResponse( | 650 void ServiceWorkerURLRequestJob::SetResponse( |
| 651 const ServiceWorkerResponse& response) { | 651 const ServiceWorkerResponse& response) { |
| 652 response_url_ = response.url; | 652 response_url_list_ = response.url_list; |
| 653 service_worker_response_type_ = response.response_type; | 653 service_worker_response_type_ = response.response_type; |
| 654 cors_exposed_header_names_ = response.cors_exposed_header_names; | 654 cors_exposed_header_names_ = response.cors_exposed_header_names; |
| 655 response_time_ = response.response_time; | 655 response_time_ = response.response_time; |
| 656 CreateResponseHeader(response.status_code, response.status_text, | 656 CreateResponseHeader(response.status_code, response.status_text, |
| 657 response.headers); | 657 response.headers); |
| 658 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); | 658 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); |
| 659 | 659 |
| 660 response_is_in_cache_storage_ = response.is_in_cache_storage; | 660 response_is_in_cache_storage_ = response.is_in_cache_storage; |
| 661 response_cache_storage_cache_name_ = response.cache_storage_cache_name; | 661 response_cache_storage_cache_name_ = response.cache_storage_cache_name; |
| 662 } | 662 } |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 } | 788 } |
| 789 | 789 |
| 790 void ServiceWorkerURLRequestJob::OnStartCompleted() const { | 790 void ServiceWorkerURLRequestJob::OnStartCompleted() const { |
| 791 if (response_type_ != FORWARD_TO_SERVICE_WORKER && | 791 if (response_type_ != FORWARD_TO_SERVICE_WORKER && |
| 792 response_type_ != FALLBACK_TO_RENDERER) { | 792 response_type_ != FALLBACK_TO_RENDERER) { |
| 793 ServiceWorkerResponseInfo::ForRequest(request_, true) | 793 ServiceWorkerResponseInfo::ForRequest(request_, true) |
| 794 ->OnStartCompleted( | 794 ->OnStartCompleted( |
| 795 false /* was_fetched_via_service_worker */, | 795 false /* was_fetched_via_service_worker */, |
| 796 false /* was_fetched_via_foreign_fetch */, | 796 false /* was_fetched_via_foreign_fetch */, |
| 797 false /* was_fallback_required */, | 797 false /* was_fallback_required */, |
| 798 GURL() /* original_url_via_service_worker */, | 798 std::vector<GURL>() /* url_list_via_service_worker */, |
| 799 blink::WebServiceWorkerResponseTypeDefault, | 799 blink::WebServiceWorkerResponseTypeDefault, |
| 800 base::TimeTicks() /* service_worker_start_time */, | 800 base::TimeTicks() /* service_worker_start_time */, |
| 801 base::TimeTicks() /* service_worker_ready_time */, | 801 base::TimeTicks() /* service_worker_ready_time */, |
| 802 false /* respons_is_in_cache_storage */, | 802 false /* respons_is_in_cache_storage */, |
| 803 std::string() /* response_cache_storage_cache_name */, | 803 std::string() /* response_cache_storage_cache_name */, |
| 804 ServiceWorkerHeaderList() /* cors_exposed_header_names */); | 804 ServiceWorkerHeaderList() /* cors_exposed_header_names */); |
| 805 return; | 805 return; |
| 806 } | 806 } |
| 807 ServiceWorkerResponseInfo::ForRequest(request_, true) | 807 ServiceWorkerResponseInfo::ForRequest(request_, true) |
| 808 ->OnStartCompleted( | 808 ->OnStartCompleted(true /* was_fetched_via_service_worker */, |
| 809 true /* was_fetched_via_service_worker */, | 809 fetch_type_ == ServiceWorkerFetchType::FOREIGN_FETCH, |
| 810 fetch_type_ == ServiceWorkerFetchType::FOREIGN_FETCH, | 810 fall_back_required_, response_url_list_, |
| 811 fall_back_required_, response_url_, service_worker_response_type_, | 811 service_worker_response_type_, worker_start_time_, |
| 812 worker_start_time_, worker_ready_time_, response_is_in_cache_storage_, | 812 worker_ready_time_, response_is_in_cache_storage_, |
| 813 response_cache_storage_cache_name_, cors_exposed_header_names_); | 813 response_cache_storage_cache_name_, |
| 814 cors_exposed_header_names_); |
| 814 } | 815 } |
| 815 | 816 |
| 816 bool ServiceWorkerURLRequestJob::IsMainResourceLoad() const { | 817 bool ServiceWorkerURLRequestJob::IsMainResourceLoad() const { |
| 817 return ServiceWorkerUtils::IsMainResourceType(resource_type_); | 818 return ServiceWorkerUtils::IsMainResourceType(resource_type_); |
| 818 } | 819 } |
| 819 | 820 |
| 820 bool ServiceWorkerURLRequestJob::HasRequestBody() { | 821 bool ServiceWorkerURLRequestJob::HasRequestBody() { |
| 821 // URLRequest::has_upload() must be checked since its upload data may have | 822 // URLRequest::has_upload() must be checked since its upload data may have |
| 822 // been cleared while handling a redirect. | 823 // been cleared while handling a redirect. |
| 823 return request_->has_upload() && body_.get() && blob_storage_context_; | 824 return request_->has_upload() && body_.get() && blob_storage_context_; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, | 857 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, |
| 857 weak_factory_.GetWeakPtr(), active_worker), | 858 weak_factory_.GetWeakPtr(), active_worker), |
| 858 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, | 859 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, |
| 859 weak_factory_.GetWeakPtr()))); | 860 weak_factory_.GetWeakPtr()))); |
| 860 worker_start_time_ = base::TimeTicks::Now(); | 861 worker_start_time_ = base::TimeTicks::Now(); |
| 861 fetch_dispatcher_->MaybeStartNavigationPreload(request()); | 862 fetch_dispatcher_->MaybeStartNavigationPreload(request()); |
| 862 fetch_dispatcher_->Run(); | 863 fetch_dispatcher_->Run(); |
| 863 } | 864 } |
| 864 | 865 |
| 865 } // namespace content | 866 } // namespace content |
| OLD | NEW |