 Chromium Code Reviews
 Chromium Code Reviews Issue 1146913004:
  Service Worker: Add ServiceWorkerContainer.getRegistrations() method.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1146913004:
  Service Worker: Add ServiceWorkerContainer.getRegistrations() method.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: content/browser/service_worker/service_worker_database.cc | 
| diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc | 
| index fca967cf830e8081ddeb5d20e2f2bab5de766379..676bfbc44a1610105fe0caac47fd52d0154c169b 100644 | 
| --- a/content/browser/service_worker/service_worker_database.cc | 
| +++ b/content/browser/service_worker/service_worker_database.cc | 
| @@ -437,7 +437,8 @@ ServiceWorkerDatabase::GetOriginsWithRegistrations(std::set<GURL>* origins) { | 
| ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetRegistrationsForOrigin( | 
| const GURL& origin, | 
| - std::vector<RegistrationData>* registrations) { | 
| + std::vector<RegistrationData>* registrations, | 
| + std::vector<std::vector<ResourceRecord>>* opt_resources_list) { | 
| DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 
| DCHECK(registrations->empty()); | 
| @@ -452,7 +453,8 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetRegistrationsForOrigin( | 
| "%s%s%c", kRegKeyPrefix, origin.spec().c_str(), kKeySeparator); | 
| scoped_ptr<leveldb::Iterator> itr(db_->NewIterator(leveldb::ReadOptions())); | 
| - for (itr->Seek(prefix); itr->Valid(); itr->Next()) { | 
| + size_t index = 0; | 
| + for (itr->Seek(prefix); itr->Valid(); itr->Next(), ++index) { | 
| 
falken
2015/06/08 04:59:09
|index| is not used?
 
jungkees
2015/06/08 16:00:19
No, it isn't. I removed it.
 | 
| status = LevelDBStatusToStatus(itr->status()); | 
| if (status != STATUS_OK) { | 
| HandleReadResult(FROM_HERE, status); | 
| @@ -471,6 +473,17 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetRegistrationsForOrigin( | 
| return status; | 
| } | 
| registrations->push_back(registration); | 
| + | 
| + if (opt_resources_list) { | 
| + std::vector<ResourceRecord> resources; | 
| + status = ReadResourceRecords(registration.version_id, &resources); | 
| + if (status != STATUS_OK) { | 
| + HandleReadResult(FROM_HERE, status); | 
| + opt_resources_list->clear(); | 
| + return status; | 
| + } | 
| + opt_resources_list->push_back(resources); | 
| + } | 
| } | 
| HandleReadResult(FROM_HERE, status); | 
| @@ -721,7 +734,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteRegistration( | 
| // |registration_id| is the only one for |origin|. | 
| // TODO(nhiroki): Check the uniqueness by more efficient way. | 
| std::vector<RegistrationData> registrations; | 
| - status = GetRegistrationsForOrigin(origin, ®istrations); | 
| + status = GetRegistrationsForOrigin(origin, ®istrations, nullptr); | 
| if (status != STATUS_OK) | 
| return status; | 
| @@ -938,7 +951,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteAllDataForOrigins( | 
| batch.Delete(CreateUniqueOriginKey(origin)); | 
| std::vector<RegistrationData> registrations; | 
| - status = GetRegistrationsForOrigin(origin, ®istrations); | 
| + status = GetRegistrationsForOrigin(origin, ®istrations, nullptr); | 
| if (status != STATUS_OK) | 
| return status; |