| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_response_info.h" | 5 #include "content/browser/service_worker/service_worker_response_info.h" |
| 6 | 6 |
| 7 #include "content/public/common/resource_response_info.h" | 7 #include "content/public/common/resource_response_info.h" |
| 8 #include "net/url_request/url_request.h" | 8 #include "net/url_request/url_request.h" |
| 9 | 9 |
| 10 namespace content { | 10 namespace content { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 response_info->was_fallback_required_by_service_worker = | 45 response_info->was_fallback_required_by_service_worker = |
| 46 was_fallback_required_; | 46 was_fallback_required_; |
| 47 response_info->url_list_via_service_worker = url_list_via_service_worker_; | 47 response_info->url_list_via_service_worker = url_list_via_service_worker_; |
| 48 response_info->response_type_via_service_worker = | 48 response_info->response_type_via_service_worker = |
| 49 response_type_via_service_worker_; | 49 response_type_via_service_worker_; |
| 50 response_info->service_worker_start_time = service_worker_start_time_; | 50 response_info->service_worker_start_time = service_worker_start_time_; |
| 51 response_info->service_worker_ready_time = service_worker_ready_time_; | 51 response_info->service_worker_ready_time = service_worker_ready_time_; |
| 52 response_info->is_in_cache_storage = response_is_in_cache_storage_; | 52 response_info->is_in_cache_storage = response_is_in_cache_storage_; |
| 53 response_info->cache_storage_cache_name = response_cache_storage_cache_name_; | 53 response_info->cache_storage_cache_name = response_cache_storage_cache_name_; |
| 54 response_info->cors_exposed_header_names = cors_exposed_header_names_; | 54 response_info->cors_exposed_header_names = cors_exposed_header_names_; |
| 55 response_info->did_service_worker_navigation_preload = |
| 56 did_navigation_preload_; |
| 55 } | 57 } |
| 56 | 58 |
| 57 void ServiceWorkerResponseInfo::OnPrepareToRestart( | 59 void ServiceWorkerResponseInfo::OnPrepareToRestart( |
| 58 base::TimeTicks service_worker_start_time, | 60 base::TimeTicks service_worker_start_time, |
| 59 base::TimeTicks service_worker_ready_time) { | 61 base::TimeTicks service_worker_ready_time, |
| 62 bool did_navigation_preload) { |
| 60 ResetData(); | 63 ResetData(); |
| 61 | 64 |
| 62 // Update times, if not already set by a previous Job. | 65 // Update times, if not already set by a previous Job. |
| 63 if (service_worker_start_time_.is_null()) { | 66 if (service_worker_start_time_.is_null()) { |
| 64 service_worker_start_time_ = service_worker_start_time; | 67 service_worker_start_time_ = service_worker_start_time; |
| 65 service_worker_ready_time_ = service_worker_ready_time; | 68 service_worker_ready_time_ = service_worker_ready_time; |
| 66 } | 69 } |
| 70 // Don't reset navigation preload flag it if a previous job already set it, |
| 71 // since the UseCounter should still reflect that navigation preload occurred |
| 72 // for this request. |
| 73 if (did_navigation_preload) |
| 74 did_navigation_preload_ = true; |
| 67 } | 75 } |
| 68 | 76 |
| 69 void ServiceWorkerResponseInfo::OnStartCompleted( | 77 void ServiceWorkerResponseInfo::OnStartCompleted( |
| 70 bool was_fetched_via_service_worker, | 78 bool was_fetched_via_service_worker, |
| 71 bool was_fetched_via_foreign_fetch, | 79 bool was_fetched_via_foreign_fetch, |
| 72 bool was_fallback_required, | 80 bool was_fallback_required, |
| 73 const std::vector<GURL>& url_list_via_service_worker, | 81 const std::vector<GURL>& url_list_via_service_worker, |
| 74 blink::WebServiceWorkerResponseType response_type_via_service_worker, | 82 blink::WebServiceWorkerResponseType response_type_via_service_worker, |
| 75 base::TimeTicks service_worker_start_time, | 83 base::TimeTicks service_worker_start_time, |
| 76 base::TimeTicks service_worker_ready_time, | 84 base::TimeTicks service_worker_ready_time, |
| 77 bool response_is_in_cache_storage, | 85 bool response_is_in_cache_storage, |
| 78 const std::string& response_cache_storage_cache_name, | 86 const std::string& response_cache_storage_cache_name, |
| 79 const ServiceWorkerHeaderList& cors_exposed_header_names) { | 87 const ServiceWorkerHeaderList& cors_exposed_header_names, |
| 88 bool did_navigation_preload) { |
| 80 was_fetched_via_service_worker_ = was_fetched_via_service_worker; | 89 was_fetched_via_service_worker_ = was_fetched_via_service_worker; |
| 81 was_fetched_via_foreign_fetch_ = was_fetched_via_foreign_fetch; | 90 was_fetched_via_foreign_fetch_ = was_fetched_via_foreign_fetch; |
| 82 was_fallback_required_ = was_fallback_required; | 91 was_fallback_required_ = was_fallback_required; |
| 83 url_list_via_service_worker_ = url_list_via_service_worker; | 92 url_list_via_service_worker_ = url_list_via_service_worker; |
| 84 response_type_via_service_worker_ = response_type_via_service_worker; | 93 response_type_via_service_worker_ = response_type_via_service_worker; |
| 85 response_is_in_cache_storage_ = response_is_in_cache_storage; | 94 response_is_in_cache_storage_ = response_is_in_cache_storage; |
| 86 response_cache_storage_cache_name_ = response_cache_storage_cache_name; | 95 response_cache_storage_cache_name_ = response_cache_storage_cache_name; |
| 87 cors_exposed_header_names_ = cors_exposed_header_names; | 96 cors_exposed_header_names_ = cors_exposed_header_names; |
| 88 | 97 |
| 89 // Update times, if not already set by a previous Job. | 98 // Update times, if not already set by a previous Job. |
| 90 if (service_worker_start_time_.is_null()) { | 99 if (service_worker_start_time_.is_null()) { |
| 91 service_worker_start_time_ = service_worker_start_time; | 100 service_worker_start_time_ = service_worker_start_time; |
| 92 service_worker_ready_time_ = service_worker_ready_time; | 101 service_worker_ready_time_ = service_worker_ready_time; |
| 93 } | 102 } |
| 103 |
| 104 did_navigation_preload_ = did_navigation_preload; |
| 94 } | 105 } |
| 95 | 106 |
| 96 void ServiceWorkerResponseInfo::ResetData() { | 107 void ServiceWorkerResponseInfo::ResetData() { |
| 97 was_fetched_via_service_worker_ = false; | 108 was_fetched_via_service_worker_ = false; |
| 98 was_fetched_via_foreign_fetch_ = false; | 109 was_fetched_via_foreign_fetch_ = false; |
| 99 was_fallback_required_ = false; | 110 was_fallback_required_ = false; |
| 100 url_list_via_service_worker_.clear(); | 111 url_list_via_service_worker_.clear(); |
| 101 response_type_via_service_worker_ = | 112 response_type_via_service_worker_ = |
| 102 blink::WebServiceWorkerResponseTypeDefault; | 113 blink::WebServiceWorkerResponseTypeDefault; |
| 114 // Don't reset |service_worker_start_time_| or |service_worker_ready_time_| |
| 115 // since it's historical timing information that should persist between job |
| 116 // restarts. |
| 103 response_is_in_cache_storage_ = false; | 117 response_is_in_cache_storage_ = false; |
| 104 response_cache_storage_cache_name_ = std::string(); | 118 response_cache_storage_cache_name_ = std::string(); |
| 105 cors_exposed_header_names_.clear(); | 119 cors_exposed_header_names_.clear(); |
| 120 // Don't reset the |did_navigation_preload_| flag. This is used for the |
| 121 // UseCounter, and if it was ever true for a request, it should remain true |
| 122 // even if the job restarts. |
| 106 } | 123 } |
| 107 | 124 |
| 108 ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {} | 125 ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {} |
| 109 | 126 |
| 110 } // namespace content | 127 } // namespace content |
| OLD | NEW |