| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/browser/service_worker/service_worker_context_wrapper.h" | 5 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 
| 6 | 6 | 
| 7 #include <map> | 7 #include <map> | 
| 8 #include <set> | 8 #include <set> | 
| 9 #include <string> | 9 #include <string> | 
| 10 #include <utility> | 10 #include <utility> | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 36 #include "third_party/WebKit/public/platform/modules/serviceworker/service_worke
      r_registration.mojom.h" | 36 #include "third_party/WebKit/public/platform/modules/serviceworker/service_worke
      r_registration.mojom.h" | 
| 37 | 37 | 
| 38 namespace content { | 38 namespace content { | 
| 39 | 39 | 
| 40 namespace { | 40 namespace { | 
| 41 | 41 | 
| 42 typedef std::set<std::string> HeaderNameSet; | 42 typedef std::set<std::string> HeaderNameSet; | 
| 43 base::LazyInstance<HeaderNameSet>::DestructorAtExit g_excluded_header_name_set = | 43 base::LazyInstance<HeaderNameSet>::DestructorAtExit g_excluded_header_name_set = | 
| 44     LAZY_INSTANCE_INITIALIZER; | 44     LAZY_INSTANCE_INITIALIZER; | 
| 45 | 45 | 
| 46 void RunSoon(const base::Closure& closure) { | 46 void RunSoonFunctionNumber21(const base::Closure& closure) { | 
| 47   base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); | 47   base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); | 
| 48 } | 48 } | 
| 49 | 49 | 
| 50 void WorkerStarted(const ServiceWorkerContextWrapper::StatusCallback& callback, | 50 void WorkerStarted(const ServiceWorkerContextWrapper::StatusCallback& callback, | 
| 51                    ServiceWorkerStatusCode status) { | 51                    ServiceWorkerStatusCode status) { | 
| 52   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 52   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 53   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 53   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 
| 54                           base::BindOnce(callback, status)); | 54                           base::BindOnce(callback, status)); | 
| 55 } | 55 } | 
| 56 | 56 | 
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 539       net::SimplifyUrlForRequest(document_url), | 539       net::SimplifyUrlForRequest(document_url), | 
| 540       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 540       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 
| 541                  this, callback)); | 541                  this, callback)); | 
| 542 } | 542 } | 
| 543 | 543 | 
| 544 void ServiceWorkerContextWrapper::FindReadyRegistrationForPattern( | 544 void ServiceWorkerContextWrapper::FindReadyRegistrationForPattern( | 
| 545     const GURL& scope, | 545     const GURL& scope, | 
| 546     const FindRegistrationCallback& callback) { | 546     const FindRegistrationCallback& callback) { | 
| 547   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 547   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 548   if (!context_core_) { | 548   if (!context_core_) { | 
| 549     RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, nullptr)); | 549     RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, nul
      lptr)); | 
