| 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/renderer/cache_storage/cache_storage_dispatcher.h" | 5 #include "content/renderer/cache_storage/cache_storage_dispatcher.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 requests.size()); | 75 requests.size()); |
| 76 for (size_t i = 0; i < requests.size(); ++i) | 76 for (size_t i = 0; i < requests.size(); ++i) |
| 77 PopulateWebRequestFromFetchRequest(requests[i], &(web_requests[i])); | 77 PopulateWebRequestFromFetchRequest(requests[i], &(web_requests[i])); |
| 78 return web_requests; | 78 return web_requests; |
| 79 } | 79 } |
| 80 | 80 |
| 81 ServiceWorkerResponse ResponseFromWebResponse( | 81 ServiceWorkerResponse ResponseFromWebResponse( |
| 82 const blink::WebServiceWorkerResponse& web_response) { | 82 const blink::WebServiceWorkerResponse& web_response) { |
| 83 ServiceWorkerHeaderMap headers; | 83 ServiceWorkerHeaderMap headers; |
| 84 GetServiceWorkerHeaderMapFromWebResponse(web_response, &headers); | 84 GetServiceWorkerHeaderMapFromWebResponse(web_response, &headers); |
| 85 ServiceWorkerHeaderList cors_exposed_header_names; |
| 86 GetCorsExposedHeaderNamesFromWebResponse(web_response, |
| 87 &cors_exposed_header_names); |
| 85 // We don't support streaming for cache. | 88 // We don't support streaming for cache. |
| 86 DCHECK(web_response.streamURL().isEmpty()); | 89 DCHECK(web_response.streamURL().isEmpty()); |
| 87 return ServiceWorkerResponse( | 90 return ServiceWorkerResponse( |
| 88 web_response.url(), web_response.status(), | 91 web_response.url(), web_response.status(), |
| 89 base::UTF16ToASCII(base::StringPiece16(web_response.statusText())), | 92 base::UTF16ToASCII(base::StringPiece16(web_response.statusText())), |
| 90 web_response.responseType(), headers, | 93 web_response.responseType(), headers, |
| 91 base::UTF16ToASCII(base::StringPiece16(web_response.blobUUID())), | 94 base::UTF16ToASCII(base::StringPiece16(web_response.blobUUID())), |
| 92 web_response.blobSize(), web_response.streamURL(), | 95 web_response.blobSize(), web_response.streamURL(), |
| 93 blink::WebServiceWorkerResponseErrorUnknown, | 96 blink::WebServiceWorkerResponseErrorUnknown, |
| 94 base::Time::FromInternalValue(web_response.responseTime()), | 97 base::Time::FromInternalValue(web_response.responseTime()), |
| 95 !web_response.cacheStorageCacheName().isNull(), | 98 !web_response.cacheStorageCacheName().isNull(), |
| 96 web_response.cacheStorageCacheName().utf8()); | 99 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names); |
| 97 } | 100 } |
| 98 | 101 |
| 99 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams( | 102 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams( |
| 100 const blink::WebServiceWorkerCache::QueryParams& web_query_params) { | 103 const blink::WebServiceWorkerCache::QueryParams& web_query_params) { |
| 101 CacheStorageCacheQueryParams query_params; | 104 CacheStorageCacheQueryParams query_params; |
| 102 query_params.ignore_search = web_query_params.ignoreSearch; | 105 query_params.ignore_search = web_query_params.ignoreSearch; |
| 103 query_params.ignore_method = web_query_params.ignoreMethod; | 106 query_params.ignore_method = web_query_params.ignoreMethod; |
| 104 query_params.ignore_vary = web_query_params.ignoreVary; | 107 query_params.ignore_vary = web_query_params.ignoreVary; |
| 105 query_params.cache_name = web_query_params.cacheName; | 108 query_params.cache_name = web_query_params.cacheName; |
| 106 return query_params; | 109 return query_params; |
| (...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 blink::WebServiceWorkerResponse* web_response) { | 651 blink::WebServiceWorkerResponse* web_response) { |
| 649 web_response->setURL(response.url); | 652 web_response->setURL(response.url); |
| 650 web_response->setStatus(response.status_code); | 653 web_response->setStatus(response.status_code); |
| 651 web_response->setStatusText(base::ASCIIToUTF16(response.status_text)); | 654 web_response->setStatusText(base::ASCIIToUTF16(response.status_text)); |
| 652 web_response->setResponseType(response.response_type); | 655 web_response->setResponseType(response.response_type); |
| 653 web_response->setResponseTime(response.response_time.ToInternalValue()); | 656 web_response->setResponseTime(response.response_time.ToInternalValue()); |
| 654 web_response->setCacheStorageCacheName( | 657 web_response->setCacheStorageCacheName( |
| 655 response.is_in_cache_storage | 658 response.is_in_cache_storage |
| 656 ? blink::WebString::fromUTF8(response.cache_storage_cache_name) | 659 ? blink::WebString::fromUTF8(response.cache_storage_cache_name) |
| 657 : blink::WebString()); | 660 : blink::WebString()); |
| 661 blink::WebVector<blink::WebString> headers( |
| 662 response.cors_exposed_header_names.size()); |
| 663 std::transform( |
| 664 response.cors_exposed_header_names.begin(), |
| 665 response.cors_exposed_header_names.end(), headers.begin(), |
| 666 [](const std::string& h) { return blink::WebString::fromLatin1(h); }); |
| 667 web_response->setCorsExposedHeaderNames(headers); |
| 658 | 668 |
| 659 for (const auto& i : response.headers) { | 669 for (const auto& i : response.headers) { |
| 660 web_response->setHeader(base::ASCIIToUTF16(i.first), | 670 web_response->setHeader(base::ASCIIToUTF16(i.first), |
| 661 base::ASCIIToUTF16(i.second)); | 671 base::ASCIIToUTF16(i.second)); |
| 662 } | 672 } |
| 663 | 673 |
| 664 if (!response.blob_uuid.empty()) { | 674 if (!response.blob_uuid.empty()) { |
| 665 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid), | 675 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid), |
| 666 response.blob_size); | 676 response.blob_size); |
| 667 // Let the host know that it can release its reference to the blob. | 677 // Let the host know that it can release its reference to the blob. |
| 668 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid)); | 678 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid)); |
| 669 } | 679 } |
| 670 } | 680 } |
| 671 | 681 |
| 672 blink::WebVector<blink::WebServiceWorkerResponse> | 682 blink::WebVector<blink::WebServiceWorkerResponse> |
| 673 CacheStorageDispatcher::WebResponsesFromResponses( | 683 CacheStorageDispatcher::WebResponsesFromResponses( |
| 674 const std::vector<ServiceWorkerResponse>& responses) { | 684 const std::vector<ServiceWorkerResponse>& responses) { |
| 675 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( | 685 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( |
| 676 responses.size()); | 686 responses.size()); |
| 677 for (size_t i = 0; i < responses.size(); ++i) | 687 for (size_t i = 0; i < responses.size(); ++i) |
| 678 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); | 688 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); |
| 679 return web_responses; | 689 return web_responses; |
| 680 } | 690 } |
| 681 | 691 |
| 682 } // namespace content | 692 } // namespace content |
| OLD | NEW |