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