| 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 |