| 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 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 } | 793 } |
| 794 | 794 |
| 795 void ServiceWorkerURLRequestJob::NotifyStartError( | 795 void ServiceWorkerURLRequestJob::NotifyStartError( |
| 796 net::URLRequestStatus status) { | 796 net::URLRequestStatus status) { |
| 797 OnStartCompleted(); | 797 OnStartCompleted(); |
| 798 URLRequestJob::NotifyStartError(status); | 798 URLRequestJob::NotifyStartError(status); |
| 799 } | 799 } |
| 800 | 800 |
| 801 void ServiceWorkerURLRequestJob::NotifyRestartRequired() { | 801 void ServiceWorkerURLRequestJob::NotifyRestartRequired() { |
| 802 ServiceWorkerResponseInfo::ForRequest(request_, true) | 802 ServiceWorkerResponseInfo::ForRequest(request_, true) |
| 803 ->OnPrepareToRestart(worker_start_time_, worker_ready_time_); | 803 ->OnPrepareToRestart(worker_start_time_, worker_ready_time_, |
| 804 did_navigation_preload_); |
| 804 delegate_->OnPrepareToRestart(); | 805 delegate_->OnPrepareToRestart(); |
| 805 URLRequestJob::NotifyRestartRequired(); | 806 URLRequestJob::NotifyRestartRequired(); |
| 806 } | 807 } |
| 807 | 808 |
| 808 void ServiceWorkerURLRequestJob::OnStartCompleted() const { | 809 void ServiceWorkerURLRequestJob::OnStartCompleted() const { |
| 809 switch (response_type_) { | 810 switch (response_type_) { |
| 810 case NOT_DETERMINED: | 811 case NOT_DETERMINED: |
| 811 NOTREACHED(); | 812 NOTREACHED(); |
| 812 return; | 813 return; |
| 813 case FAIL_DUE_TO_LOST_CONTROLLER: | 814 case FAIL_DUE_TO_LOST_CONTROLLER: |
| 814 case FALLBACK_TO_NETWORK: | 815 case FALLBACK_TO_NETWORK: |
| 815 // Indicate that the service worker did not respond to the request. | 816 // Indicate that the service worker did not respond to the request. |
| 816 ServiceWorkerResponseInfo::ForRequest(request_, true) | 817 ServiceWorkerResponseInfo::ForRequest(request_, true) |
| 817 ->OnStartCompleted( | 818 ->OnStartCompleted( |
| 818 false /* was_fetched_via_service_worker */, | 819 false /* was_fetched_via_service_worker */, |
| 819 false /* was_fetched_via_foreign_fetch */, | 820 false /* was_fetched_via_foreign_fetch */, |
| 820 false /* was_fallback_required */, | 821 false /* was_fallback_required */, |
| 821 std::vector<GURL>() /* url_list_via_service_worker */, | 822 std::vector<GURL>() /* url_list_via_service_worker */, |
| 822 blink::WebServiceWorkerResponseTypeDefault, | 823 blink::WebServiceWorkerResponseTypeDefault, |
| 823 base::TimeTicks() /* service_worker_start_time */, | 824 base::TimeTicks() /* service_worker_start_time */, |
| 824 base::TimeTicks() /* service_worker_ready_time */, | 825 base::TimeTicks() /* service_worker_ready_time */, |
| 825 false /* response_is_in_cache_storage */, | 826 false /* response_is_in_cache_storage */, |
| 826 std::string() /* response_cache_storage_cache_name */, | 827 std::string() /* response_cache_storage_cache_name */, |
| 827 ServiceWorkerHeaderList() /* cors_exposed_header_names */); | 828 ServiceWorkerHeaderList() /* cors_exposed_header_names */, |
| 829 did_navigation_preload_); |
| 828 break; | 830 break; |
| 829 case FALLBACK_TO_RENDERER: | 831 case FALLBACK_TO_RENDERER: |
| 830 case FORWARD_TO_SERVICE_WORKER: | 832 case FORWARD_TO_SERVICE_WORKER: |
| 831 // Indicate that the service worker responded to the request, which is | 833 // Indicate that the service worker responded to the request, which is |
| 832 // considered true if "fallback to renderer" was required since the | 834 // considered true if "fallback to renderer" was required since the |
| 833 // renderer expects that. | 835 // renderer expects that. |
| 834 ServiceWorkerResponseInfo::ForRequest(request_, true) | 836 ServiceWorkerResponseInfo::ForRequest(request_, true) |
| 835 ->OnStartCompleted( | 837 ->OnStartCompleted( |
| 836 true /* was_fetched_via_service_worker */, | 838 true /* was_fetched_via_service_worker */, |
| 837 fetch_type_ == ServiceWorkerFetchType::FOREIGN_FETCH, | 839 fetch_type_ == ServiceWorkerFetchType::FOREIGN_FETCH, |
| 838 fall_back_required_, response_url_list_, | 840 fall_back_required_, response_url_list_, |
| 839 service_worker_response_type_, worker_start_time_, | 841 service_worker_response_type_, worker_start_time_, |
| 840 worker_ready_time_, response_is_in_cache_storage_, | 842 worker_ready_time_, response_is_in_cache_storage_, |
| 841 response_cache_storage_cache_name_, cors_exposed_header_names_); | 843 response_cache_storage_cache_name_, cors_exposed_header_names_, |
| 844 did_navigation_preload_); |
| 842 break; | 845 break; |
| 843 } | 846 } |
| 844 } | 847 } |
| 845 | 848 |
| 846 bool ServiceWorkerURLRequestJob::IsMainResourceLoad() const { | 849 bool ServiceWorkerURLRequestJob::IsMainResourceLoad() const { |
| 847 return ServiceWorkerUtils::IsMainResourceType(resource_type_); | 850 return ServiceWorkerUtils::IsMainResourceType(resource_type_); |
| 848 } | 851 } |
| 849 | 852 |
| 850 bool ServiceWorkerURLRequestJob::HasRequestBody() { | 853 bool ServiceWorkerURLRequestJob::HasRequestBody() { |
| 851 // URLRequest::has_upload() must be checked since its upload data may have | 854 // URLRequest::has_upload() must be checked since its upload data may have |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 DCHECK(!reported_navigation_preload_metrics_); | 913 DCHECK(!reported_navigation_preload_metrics_); |
| 911 reported_navigation_preload_metrics_ = true; | 914 reported_navigation_preload_metrics_ = true; |
| 912 | 915 |
| 913 ServiceWorkerMetrics::RecordNavigationPreloadResponse( | 916 ServiceWorkerMetrics::RecordNavigationPreloadResponse( |
| 914 worker_ready_time_ - worker_start_time_, | 917 worker_ready_time_ - worker_start_time_, |
| 915 navigation_preload_response_time_ - worker_start_time_, | 918 navigation_preload_response_time_ - worker_start_time_, |
| 916 initial_worker_status_, worker_start_situation_); | 919 initial_worker_status_, worker_start_situation_); |
| 917 } | 920 } |
| 918 | 921 |
| 919 } // namespace content | 922 } // namespace content |
| OLD | NEW |