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

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

Issue 2469353003: Skip base::string16 if not necessary for WebString <-> ASCII conversion (Closed)
Patch Set: minor fix Created 4 years, 1 month 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
« no previous file with comments | « content/child/simple_webmimeregistry_impl.cc ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 11 matching lines...) Expand all
22 #include "content/renderer/service_worker/service_worker_type_util.h" 22 #include "content/renderer/service_worker/service_worker_type_util.h"
23 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerCache.h" 23 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerCache.h"
24 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h" 24 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h"
25 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h" 25 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h"
26 #include "url/origin.h" 26 #include "url/origin.h"
27 27
28 using base::TimeTicks; 28 using base::TimeTicks;
29 29
30 namespace content { 30 namespace content {
31 31
32 using blink::WebServiceWorkerCacheError;
32 using blink::WebServiceWorkerCacheStorage; 33 using blink::WebServiceWorkerCacheStorage;
33 using blink::WebServiceWorkerCacheError;
34 using blink::WebServiceWorkerRequest; 34 using blink::WebServiceWorkerRequest;
35 using blink::WebString;
35 36
36 static base::LazyInstance<base::ThreadLocalPointer<CacheStorageDispatcher>>:: 37 static base::LazyInstance<base::ThreadLocalPointer<CacheStorageDispatcher>>::
37 Leaky g_cache_storage_dispatcher_tls = LAZY_INSTANCE_INITIALIZER; 38 Leaky g_cache_storage_dispatcher_tls = LAZY_INSTANCE_INITIALIZER;
38 39
39 namespace { 40 namespace {
40 41
41 CacheStorageDispatcher* const kHasBeenDeleted = 42 CacheStorageDispatcher* const kHasBeenDeleted =
42 reinterpret_cast<CacheStorageDispatcher*>(0x1); 43 reinterpret_cast<CacheStorageDispatcher*>(0x1);
43 44
44 ServiceWorkerFetchRequest FetchRequestFromWebRequest( 45 ServiceWorkerFetchRequest FetchRequestFromWebRequest(
45 const blink::WebServiceWorkerRequest& web_request) { 46 const blink::WebServiceWorkerRequest& web_request) {
46 ServiceWorkerHeaderMap headers; 47 ServiceWorkerHeaderMap headers;
47 GetServiceWorkerHeaderMapFromWebRequest(web_request, &headers); 48 GetServiceWorkerHeaderMapFromWebRequest(web_request, &headers);
48 49
49 return ServiceWorkerFetchRequest( 50 return ServiceWorkerFetchRequest(
50 web_request.url(), 51 web_request.url(), web_request.method().ascii(), headers,
51 base::UTF16ToASCII(base::StringPiece16(web_request.method())), headers,
52 Referrer(web_request.referrerUrl(), web_request.referrerPolicy()), 52 Referrer(web_request.referrerUrl(), web_request.referrerPolicy()),
53 web_request.isReload()); 53 web_request.isReload());
54 } 54 }
55 55
56 void PopulateWebRequestFromFetchRequest( 56 void PopulateWebRequestFromFetchRequest(
57 const ServiceWorkerFetchRequest& request, 57 const ServiceWorkerFetchRequest& request,
58 blink::WebServiceWorkerRequest* web_request) { 58 blink::WebServiceWorkerRequest* web_request) {
59 web_request->setURL(request.url); 59 web_request->setURL(request.url);
60 web_request->setMethod(base::ASCIIToUTF16(request.method)); 60 web_request->setMethod(WebString::fromASCII(request.method));
61 for (ServiceWorkerHeaderMap::const_iterator i = request.headers.begin(), 61 for (ServiceWorkerHeaderMap::const_iterator i = request.headers.begin(),
62 end = request.headers.end(); 62 end = request.headers.end();
63 i != end; ++i) { 63 i != end; ++i) {
64 web_request->setHeader(base::ASCIIToUTF16(i->first), 64 web_request->setHeader(WebString::fromASCII(i->first),
65 base::ASCIIToUTF16(i->second)); 65 WebString::fromASCII(i->second));
66 } 66 }
67 web_request->setReferrer(base::ASCIIToUTF16(request.referrer.url.spec()), 67 web_request->setReferrer(WebString::fromASCII(request.referrer.url.spec()),
68 request.referrer.policy); 68 request.referrer.policy);
69 web_request->setIsReload(request.is_reload); 69 web_request->setIsReload(request.is_reload);
70 } 70 }
71 71
72 blink::WebVector<blink::WebServiceWorkerRequest> WebRequestsFromRequests( 72 blink::WebVector<blink::WebServiceWorkerRequest> WebRequestsFromRequests(
73 const std::vector<ServiceWorkerFetchRequest>& requests) { 73 const std::vector<ServiceWorkerFetchRequest>& requests) {
74 blink::WebVector<blink::WebServiceWorkerRequest> web_requests( 74 blink::WebVector<blink::WebServiceWorkerRequest> web_requests(
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; 85 ServiceWorkerHeaderList cors_exposed_header_names;
86 GetCorsExposedHeaderNamesFromWebResponse(web_response, 86 GetCorsExposedHeaderNamesFromWebResponse(web_response,
87 &cors_exposed_header_names); 87 &cors_exposed_header_names);
88 // We don't support streaming for cache. 88 // We don't support streaming for cache.
89 DCHECK(web_response.streamURL().isEmpty()); 89 DCHECK(web_response.streamURL().isEmpty());
90 return ServiceWorkerResponse( 90 return ServiceWorkerResponse(
91 web_response.url(), web_response.status(), 91 web_response.url(), web_response.status(),
92 base::UTF16ToASCII(base::StringPiece16(web_response.statusText())), 92 web_response.statusText().ascii(), web_response.responseType(), headers,
93 web_response.responseType(), headers, 93 web_response.blobUUID().ascii(), web_response.blobSize(),
94 base::UTF16ToASCII(base::StringPiece16(web_response.blobUUID())), 94 web_response.streamURL(), blink::WebServiceWorkerResponseErrorUnknown,
95 web_response.blobSize(), web_response.streamURL(),
96 blink::WebServiceWorkerResponseErrorUnknown,
97 base::Time::FromInternalValue(web_response.responseTime()), 95 base::Time::FromInternalValue(web_response.responseTime()),
98 !web_response.cacheStorageCacheName().isNull(), 96 !web_response.cacheStorageCacheName().isNull(),
99 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names); 97 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names);
100 } 98 }
101 99
102 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams( 100 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams(
103 const blink::WebServiceWorkerCache::QueryParams& web_query_params) { 101 const blink::WebServiceWorkerCache::QueryParams& web_query_params) {
104 CacheStorageCacheQueryParams query_params; 102 CacheStorageCacheQueryParams query_params;
105 query_params.ignore_search = web_query_params.ignoreSearch; 103 query_params.ignore_search = web_query_params.ignoreSearch;
106 query_params.ignore_method = web_query_params.ignoreMethod; 104 query_params.ignore_method = web_query_params.ignoreMethod;
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 void CacheStorageDispatcher::OnWebCacheDestruction(int cache_id) { 627 void CacheStorageDispatcher::OnWebCacheDestruction(int cache_id) {
630 web_caches_.Remove(cache_id); 628 web_caches_.Remove(cache_id);
631 Send(new CacheStorageHostMsg_CacheClosed(cache_id)); 629 Send(new CacheStorageHostMsg_CacheClosed(cache_id));
632 } 630 }
633 631
634 void CacheStorageDispatcher::PopulateWebResponseFromResponse( 632 void CacheStorageDispatcher::PopulateWebResponseFromResponse(
635 const ServiceWorkerResponse& response, 633 const ServiceWorkerResponse& response,
636 blink::WebServiceWorkerResponse* web_response) { 634 blink::WebServiceWorkerResponse* web_response) {
637 web_response->setURL(response.url); 635 web_response->setURL(response.url);
638 web_response->setStatus(response.status_code); 636 web_response->setStatus(response.status_code);
639 web_response->setStatusText(base::ASCIIToUTF16(response.status_text)); 637 web_response->setStatusText(WebString::fromASCII(response.status_text));
640 web_response->setResponseType(response.response_type); 638 web_response->setResponseType(response.response_type);
641 web_response->setResponseTime(response.response_time.ToInternalValue()); 639 web_response->setResponseTime(response.response_time.ToInternalValue());
642 web_response->setCacheStorageCacheName( 640 web_response->setCacheStorageCacheName(
643 response.is_in_cache_storage 641 response.is_in_cache_storage
644 ? blink::WebString::fromUTF8(response.cache_storage_cache_name) 642 ? blink::WebString::fromUTF8(response.cache_storage_cache_name)
645 : blink::WebString()); 643 : blink::WebString());
646 blink::WebVector<blink::WebString> headers( 644 blink::WebVector<blink::WebString> headers(
647 response.cors_exposed_header_names.size()); 645 response.cors_exposed_header_names.size());
648 std::transform( 646 std::transform(
649 response.cors_exposed_header_names.begin(), 647 response.cors_exposed_header_names.begin(),
650 response.cors_exposed_header_names.end(), headers.begin(), 648 response.cors_exposed_header_names.end(), headers.begin(),
651 [](const std::string& h) { return blink::WebString::fromLatin1(h); }); 649 [](const std::string& h) { return blink::WebString::fromLatin1(h); });
652 web_response->setCorsExposedHeaderNames(headers); 650 web_response->setCorsExposedHeaderNames(headers);
653 651
654 for (const auto& i : response.headers) { 652 for (const auto& i : response.headers) {
655 web_response->setHeader(base::ASCIIToUTF16(i.first), 653 web_response->setHeader(WebString::fromASCII(i.first),
656 base::ASCIIToUTF16(i.second)); 654 WebString::fromASCII(i.second));
657 } 655 }
658 656
659 if (!response.blob_uuid.empty()) { 657 if (!response.blob_uuid.empty()) {
660 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid), 658 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid),
661 response.blob_size); 659 response.blob_size);
662 // Let the host know that it can release its reference to the blob. 660 // Let the host know that it can release its reference to the blob.
663 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid)); 661 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid));
664 } 662 }
665 } 663 }
666 664
667 blink::WebVector<blink::WebServiceWorkerResponse> 665 blink::WebVector<blink::WebServiceWorkerResponse>
668 CacheStorageDispatcher::WebResponsesFromResponses( 666 CacheStorageDispatcher::WebResponsesFromResponses(
669 const std::vector<ServiceWorkerResponse>& responses) { 667 const std::vector<ServiceWorkerResponse>& responses) {
670 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( 668 blink::WebVector<blink::WebServiceWorkerResponse> web_responses(
671 responses.size()); 669 responses.size());
672 for (size_t i = 0; i < responses.size(); ++i) 670 for (size_t i = 0; i < responses.size(); ++i)
673 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); 671 PopulateWebResponseFromResponse(responses[i], &(web_responses[i]));
674 return web_responses; 672 return web_responses;
675 } 673 }
676 674
677 } // namespace content 675 } // namespace content
OLDNEW
« no previous file with comments | « content/child/simple_webmimeregistry_impl.cc ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698