OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
246 "Service Worker navigation preload aborted. Need to guard with " | 246 "Service Worker navigation preload aborted. Need to guard with " |
247 "respondWith or waitUntil."))); | 247 "respondWith or waitUntil."))); |
248 } | 248 } |
249 | 249 |
250 void OnReceiveResponse( | 250 void OnReceiveResponse( |
251 const ResourceResponseHead& response_head, | 251 const ResourceResponseHead& response_head, |
252 mojom::DownloadedTempFilePtr downloaded_file) override { | 252 mojom::DownloadedTempFilePtr downloaded_file) override { |
253 DCHECK(!response_); | 253 DCHECK(!response_); |
254 DCHECK(!downloaded_file); | 254 DCHECK(!downloaded_file); |
255 response_ = base::MakeUnique<blink::WebServiceWorkerResponse>(); | 255 response_ = base::MakeUnique<blink::WebServiceWorkerResponse>(); |
256 response_->setURL(url_); | 256 std::vector<blink::WebURL> url_list; |
257 url_list.push_back(url_); | |
falken
2016/12/05 04:32:42
nit: could do url_list = {url_} here
horo
2016/12/05 04:58:32
Done.
| |
258 response_->setURLList(url_list); | |
257 DCHECK(response_head.headers); | 259 DCHECK(response_head.headers); |
258 response_->setStatus(response_head.headers->response_code()); | 260 response_->setStatus(response_head.headers->response_code()); |
259 response_->setStatusText( | 261 response_->setStatusText( |
260 blink::WebString::fromUTF8(response_head.headers->GetStatusText())); | 262 blink::WebString::fromUTF8(response_head.headers->GetStatusText())); |
261 response_->setResponseType(blink::WebServiceWorkerResponseTypeBasic); | 263 response_->setResponseType(blink::WebServiceWorkerResponseTypeBasic); |
262 size_t iter = 0; | 264 size_t iter = 0; |
263 std::string header_name; | 265 std::string header_name; |
264 std::string header_value; | 266 std::string header_value; |
265 while (response_head.headers->EnumerateHeaderLines(&iter, &header_name, | 267 while (response_head.headers->EnumerateHeaderLines(&iter, &header_name, |
266 &header_value)) { | 268 &header_value)) { |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
686 Send(new ServiceWorkerHostMsg_FetchEventResponse( | 688 Send(new ServiceWorkerHostMsg_FetchEventResponse( |
687 GetRoutingID(), fetch_event_id, | 689 GetRoutingID(), fetch_event_id, |
688 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, ServiceWorkerResponse(), | 690 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, ServiceWorkerResponse(), |
689 base::Time::FromDoubleT(event_dispatch_time))); | 691 base::Time::FromDoubleT(event_dispatch_time))); |
690 } | 692 } |
691 | 693 |
692 void ServiceWorkerContextClient::respondToFetchEvent( | 694 void ServiceWorkerContextClient::respondToFetchEvent( |
693 int fetch_event_id, | 695 int fetch_event_id, |
694 const blink::WebServiceWorkerResponse& web_response, | 696 const blink::WebServiceWorkerResponse& web_response, |
695 double event_dispatch_time) { | 697 double event_dispatch_time) { |
696 ServiceWorkerHeaderMap headers; | |
697 GetServiceWorkerHeaderMapFromWebResponse(web_response, &headers); | |
698 ServiceWorkerHeaderList cors_exposed_header_names; | |
699 GetCorsExposedHeaderNamesFromWebResponse(web_response, | |
700 &cors_exposed_header_names); | |
701 ServiceWorkerResponse response( | |
702 web_response.url(), web_response.status(), | |
703 web_response.statusText().utf8(), web_response.responseType(), headers, | |
704 web_response.blobUUID().utf8(), web_response.blobSize(), | |
705 web_response.streamURL(), web_response.error(), | |
706 base::Time::FromInternalValue(web_response.responseTime()), | |
707 !web_response.cacheStorageCacheName().isNull(), | |
708 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names); | |
709 Send(new ServiceWorkerHostMsg_FetchEventResponse( | 698 Send(new ServiceWorkerHostMsg_FetchEventResponse( |
710 GetRoutingID(), fetch_event_id, | 699 GetRoutingID(), fetch_event_id, |
711 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, response, | 700 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, |
701 GetServiceWorkerResponseFromWebResponse(web_response), | |
712 base::Time::FromDoubleT(event_dispatch_time))); | 702 base::Time::FromDoubleT(event_dispatch_time))); |
713 } | 703 } |
714 | 704 |
715 void ServiceWorkerContextClient::didHandleFetchEvent( | 705 void ServiceWorkerContextClient::didHandleFetchEvent( |
716 int fetch_event_id, | 706 int fetch_event_id, |
717 blink::WebServiceWorkerEventResult result, | 707 blink::WebServiceWorkerEventResult result, |
718 double event_dispatch_time) { | 708 double event_dispatch_time) { |
719 if (context_->preload_requests.Lookup(fetch_event_id)) { | 709 if (context_->preload_requests.Lookup(fetch_event_id)) { |
720 // Deletes NavigationPreloadRequest. If the network request is ongoing, it | 710 // Deletes NavigationPreloadRequest. If the network request is ongoing, it |
721 // will be canceled by deleting the mojom::URLLoaderPtr in the | 711 // will be canceled by deleting the mojom::URLLoaderPtr in the |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1275 } | 1265 } |
1276 | 1266 |
1277 base::WeakPtr<ServiceWorkerContextClient> | 1267 base::WeakPtr<ServiceWorkerContextClient> |
1278 ServiceWorkerContextClient::GetWeakPtr() { | 1268 ServiceWorkerContextClient::GetWeakPtr() { |
1279 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1269 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
1280 DCHECK(context_); | 1270 DCHECK(context_); |
1281 return context_->weak_factory.GetWeakPtr(); | 1271 return context_->weak_factory.GetWeakPtr(); |
1282 } | 1272 } |
1283 | 1273 |
1284 } // namespace content | 1274 } // namespace content |
OLD | NEW |