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 <memory> | |
10 #include <string> | 11 #include <string> |
11 #include <utility> | 12 #include <utility> |
12 | 13 |
13 #include "base/lazy_instance.h" | 14 #include "base/lazy_instance.h" |
14 #include "base/logging.h" | 15 #include "base/logging.h" |
15 #include "base/metrics/histogram_macros.h" | 16 #include "base/metrics/histogram_macros.h" |
16 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
17 #include "base/threading/thread_local.h" | 18 #include "base/threading/thread_local.h" |
18 #include "content/child/thread_safe_sender.h" | 19 #include "content/child/thread_safe_sender.h" |
19 #include "content/common/cache_storage/cache_storage_messages.h" | 20 #include "content/common/cache_storage/cache_storage_messages.h" |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
505 blink::WebServiceWorkerCacheError reason) { | 506 blink::WebServiceWorkerCacheError reason) { |
506 DCHECK_EQ(thread_id, CurrentWorkerId()); | 507 DCHECK_EQ(thread_id, CurrentWorkerId()); |
507 blink::WebServiceWorkerCache::CacheBatchCallbacks* callbacks = | 508 blink::WebServiceWorkerCache::CacheBatchCallbacks* callbacks = |
508 cache_batch_callbacks_.Lookup(request_id); | 509 cache_batch_callbacks_.Lookup(request_id); |
509 callbacks->onError(blink::WebServiceWorkerCacheError(reason)); | 510 callbacks->onError(blink::WebServiceWorkerCacheError(reason)); |
510 cache_batch_callbacks_.Remove(request_id); | 511 cache_batch_callbacks_.Remove(request_id); |
511 cache_batch_times_.erase(request_id); | 512 cache_batch_times_.erase(request_id); |
512 } | 513 } |
513 | 514 |
514 void CacheStorageDispatcher::dispatchHas( | 515 void CacheStorageDispatcher::dispatchHas( |
515 WebServiceWorkerCacheStorage::CacheStorageCallbacks* callbacks, | 516 WebServiceWorkerCacheStorage::CacheStorageCallbacks* callbacks, |
danakj
2016/11/18 00:15:33
and these?
| |
516 const url::Origin& origin, | 517 const url::Origin& origin, |
517 const blink::WebString& cacheName) { | 518 const blink::WebString& cacheName) { |
518 int request_id = has_callbacks_.Add(callbacks); | 519 int request_id = has_callbacks_.Add( |
520 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks>( | |
521 callbacks)); | |
519 has_times_[request_id] = base::TimeTicks::Now(); | 522 has_times_[request_id] = base::TimeTicks::Now(); |
520 Send(new CacheStorageHostMsg_CacheStorageHas(CurrentWorkerId(), request_id, | 523 Send(new CacheStorageHostMsg_CacheStorageHas(CurrentWorkerId(), request_id, |
521 origin, cacheName)); | 524 origin, cacheName)); |
522 } | 525 } |
523 | 526 |
524 void CacheStorageDispatcher::dispatchOpen( | 527 void CacheStorageDispatcher::dispatchOpen( |
525 WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks* callbacks, | 528 WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks* callbacks, |
526 const url::Origin& origin, | 529 const url::Origin& origin, |
527 const blink::WebString& cacheName) { | 530 const blink::WebString& cacheName) { |
528 int request_id = open_callbacks_.Add(callbacks); | 531 int request_id = open_callbacks_.Add( |
532 std::unique_ptr< | |
533 WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks>( | |
534 callbacks)); | |
529 open_times_[request_id] = base::TimeTicks::Now(); | 535 open_times_[request_id] = base::TimeTicks::Now(); |
530 Send(new CacheStorageHostMsg_CacheStorageOpen(CurrentWorkerId(), request_id, | 536 Send(new CacheStorageHostMsg_CacheStorageOpen(CurrentWorkerId(), request_id, |
531 origin, cacheName)); | 537 origin, cacheName)); |
532 } | 538 } |
533 | 539 |
534 void CacheStorageDispatcher::dispatchDelete( | 540 void CacheStorageDispatcher::dispatchDelete( |
535 WebServiceWorkerCacheStorage::CacheStorageCallbacks* callbacks, | 541 WebServiceWorkerCacheStorage::CacheStorageCallbacks* callbacks, |
536 const url::Origin& origin, | 542 const url::Origin& origin, |
537 const blink::WebString& cacheName) { | 543 const blink::WebString& cacheName) { |
538 int request_id = delete_callbacks_.Add(callbacks); | 544 int request_id = delete_callbacks_.Add( |
545 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageCallbacks>( | |
546 callbacks)); | |
539 delete_times_[request_id] = base::TimeTicks::Now(); | 547 delete_times_[request_id] = base::TimeTicks::Now(); |
540 Send(new CacheStorageHostMsg_CacheStorageDelete(CurrentWorkerId(), request_id, | 548 Send(new CacheStorageHostMsg_CacheStorageDelete(CurrentWorkerId(), request_id, |
541 origin, cacheName)); | 549 origin, cacheName)); |
542 } | 550 } |
543 | 551 |
544 void CacheStorageDispatcher::dispatchKeys( | 552 void CacheStorageDispatcher::dispatchKeys( |
545 WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks* callbacks, | 553 WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks* callbacks, |
546 const url::Origin& origin) { | 554 const url::Origin& origin) { |
547 int request_id = keys_callbacks_.Add(callbacks); | 555 int request_id = keys_callbacks_.Add( |
556 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks>( | |
557 callbacks)); | |
548 keys_times_[request_id] = base::TimeTicks::Now(); | 558 keys_times_[request_id] = base::TimeTicks::Now(); |
549 Send(new CacheStorageHostMsg_CacheStorageKeys(CurrentWorkerId(), request_id, | 559 Send(new CacheStorageHostMsg_CacheStorageKeys(CurrentWorkerId(), request_id, |
550 origin)); | 560 origin)); |
551 } | 561 } |
552 | 562 |
553 void CacheStorageDispatcher::dispatchMatch( | 563 void CacheStorageDispatcher::dispatchMatch( |
554 WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks* callbacks, | 564 WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks* callbacks, |
555 const url::Origin& origin, | 565 const url::Origin& origin, |
556 const blink::WebServiceWorkerRequest& request, | 566 const blink::WebServiceWorkerRequest& request, |
557 const blink::WebServiceWorkerCache::QueryParams& query_params) { | 567 const blink::WebServiceWorkerCache::QueryParams& query_params) { |
558 int request_id = match_callbacks_.Add(callbacks); | 568 int request_id = match_callbacks_.Add( |
569 std::unique_ptr<WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks>( | |
570 callbacks)); | |
559 match_times_[request_id] = base::TimeTicks::Now(); | 571 match_times_[request_id] = base::TimeTicks::Now(); |
560 Send(new CacheStorageHostMsg_CacheStorageMatch( | 572 Send(new CacheStorageHostMsg_CacheStorageMatch( |
561 CurrentWorkerId(), request_id, origin, | 573 CurrentWorkerId(), request_id, origin, |
562 FetchRequestFromWebRequest(request), | 574 FetchRequestFromWebRequest(request), |
563 QueryParamsFromWebQueryParams(query_params))); | 575 QueryParamsFromWebQueryParams(query_params))); |
564 } | 576 } |
565 | 577 |
566 void CacheStorageDispatcher::dispatchMatchForCache( | 578 void CacheStorageDispatcher::dispatchMatchForCache( |
567 int cache_id, | 579 int cache_id, |
568 blink::WebServiceWorkerCache::CacheMatchCallbacks* callbacks, | 580 blink::WebServiceWorkerCache::CacheMatchCallbacks* callbacks, |
569 const blink::WebServiceWorkerRequest& request, | 581 const blink::WebServiceWorkerRequest& request, |
570 const blink::WebServiceWorkerCache::QueryParams& query_params) { | 582 const blink::WebServiceWorkerCache::QueryParams& query_params) { |
571 int request_id = cache_match_callbacks_.Add(callbacks); | 583 int request_id = cache_match_callbacks_.Add( |
584 std::unique_ptr<blink::WebServiceWorkerCache::CacheMatchCallbacks>( | |
585 callbacks)); | |
572 cache_match_times_[request_id] = base::TimeTicks::Now(); | 586 cache_match_times_[request_id] = base::TimeTicks::Now(); |
573 | 587 |
574 Send(new CacheStorageHostMsg_CacheMatch( | 588 Send(new CacheStorageHostMsg_CacheMatch( |
575 CurrentWorkerId(), request_id, cache_id, | 589 CurrentWorkerId(), request_id, cache_id, |
576 FetchRequestFromWebRequest(request), | 590 FetchRequestFromWebRequest(request), |
577 QueryParamsFromWebQueryParams(query_params))); | 591 QueryParamsFromWebQueryParams(query_params))); |
578 } | 592 } |
579 | 593 |
580 void CacheStorageDispatcher::dispatchMatchAllForCache( | 594 void CacheStorageDispatcher::dispatchMatchAllForCache( |
581 int cache_id, | 595 int cache_id, |
582 blink::WebServiceWorkerCache::CacheWithResponsesCallbacks* callbacks, | 596 blink::WebServiceWorkerCache::CacheWithResponsesCallbacks* callbacks, |
583 const blink::WebServiceWorkerRequest& request, | 597 const blink::WebServiceWorkerRequest& request, |
584 const blink::WebServiceWorkerCache::QueryParams& query_params) { | 598 const blink::WebServiceWorkerCache::QueryParams& query_params) { |
585 int request_id = cache_match_all_callbacks_.Add(callbacks); | 599 int request_id = cache_match_all_callbacks_.Add( |
600 std::unique_ptr< | |
601 blink::WebServiceWorkerCache::CacheWithResponsesCallbacks>( | |
602 callbacks)); | |
586 cache_match_all_times_[request_id] = base::TimeTicks::Now(); | 603 cache_match_all_times_[request_id] = base::TimeTicks::Now(); |
587 | 604 |
588 Send(new CacheStorageHostMsg_CacheMatchAll( | 605 Send(new CacheStorageHostMsg_CacheMatchAll( |
589 CurrentWorkerId(), request_id, cache_id, | 606 CurrentWorkerId(), request_id, cache_id, |
590 FetchRequestFromWebRequest(request), | 607 FetchRequestFromWebRequest(request), |
591 QueryParamsFromWebQueryParams(query_params))); | 608 QueryParamsFromWebQueryParams(query_params))); |
592 } | 609 } |
593 | 610 |
594 void CacheStorageDispatcher::dispatchKeysForCache( | 611 void CacheStorageDispatcher::dispatchKeysForCache( |
595 int cache_id, | 612 int cache_id, |
596 blink::WebServiceWorkerCache::CacheWithRequestsCallbacks* callbacks, | 613 blink::WebServiceWorkerCache::CacheWithRequestsCallbacks* callbacks, |
597 const blink::WebServiceWorkerRequest& request, | 614 const blink::WebServiceWorkerRequest& request, |
598 const blink::WebServiceWorkerCache::QueryParams& query_params) { | 615 const blink::WebServiceWorkerCache::QueryParams& query_params) { |
599 int request_id = cache_keys_callbacks_.Add(callbacks); | 616 int request_id = cache_keys_callbacks_.Add( |
617 std::unique_ptr<blink::WebServiceWorkerCache::CacheWithRequestsCallbacks>( | |
618 callbacks)); | |
600 cache_keys_times_[request_id] = base::TimeTicks::Now(); | 619 cache_keys_times_[request_id] = base::TimeTicks::Now(); |
601 | 620 |
602 Send(new CacheStorageHostMsg_CacheKeys( | 621 Send(new CacheStorageHostMsg_CacheKeys( |
603 CurrentWorkerId(), request_id, cache_id, | 622 CurrentWorkerId(), request_id, cache_id, |
604 FetchRequestFromWebRequest(request), | 623 FetchRequestFromWebRequest(request), |
605 QueryParamsFromWebQueryParams(query_params))); | 624 QueryParamsFromWebQueryParams(query_params))); |
606 } | 625 } |
607 | 626 |
608 void CacheStorageDispatcher::dispatchBatchForCache( | 627 void CacheStorageDispatcher::dispatchBatchForCache( |
609 int cache_id, | 628 int cache_id, |
610 blink::WebServiceWorkerCache::CacheBatchCallbacks* callbacks, | 629 blink::WebServiceWorkerCache::CacheBatchCallbacks* callbacks, |
611 const blink::WebVector<blink::WebServiceWorkerCache::BatchOperation>& | 630 const blink::WebVector<blink::WebServiceWorkerCache::BatchOperation>& |
612 web_operations) { | 631 web_operations) { |
613 int request_id = cache_batch_callbacks_.Add(callbacks); | 632 int request_id = cache_batch_callbacks_.Add( |
633 std::unique_ptr<blink::WebServiceWorkerCache::CacheBatchCallbacks>( | |
634 callbacks)); | |
614 cache_batch_times_[request_id] = base::TimeTicks::Now(); | 635 cache_batch_times_[request_id] = base::TimeTicks::Now(); |
615 | 636 |
616 std::vector<CacheStorageBatchOperation> operations; | 637 std::vector<CacheStorageBatchOperation> operations; |
617 operations.reserve(web_operations.size()); | 638 operations.reserve(web_operations.size()); |
618 for (size_t i = 0; i < web_operations.size(); ++i) { | 639 for (size_t i = 0; i < web_operations.size(); ++i) { |
619 operations.push_back( | 640 operations.push_back( |
620 BatchOperationFromWebBatchOperation(web_operations[i])); | 641 BatchOperationFromWebBatchOperation(web_operations[i])); |
621 } | 642 } |
622 | 643 |
623 Send(new CacheStorageHostMsg_CacheBatch(CurrentWorkerId(), request_id, | 644 Send(new CacheStorageHostMsg_CacheBatch(CurrentWorkerId(), request_id, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
666 CacheStorageDispatcher::WebResponsesFromResponses( | 687 CacheStorageDispatcher::WebResponsesFromResponses( |
667 const std::vector<ServiceWorkerResponse>& responses) { | 688 const std::vector<ServiceWorkerResponse>& responses) { |
668 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( | 689 blink::WebVector<blink::WebServiceWorkerResponse> web_responses( |
669 responses.size()); | 690 responses.size()); |
670 for (size_t i = 0; i < responses.size(); ++i) | 691 for (size_t i = 0; i < responses.size(); ++i) |
671 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); | 692 PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); |
672 return web_responses; | 693 return web_responses; |
673 } | 694 } |
674 | 695 |
675 } // namespace content | 696 } // namespace content |
OLD | NEW |