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_context_request_handler.
h" | 5 #include "content/browser/service_worker/service_worker_context_request_handler.
h" |
6 | 6 |
7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
8 #include "content/browser/service_worker/service_worker_context_core.h" | 8 #include "content/browser/service_worker/service_worker_context_core.h" |
9 #include "content/browser/service_worker/service_worker_provider_host.h" | 9 #include "content/browser/service_worker/service_worker_provider_host.h" |
10 #include "content/browser/service_worker/service_worker_read_from_cache_job.h" | 10 #include "content/browser/service_worker/service_worker_read_from_cache_job.h" |
11 #include "content/browser/service_worker/service_worker_storage.h" | 11 #include "content/browser/service_worker/service_worker_storage.h" |
12 #include "content/browser/service_worker/service_worker_version.h" | 12 #include "content/browser/service_worker/service_worker_version.h" |
13 #include "content/browser/service_worker/service_worker_write_to_cache_job.h" | 13 #include "content/browser/service_worker/service_worker_write_to_cache_job.h" |
14 #include "content/public/browser/resource_context.h" | 14 #include "content/public/browser/resource_context.h" |
| 15 #include "content/public/common/resource_response_info.h" |
15 #include "net/base/load_flags.h" | 16 #include "net/base/load_flags.h" |
16 #include "net/url_request/url_request.h" | 17 #include "net/url_request/url_request.h" |
17 | 18 |
18 namespace content { | 19 namespace content { |
19 | 20 |
20 ServiceWorkerContextRequestHandler::ServiceWorkerContextRequestHandler( | 21 ServiceWorkerContextRequestHandler::ServiceWorkerContextRequestHandler( |
21 base::WeakPtr<ServiceWorkerContextCore> context, | 22 base::WeakPtr<ServiceWorkerContextCore> context, |
22 base::WeakPtr<ServiceWorkerProviderHost> provider_host, | 23 base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
23 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, | 24 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, |
24 ResourceType resource_type) | 25 ResourceType resource_type) |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 if (ShouldReadFromScriptCache(request->url(), &response_id)) { | 87 if (ShouldReadFromScriptCache(request->url(), &response_id)) { |
87 return new ServiceWorkerReadFromCacheJob( | 88 return new ServiceWorkerReadFromCacheJob( |
88 request, network_delegate, context_, version_, response_id); | 89 request, network_delegate, context_, version_, response_id); |
89 } | 90 } |
90 | 91 |
91 // NULL means use the network. | 92 // NULL means use the network. |
92 return NULL; | 93 return NULL; |
93 } | 94 } |
94 | 95 |
95 void ServiceWorkerContextRequestHandler::GetExtraResponseInfo( | 96 void ServiceWorkerContextRequestHandler::GetExtraResponseInfo( |
96 bool* was_fetched_via_service_worker, | 97 ResourceResponseInfo* response_info) const { |
97 bool* was_fallback_required_by_service_worker, | 98 response_info->was_fetched_via_service_worker = false; |
98 GURL* original_url_via_service_worker, | 99 response_info->was_fallback_required_by_service_worker = false; |
99 blink::WebServiceWorkerResponseType* response_type_via_service_worker, | 100 response_info->original_url_via_service_worker = GURL(); |
100 base::TimeTicks* worker_start_time) const { | 101 response_info->response_type_via_service_worker = |
101 *was_fetched_via_service_worker = false; | |
102 *was_fallback_required_by_service_worker = false; | |
103 *original_url_via_service_worker = GURL(); | |
104 *response_type_via_service_worker = | |
105 blink::WebServiceWorkerResponseTypeDefault; | 102 blink::WebServiceWorkerResponseTypeDefault; |
106 } | 103 } |
107 | 104 |
108 bool ServiceWorkerContextRequestHandler::ShouldAddToScriptCache( | 105 bool ServiceWorkerContextRequestHandler::ShouldAddToScriptCache( |
109 const GURL& url) { | 106 const GURL& url) { |
110 // We only write imports that occur during the initial eval. | 107 // We only write imports that occur during the initial eval. |
111 if (version_->status() != ServiceWorkerVersion::NEW && | 108 if (version_->status() != ServiceWorkerVersion::NEW && |
112 version_->status() != ServiceWorkerVersion::INSTALLING) { | 109 version_->status() != ServiceWorkerVersion::INSTALLING) { |
113 return false; | 110 return false; |
114 } | 111 } |
115 return version_->script_cache_map()->LookupResourceId(url) == | 112 return version_->script_cache_map()->LookupResourceId(url) == |
116 kInvalidServiceWorkerResponseId; | 113 kInvalidServiceWorkerResponseId; |
117 } | 114 } |
118 | 115 |
119 bool ServiceWorkerContextRequestHandler::ShouldReadFromScriptCache( | 116 bool ServiceWorkerContextRequestHandler::ShouldReadFromScriptCache( |
120 const GURL& url, int64* response_id_out) { | 117 const GURL& url, int64* response_id_out) { |
121 // We don't read from the script cache until the version is INSTALLED. | 118 // We don't read from the script cache until the version is INSTALLED. |
122 if (version_->status() == ServiceWorkerVersion::NEW || | 119 if (version_->status() == ServiceWorkerVersion::NEW || |
123 version_->status() == ServiceWorkerVersion::INSTALLING) | 120 version_->status() == ServiceWorkerVersion::INSTALLING) |
124 return false; | 121 return false; |
125 *response_id_out = version_->script_cache_map()->LookupResourceId(url); | 122 *response_id_out = version_->script_cache_map()->LookupResourceId(url); |
126 return *response_id_out != kInvalidServiceWorkerResponseId; | 123 return *response_id_out != kInvalidServiceWorkerResponseId; |
127 } | 124 } |
128 | 125 |
129 } // namespace content | 126 } // namespace content |
OLD | NEW |