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