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