Chromium Code Reviews| 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 |