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 |