Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: content/renderer/cache_storage/cache_storage_dispatcher.cc

Issue 1965013002: Implement headers attributes in ForeignFetchResponse (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: using instead of typedef Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/public/common/resource_response_info.h ('k') | content/renderer/service_worker/service_worker_context_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698