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

Side by Side Diff: content/browser/service_worker/service_worker_database.cc

Issue 2850203002: PaymentHandler: Implement PaymentInstruments.keys(). (Closed)
Patch Set: PaymentHandler: Implement PaymentInstruments.Keys(). Created 3 years, 7 months 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
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/browser/service_worker/service_worker_database.h" 5 #include "content/browser/service_worker/service_worker_database.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 if (status != STATUS_OK) { 874 if (status != STATUS_OK) {
875 user_data_values->clear(); 875 user_data_values->clear();
876 break; 876 break;
877 } 877 }
878 } 878 }
879 HandleReadResult(FROM_HERE, 879 HandleReadResult(FROM_HERE,
880 status == STATUS_ERROR_NOT_FOUND ? STATUS_OK : status); 880 status == STATUS_ERROR_NOT_FOUND ? STATUS_OK : status);
881 return status; 881 return status;
882 } 882 }
883 883
884 ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadUserDataByKeyPrefix(
885 int64_t registration_id,
886 const std::string key_prefix,
887 std::vector<std::string>* user_data_values) {
888 DCHECK(sequence_checker_.CalledOnValidSequence());
889 DCHECK_NE(kInvalidServiceWorkerRegistrationId, registration_id);
890 DCHECK(user_data_values);
891
892 Status status = LazyOpen(false);
893 if (IsNewOrNonexistentDatabase(status))
894 return STATUS_ERROR_NOT_FOUND;
895 if (status != STATUS_OK)
896 return status;
897
898 std::string prefix = CreateUserDataKey(registration_id, key_prefix);
899 {
900 std::unique_ptr<leveldb::Iterator> itr(
901 db_->NewIterator(leveldb::ReadOptions()));
902 for (itr->Seek(prefix); itr->Valid(); itr->Next()) {
903 status = LevelDBStatusToStatus(itr->status());
904 if (status != STATUS_OK) {
905 user_data_values->clear();
906 break;
907 }
908
909 if (!itr->key().starts_with(prefix))
910 break;
911
912 std::string user_data_value;
913 status = LevelDBStatusToStatus(
914 db_->Get(leveldb::ReadOptions(), itr->key(), &user_data_value));
915 if (status != STATUS_OK) {
916 user_data_values->clear();
917 break;
918 }
919
920 user_data_values->push_back(user_data_value);
921 }
922 }
923
924 HandleReadResult(FROM_HERE, status);
925 return status;
926 }
927
884 ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteUserData( 928 ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteUserData(
885 int64_t registration_id, 929 int64_t registration_id,
886 const GURL& origin, 930 const GURL& origin,
887 const std::vector<std::pair<std::string, std::string>>& name_value_pairs) { 931 const std::vector<std::pair<std::string, std::string>>& name_value_pairs) {
888 DCHECK(sequence_checker_.CalledOnValidSequence()); 932 DCHECK(sequence_checker_.CalledOnValidSequence());
889 DCHECK_NE(kInvalidServiceWorkerRegistrationId, registration_id); 933 DCHECK_NE(kInvalidServiceWorkerRegistrationId, registration_id);
890 DCHECK(!name_value_pairs.empty()); 934 DCHECK(!name_value_pairs.empty());
891 935
892 Status status = LazyOpen(false); 936 Status status = LazyOpen(false);
893 if (IsNewOrNonexistentDatabase(status)) 937 if (IsNewOrNonexistentDatabase(status))
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
1720 if (status != STATUS_OK) 1764 if (status != STATUS_OK)
1721 Disable(from_here, status); 1765 Disable(from_here, status);
1722 ServiceWorkerMetrics::CountWriteDatabaseResult(status); 1766 ServiceWorkerMetrics::CountWriteDatabaseResult(status);
1723 } 1767 }
1724 1768
1725 bool ServiceWorkerDatabase::IsDatabaseInMemory() const { 1769 bool ServiceWorkerDatabase::IsDatabaseInMemory() const {
1726 return path_.empty(); 1770 return path_.empty();
1727 } 1771 }
1728 1772
1729 } // namespace content 1773 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_database.h ('k') | content/browser/service_worker/service_worker_storage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698