| 550     return; | 550     return; | 
| 551   } | 551   } | 
| 552   context_core_->storage()->FindRegistrationForPattern( | 552   context_core_->storage()->FindRegistrationForPattern( | 
| 553       net::SimplifyUrlForRequest(scope), | 553       net::SimplifyUrlForRequest(scope), | 
| 554       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 554       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 
| 555                  this, callback)); | 555                  this, callback)); | 
| 556 } | 556 } | 
| 557 | 557 | 
| 558 void ServiceWorkerContextWrapper::FindReadyRegistrationForId( | 558 void ServiceWorkerContextWrapper::FindReadyRegistrationForId( | 
| 559     int64_t registration_id, | 559     int64_t registration_id, | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 583   context_core_->storage()->FindRegistrationForIdOnly( | 583   context_core_->storage()->FindRegistrationForIdOnly( | 
| 584       registration_id, | 584       registration_id, | 
| 585       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 585       base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 
| 586                  this, callback)); | 586                  this, callback)); | 
| 587 } | 587 } | 
| 588 | 588 | 
| 589 void ServiceWorkerContextWrapper::GetAllRegistrations( | 589 void ServiceWorkerContextWrapper::GetAllRegistrations( | 
| 590     const GetRegistrationsInfosCallback& callback) { | 590     const GetRegistrationsInfosCallback& callback) { | 
| 591   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 591   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 592   if (!context_core_) { | 592   if (!context_core_) { | 
| 593     RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, | 593     RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, | 
| 594                        std::vector<ServiceWorkerRegistrationInfo>())); | 594                        std::vector<ServiceWorkerRegistrationInfo>())); | 
| 595     return; | 595     return; | 
| 596   } | 596   } | 
| 597   context_core_->storage()->GetAllRegistrationsInfos(callback); | 597   context_core_->storage()->GetAllRegistrationsInfos(callback); | 
| 598 } | 598 } | 
| 599 | 599 | 
| 600 void ServiceWorkerContextWrapper::GetRegistrationUserData( | 600 void ServiceWorkerContextWrapper::GetRegistrationUserData( | 
| 601     int64_t registration_id, | 601     int64_t registration_id, | 
| 602     const std::vector<std::string>& keys, | 602     const std::vector<std::string>& keys, | 
| 603     const GetUserDataCallback& callback) { | 603     const GetUserDataCallback& callback) { | 
| 604   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 604   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 605   if (!context_core_) { | 605   if (!context_core_) { | 
| 606     RunSoon(base::Bind(callback, std::vector<std::string>(), | 606     RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::string>(), | 
| 607                        SERVICE_WORKER_ERROR_ABORT)); | 607                        SERVICE_WORKER_ERROR_ABORT)); | 
| 608     return; | 608     return; | 
| 609   } | 609   } | 
| 610   context_core_->storage()->GetUserData(registration_id, keys, callback); | 610   context_core_->storage()->GetUserData(registration_id, keys, callback); | 
| 611 } | 611 } | 
| 612 | 612 | 
| 613 void ServiceWorkerContextWrapper::GetRegistrationUserDataByKeyPrefix( | 613 void ServiceWorkerContextWrapper::GetRegistrationUserDataByKeyPrefix( | 
| 614     int64_t registration_id, | 614     int64_t registration_id, | 
| 615     const std::string& key_prefix, | 615     const std::string& key_prefix, | 
| 616     const GetUserDataCallback& callback) { | 616     const GetUserDataCallback& callback) { | 
| 617   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 617   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 618   if (!context_core_) { | 618   if (!context_core_) { | 
| 619     RunSoon(base::Bind(callback, std::vector<std::string>(), | 619     RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::string>(), | 
| 620                        SERVICE_WORKER_ERROR_ABORT)); | 620                        SERVICE_WORKER_ERROR_ABORT)); | 
| 621     return; | 621     return; | 
| 622   } | 622   } | 
| 623   context_core_->storage()->GetUserDataByKeyPrefix(registration_id, key_prefix, | 623   context_core_->storage()->GetUserDataByKeyPrefix(registration_id, key_prefix, | 
| 624                                                    callback); | 624                                                    callback); | 
| 625 } | 625 } | 
| 626 | 626 | 
| 627 void ServiceWorkerContextWrapper::StoreRegistrationUserData( | 627 void ServiceWorkerContextWrapper::StoreRegistrationUserData( | 
| 628     int64_t registration_id, | 628     int64_t registration_id, | 
| 629     const GURL& origin, | 629     const GURL& origin, | 
| 630     const std::vector<std::pair<std::string, std::string>>& key_value_pairs, | 630     const std::vector<std::pair<std::string, std::string>>& key_value_pairs, | 
| 631     const StatusCallback& callback) { | 631     const StatusCallback& callback) { | 
| 632   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 632   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 633   if (!context_core_) { | 633   if (!context_core_) { | 
| 634     RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 634     RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 
| 635     return; | 635     return; | 
| 636   } | 636   } | 
| 637   context_core_->storage()->StoreUserData(registration_id, origin.GetOrigin(), | 637   context_core_->storage()->StoreUserData(registration_id, origin.GetOrigin(), | 
| 638                                           key_value_pairs, callback); | 638                                           key_value_pairs, callback); | 
| 639 } | 639 } | 
| 640 | 640 | 
| 641 void ServiceWorkerContextWrapper::ClearRegistrationUserData( | 641 void ServiceWorkerContextWrapper::ClearRegistrationUserData( | 
| 642     int64_t registration_id, | 642     int64_t registration_id, | 
| 643     const std::vector<std::string>& keys, | 643     const std::vector<std::string>& keys, | 
| 644     const StatusCallback& callback) { | 644     const StatusCallback& callback) { | 
| 645   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 645   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 646   if (!context_core_) { | 646   if (!context_core_) { | 
| 647     RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 647     RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 
| 648     return; | 648     return; | 
| 649   } | 649   } | 
| 650   context_core_->storage()->ClearUserData(registration_id, keys, callback); | 650   context_core_->storage()->ClearUserData(registration_id, keys, callback); | 
| 651 } | 651 } | 
| 652 | 652 | 
| 653 void ServiceWorkerContextWrapper::ClearRegistrationUserDataByKeyPrefixes( | 653 void ServiceWorkerContextWrapper::ClearRegistrationUserDataByKeyPrefixes( | 
| 654     int64_t registration_id, | 654     int64_t registration_id, | 
| 655     const std::vector<std::string>& key_prefixes, | 655     const std::vector<std::string>& key_prefixes, | 
| 656     const StatusCallback& callback) { | 656     const StatusCallback& callback) { | 
| 657   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 657   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 658   if (!context_core_) { | 658   if (!context_core_) { | 
| 659     RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 659     RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 
| 660     return; | 660     return; | 
| 661   } | 661   } | 
| 662   context_core_->storage()->ClearUserDataByKeyPrefixes(registration_id, | 662   context_core_->storage()->ClearUserDataByKeyPrefixes(registration_id, | 
| 663                                                        key_prefixes, callback); | 663                                                        key_prefixes, callback); | 
| 664 } | 664 } | 
| 665 | 665 | 
| 666 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrations( | 666 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrations( | 
| 667     const std::string& key, | 667     const std::string& key, | 
| 668     const GetUserDataForAllRegistrationsCallback& callback) { | 668     const GetUserDataForAllRegistrationsCallback& callback) { | 
| 669   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 669   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 670   if (!context_core_) { | 670   if (!context_core_) { | 
| 671     RunSoon(base::Bind(callback, std::vector<std::pair<int64_t, std::string>>(), | 671     RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::pair<int64_t, 
      std::string>>(), | 
| 672                        SERVICE_WORKER_ERROR_ABORT)); | 672                        SERVICE_WORKER_ERROR_ABORT)); | 
| 673     return; | 673     return; | 
| 674   } | 674   } | 
| 675   context_core_->storage()->GetUserDataForAllRegistrations(key, callback); | 675   context_core_->storage()->GetUserDataForAllRegistrations(key, callback); | 
| 676 } | 676 } | 
| 677 | 677 | 
| 678 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrationsByKeyPrefix( | 678 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrationsByKeyPrefix( | 
| 679     const std::string& key_prefix, | 679     const std::string& key_prefix, | 
| 680     const GetUserDataForAllRegistrationsCallback& callback) { | 680     const GetUserDataForAllRegistrationsCallback& callback) { | 
| 681   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 681   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 682   if (!context_core_) { | 682   if (!context_core_) { | 
| 683     RunSoon(base::Bind(callback, std::vector<std::pair<int64_t, std::string>>(), | 683     RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::pair<int64_t, 
      std::string>>(), | 
| 684                        SERVICE_WORKER_ERROR_ABORT)); | 684                        SERVICE_WORKER_ERROR_ABORT)); | 
| 685     return; | 685     return; | 
| 686   } | 686   } | 
| 687   context_core_->storage()->GetUserDataForAllRegistrationsByKeyPrefix( | 687   context_core_->storage()->GetUserDataForAllRegistrationsByKeyPrefix( | 
| 688       key_prefix, callback); | 688       key_prefix, callback); | 
| 689 } | 689 } | 
| 690 | 690 | 
| 691 void ServiceWorkerContextWrapper::StartServiceWorker( | 691 void ServiceWorkerContextWrapper::StartServiceWorker( | 
| 692     const GURL& pattern, | 692     const GURL& pattern, | 
| 693     const StatusCallback& callback) { | 693     const StatusCallback& callback) { | 
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1025   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 1025   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 
| 1026                           base::BindOnce(std::move(callback), result)); | 1026                           base::BindOnce(std::move(callback), result)); | 
| 1027 } | 1027 } | 
| 1028 | 1028 | 
| 1029 ServiceWorkerContextCore* ServiceWorkerContextWrapper::context() { | 1029 ServiceWorkerContextCore* ServiceWorkerContextWrapper::context() { | 
| 1030   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 1030   DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| 1031   return context_core_.get(); | 1031   return context_core_.get(); | 
| 1032 } | 1032 } | 
| 1033 | 1033 | 
| 1034 }  // namespace content | 1034 }  // namespace content | 
| OLD | NEW | 
|---|