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

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

Issue 2537953003: WebString: makes string16 conversions explicit (part 1: blink, content) (Closed)
Patch Set: fix Created 4 years 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/renderer/browser_plugin/browser_plugin.cc ('k') | content/renderer/clipboard_utils.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 <memory> 10 #include <memory>
11 #include <string> 11 #include <string>
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/lazy_instance.h" 14 #include "base/lazy_instance.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/metrics/histogram_macros.h" 16 #include "base/metrics/histogram_macros.h"
17 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
18 #include "base/threading/thread_local.h" 18 #include "base/threading/thread_local.h"
19 #include "content/child/thread_safe_sender.h" 19 #include "content/child/thread_safe_sender.h"
20 #include "content/common/cache_storage/cache_storage_messages.h" 20 #include "content/common/cache_storage/cache_storage_messages.h"
21 #include "content/public/common/referrer.h" 21 #include "content/public/common/referrer.h"
22 #include "content/public/renderer/render_thread.h" 22 #include "content/public/renderer/render_thread.h"
23 #include "content/renderer/service_worker/service_worker_type_util.h" 23 #include "content/renderer/service_worker/service_worker_type_util.h"
24 #include "third_party/WebKit/public/platform/StringVectorCopier.h"
24 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerCache.h" 25 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerCache.h"
25 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h" 26 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h"
26 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h" 27 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h"
27 #include "url/origin.h" 28 #include "url/origin.h"
28 29
29 using base::TimeTicks; 30 using base::TimeTicks;
30 31
31 namespace content { 32 namespace content {
32 33
33 using blink::WebServiceWorkerCacheError; 34 using blink::WebServiceWorkerCacheError;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 !web_response.cacheStorageCacheName().isNull(), 98 !web_response.cacheStorageCacheName().isNull(),
98 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names); 99 web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names);
99 } 100 }
100 101
101 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams( 102 CacheStorageCacheQueryParams QueryParamsFromWebQueryParams(
102 const blink::WebServiceWorkerCache::QueryParams& web_query_params) { 103 const blink::WebServiceWorkerCache::QueryParams& web_query_params) {
103 CacheStorageCacheQueryParams query_params; 104 CacheStorageCacheQueryParams query_params;
104 query_params.ignore_search = web_query_params.ignoreSearch; 105 query_params.ignore_search = web_query_params.ignoreSearch;
105 query_params.ignore_method = web_query_params.ignoreMethod; 106 query_params.ignore_method = web_query_params.ignoreMethod;
106 query_params.ignore_vary = web_query_params.ignoreVary; 107 query_params.ignore_vary = web_query_params.ignoreVary;
107 query_params.cache_name = web_query_params.cacheName; 108 query_params.cache_name =
109 blink::WebString::toNullableString16(web_query_params.cacheName);
108 return query_params; 110 return query_params;
109 } 111 }
110 112
111 CacheStorageCacheOperationType CacheOperationTypeFromWebCacheOperationType( 113 CacheStorageCacheOperationType CacheOperationTypeFromWebCacheOperationType(
112 blink::WebServiceWorkerCache::OperationType operation_type) { 114 blink::WebServiceWorkerCache::OperationType operation_type) {
113 switch (operation_type) { 115 switch (operation_type) {
114 case blink::WebServiceWorkerCache::OperationTypePut: 116 case blink::WebServiceWorkerCache::OperationTypePut:
115 return CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT; 117 return CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT;
116 case blink::WebServiceWorkerCache::OperationTypeDelete: 118 case blink::WebServiceWorkerCache::OperationTypeDelete:
117 return CACHE_STORAGE_CACHE_OPERATION_TYPE_DELETE; 119 return CACHE_STORAGE_CACHE_OPERATION_TYPE_DELETE;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 callbacks->onSuccess(); 321 callbacks->onSuccess();
320 delete_callbacks_.Remove(request_id); 322 delete_callbacks_.Remove(request_id);
321 delete_times_.erase(request_id); 323 delete_times_.erase(request_id);
322 } 324 }
323 325
324 void CacheStorageDispatcher::OnCacheStorageKeysSuccess( 326 void CacheStorageDispatcher::OnCacheStorageKeysSuccess(
325 int thread_id, 327 int thread_id,
326 int request_id, 328 int request_id,
327 const std::vector<base::string16>& keys) { 329 const std::vector<base::string16>& keys) {
328 DCHECK_EQ(thread_id, CurrentWorkerId()); 330 DCHECK_EQ(thread_id, CurrentWorkerId());
329 blink::WebVector<blink::WebString> webKeys(keys.size()); 331 blink::WebVector<blink::WebString> webKeys(
330 for (size_t i = 0; i < keys.size(); ++i) 332 blink::CopyStringVectorFromUTF16(keys));
331 webKeys[i] = keys[i];
332 333
333 UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Keys", 334 UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Keys",
334 TimeTicks::Now() - keys_times_[request_id]); 335 TimeTicks::Now() - keys_times_[request_id]);
335 WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks* callbacks = 336 WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks* callbacks =
336 keys_callbacks_.Lookup(request_id); 337 keys_callbacks_.Lookup(request_id);
337 callbacks->onSuccess(webKeys); 338 callbacks->onSuccess(webKeys);
338 keys_callbacks_.Remove(request_id); 339 keys_callbacks_.Remove(request_id);
339 keys_times_.erase(request_id); 340 keys_times_.erase(request_id);
340 } 341 }
341 342
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 } 515 }
515 516
516 void CacheStorageDispatcher::dispatchHas( 517 void CacheStorageDispatcher::dispatchHas(
517 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks> 518 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks>
518 callbacks, 519 callbacks,
519 const url::Origin& origin, 520 const url::Origin& origin,
520 const blink::WebString& cacheName) { 521 const blink::WebString& cacheName) {
521 int request_id = has_callbacks_.Add(std::move(callbacks)); 522 int request_id = has_callbacks_.Add(std::move(callbacks));
522 has_times_[request_id] = base::TimeTicks::Now(); 523 has_times_[request_id] = base::TimeTicks::Now();
523 Send(new CacheStorageHostMsg_CacheStorageHas(CurrentWorkerId(), request_id, 524 Send(new CacheStorageHostMsg_CacheStorageHas(CurrentWorkerId(), request_id,
524 origin, cacheName)); 525 origin, cacheName.utf16()));
525 } 526 }
526 527
527 void CacheStorageDispatcher::dispatchOpen( 528 void CacheStorageDispatcher::dispatchOpen(
528 std::unique_ptr< 529 std::unique_ptr<
529 WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks> callbacks, 530 WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks> callbacks,
530 const url::Origin& origin, 531 const url::Origin& origin,
531 const blink::WebString& cacheName) { 532 const blink::WebString& cacheName) {
532 int request_id = open_callbacks_.Add(std::move(callbacks)); 533 int request_id = open_callbacks_.Add(std::move(callbacks));
533 open_times_[request_id] = base::TimeTicks::Now(); 534 open_times_[request_id] = base::TimeTicks::Now();
534 Send(new CacheStorageHostMsg_CacheStorageOpen(CurrentWorkerId(), request_id, 535 Send(new CacheStorageHostMsg_CacheStorageOpen(CurrentWorkerId(), request_id,
535 origin, cacheName)); 536 origin, cacheName.utf16()));
536 } 537 }
537 538
538 void CacheStorageDispatcher::dispatchDelete( 539 void CacheStorageDispatcher::dispatchDelete(
539 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks> 540 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks>
540 callbacks, 541 callbacks,
541 const url::Origin& origin, 542 const url::Origin& origin,
542 const blink::WebString& cacheName) { 543 const blink::WebString& cacheName) {
543 int request_id = delete_callbacks_.Add(std::move(callbacks)); 544 int request_id = delete_callbacks_.Add(std::move(callbacks));
544 delete_times_[request_id] = base::TimeTicks::Now(); 545 delete_times_[request_id] = base::TimeTicks::Now();
545 Send(new CacheStorageHostMsg_CacheStorageDelete(CurrentWorkerId(), request_id, 546 Send(new CacheStorageHostMsg_CacheStorageDelete(CurrentWorkerId(), request_id,
546 origin, cacheName)); 547 origin, cacheName.utf16()));
547 } 548 }
548 549
549 void CacheStorageDispatcher::dispatchKeys( 550 void CacheStorageDispatcher::dispatchKeys(
550 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks> 551 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks>
551 callbacks, 552 callbacks,
552 const url::Origin& origin) { 553 const url::Origin& origin) {
553 int request_id = keys_callbacks_.Add(std::move(callbacks)); 554 int request_id = keys_callbacks_.Add(std::move(callbacks));
554 keys_times_[request_id] = base::TimeTicks::Now(); 555 keys_times_[request_id] = base::TimeTicks::Now();
555 Send(new CacheStorageHostMsg_CacheStorageKeys(CurrentWorkerId(), request_id, 556 Send(new CacheStorageHostMsg_CacheStorageKeys(CurrentWorkerId(), request_id,
556 origin)); 557 origin));
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 blink::WebServiceWorkerResponse* web_response) { 646 blink::WebServiceWorkerResponse* web_response) {
646 web_response->setURL(response.url); 647 web_response->setURL(response.url);
647 web_response->setStatus(response.status_code); 648 web_response->setStatus(response.status_code);
648 web_response->setStatusText(WebString::fromASCII(response.status_text)); 649 web_response->setStatusText(WebString::fromASCII(response.status_text));
649 web_response->setResponseType(response.response_type); 650 web_response->setResponseType(response.response_type);
650 web_response->setResponseTime(response.response_time.ToInternalValue()); 651 web_response->setResponseTime(response.response_time.ToInternalValue());
651 web_response->setCacheStorageCacheName( 652 web_response->setCacheStorageCacheName(
652 response.is_in_cache_storage 653 response.is_in_cache_storage
653 ? blink::WebString::fromUTF8(response.cache_storage_cache_name) 654 ? blink::WebString::fromUTF8(response.cache_storage_cache_name)
654 : blink::WebString()); 655 : blink::WebString());
655 blink::WebVector<blink::WebString> headers( 656 blink::WebVector<blink::WebString> headers =
656 response.cors_exposed_header_names.size()); 657 blink::CopyStringVectorFromLatin1(response.cors_exposed_header_names);
657 std::transform(
658 response.cors_exposed_header_names.begin(),
659 response.cors_exposed_header_names.end(), headers.begin(),
660 [](const std::string& h) { return blink::WebString::fromLatin1(h); });
661 web_response->setCorsExposedHeaderNames(headers); 658 web_response->setCorsExposedHeaderNames(headers);
662 659
663 for (const auto& i : response.headers) { 660 for (const auto& i : response.headers) {
664 web_response->setHeader(WebString::fromASCII(i.first), 661 web_response->setHeader(WebString::fromASCII(i.first),
665 WebString::fromASCII(i.second)); 662 WebString::fromASCII(i.second));
666 } 663 }
667 664
668 if (!response.blob_uuid.empty()) { 665 if (!response.blob_uuid.empty()) {
669 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid), 666 web_response->setBlob(blink::WebString::fromUTF8(response.blob_uuid),
670 response.blob_size); 667 response.blob_size);
671 // Let the host know that it can release its reference to the blob. 668 // Let the host know that it can release its reference to the blob.
672 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid)); 669 Send(new CacheStorageHostMsg_BlobDataHandled(response.blob_uuid));
673 } 670 }
674 } 671 }
675 672
676 blink::WebVector<blink::WebServiceWorkerResponse> 673 blink::WebVector<blink::WebServiceWorkerResponse>
677 CacheStorageDispatcher::WebResponsesFromResponses( 674 CacheStorageDispatcher::WebResponsesFromResponses(
678 const std::vector<ServiceWorkerResponse>& responses) { 675 const std::vector<ServiceWorkerResponse>& responses) {
679 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( 676 blink::WebVector<blink::WebServiceWorkerResponse> web_responses(
680 responses.size()); 677 responses.size());
681 for (size_t i = 0; i < responses.size(); ++i) 678 for (size_t i = 0; i < responses.size(); ++i)
682 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); 679 PopulateWebResponseFromResponse(responses[i], &(web_responses[i]));
683 return web_responses; 680 return web_responses;
684 } 681 }
685 682
686 } // namespace content 683 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/browser_plugin/browser_plugin.cc ('k') | content/renderer/clipboard_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698