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

Side by Side Diff: chrome/browser/extensions/api/storage/syncable_settings_storage.cc

Issue 216513002: Replace DCHECK(BrowserThread::CurrentlyOn) with DCHECK_CURRENTLY_ON in extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/storage/syncable_settings_storage.h" 5 #include "chrome/browser/extensions/api/storage/syncable_settings_storage.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "chrome/browser/extensions/api/storage/settings_sync_processor.h" 8 #include "chrome/browser/extensions/api/storage/settings_sync_processor.h"
9 #include "chrome/browser/extensions/api/storage/settings_sync_util.h" 9 #include "chrome/browser/extensions/api/storage/settings_sync_util.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 10 matching lines...) Expand all
21 observers, 21 observers,
22 const std::string& extension_id, 22 const std::string& extension_id,
23 ValueStore* delegate, 23 ValueStore* delegate,
24 syncer::ModelType sync_type, 24 syncer::ModelType sync_type,
25 const syncer::SyncableService::StartSyncFlare& flare) 25 const syncer::SyncableService::StartSyncFlare& flare)
26 : observers_(observers), 26 : observers_(observers),
27 extension_id_(extension_id), 27 extension_id_(extension_id),
28 delegate_(delegate), 28 delegate_(delegate),
29 sync_type_(sync_type), 29 sync_type_(sync_type),
30 flare_(flare) { 30 flare_(flare) {
31 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 31 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
32 } 32 }
33 33
34 SyncableSettingsStorage::~SyncableSettingsStorage() { 34 SyncableSettingsStorage::~SyncableSettingsStorage() {
35 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 35 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
36 } 36 }
37 37
38 size_t SyncableSettingsStorage::GetBytesInUse(const std::string& key) { 38 size_t SyncableSettingsStorage::GetBytesInUse(const std::string& key) {
39 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 39 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
40 return delegate_->GetBytesInUse(key); 40 return delegate_->GetBytesInUse(key);
41 } 41 }
42 42
43 size_t SyncableSettingsStorage::GetBytesInUse( 43 size_t SyncableSettingsStorage::GetBytesInUse(
44 const std::vector<std::string>& keys) { 44 const std::vector<std::string>& keys) {
45 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 45 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
46 return delegate_->GetBytesInUse(keys); 46 return delegate_->GetBytesInUse(keys);
47 } 47 }
48 48
49 size_t SyncableSettingsStorage::GetBytesInUse() { 49 size_t SyncableSettingsStorage::GetBytesInUse() {
50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 50 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
51 return delegate_->GetBytesInUse(); 51 return delegate_->GetBytesInUse();
52 } 52 }
53 53
54 ValueStore::ReadResult SyncableSettingsStorage::Get( 54 ValueStore::ReadResult SyncableSettingsStorage::Get(
55 const std::string& key) { 55 const std::string& key) {
56 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 56 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
57 return delegate_->Get(key); 57 return delegate_->Get(key);
58 } 58 }
59 59
60 ValueStore::ReadResult SyncableSettingsStorage::Get( 60 ValueStore::ReadResult SyncableSettingsStorage::Get(
61 const std::vector<std::string>& keys) { 61 const std::vector<std::string>& keys) {
62 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 62 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
63 return delegate_->Get(keys); 63 return delegate_->Get(keys);
64 } 64 }
65 65
66 ValueStore::ReadResult SyncableSettingsStorage::Get() { 66 ValueStore::ReadResult SyncableSettingsStorage::Get() {
67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 67 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
68 return delegate_->Get(); 68 return delegate_->Get();
69 } 69 }
70 70
71 ValueStore::WriteResult SyncableSettingsStorage::Set( 71 ValueStore::WriteResult SyncableSettingsStorage::Set(
72 WriteOptions options, const std::string& key, const base::Value& value) { 72 WriteOptions options, const std::string& key, const base::Value& value) {
73 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 73 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
74 WriteResult result = delegate_->Set(options, key, value); 74 WriteResult result = delegate_->Set(options, key, value);
75 if (result->HasError()) { 75 if (result->HasError()) {
76 return result.Pass(); 76 return result.Pass();
77 } 77 }
78 SyncResultIfEnabled(result); 78 SyncResultIfEnabled(result);
79 return result.Pass(); 79 return result.Pass();
80 } 80 }
81 81
82 ValueStore::WriteResult SyncableSettingsStorage::Set( 82 ValueStore::WriteResult SyncableSettingsStorage::Set(
83 WriteOptions options, const base::DictionaryValue& values) { 83 WriteOptions options, const base::DictionaryValue& values) {
84 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 84 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
85 WriteResult result = delegate_->Set(options, values); 85 WriteResult result = delegate_->Set(options, values);
86 if (result->HasError()) { 86 if (result->HasError()) {
87 return result.Pass(); 87 return result.Pass();
88 } 88 }
89 SyncResultIfEnabled(result); 89 SyncResultIfEnabled(result);
90 return result.Pass(); 90 return result.Pass();
91 } 91 }
92 92
93 ValueStore::WriteResult SyncableSettingsStorage::Remove( 93 ValueStore::WriteResult SyncableSettingsStorage::Remove(
94 const std::string& key) { 94 const std::string& key) {
95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 95 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
96 WriteResult result = delegate_->Remove(key); 96 WriteResult result = delegate_->Remove(key);
97 if (result->HasError()) { 97 if (result->HasError()) {
98 return result.Pass(); 98 return result.Pass();
99 } 99 }
100 SyncResultIfEnabled(result); 100 SyncResultIfEnabled(result);
101 return result.Pass(); 101 return result.Pass();
102 } 102 }
103 103
104 ValueStore::WriteResult SyncableSettingsStorage::Remove( 104 ValueStore::WriteResult SyncableSettingsStorage::Remove(
105 const std::vector<std::string>& keys) { 105 const std::vector<std::string>& keys) {
106 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 106 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
107 WriteResult result = delegate_->Remove(keys); 107 WriteResult result = delegate_->Remove(keys);
108 if (result->HasError()) { 108 if (result->HasError()) {
109 return result.Pass(); 109 return result.Pass();
110 } 110 }
111 SyncResultIfEnabled(result); 111 SyncResultIfEnabled(result);
112 return result.Pass(); 112 return result.Pass();
113 } 113 }
114 114
115 ValueStore::WriteResult SyncableSettingsStorage::Clear() { 115 ValueStore::WriteResult SyncableSettingsStorage::Clear() {
116 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 116 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
117 WriteResult result = delegate_->Clear(); 117 WriteResult result = delegate_->Clear();
118 if (result->HasError()) { 118 if (result->HasError()) {
119 return result.Pass(); 119 return result.Pass();
120 } 120 }
121 SyncResultIfEnabled(result); 121 SyncResultIfEnabled(result);
122 return result.Pass(); 122 return result.Pass();
123 } 123 }
124 124
125 bool SyncableSettingsStorage::Restore() { 125 bool SyncableSettingsStorage::Restore() {
126 // If we're syncing, stop - we don't want to push the deletion of any data. 126 // If we're syncing, stop - we don't want to push the deletion of any data.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 // asynchronously via StartSyncing(...) as soon as possible. 159 // asynchronously via StartSyncing(...) as soon as possible.
160 flare_.Run(sync_type_); 160 flare_.Run(sync_type_);
161 } 161 }
162 } 162 }
163 163
164 // Sync-related methods. 164 // Sync-related methods.
165 165
166 syncer::SyncError SyncableSettingsStorage::StartSyncing( 166 syncer::SyncError SyncableSettingsStorage::StartSyncing(
167 const base::DictionaryValue& sync_state, 167 const base::DictionaryValue& sync_state,
168 scoped_ptr<SettingsSyncProcessor> sync_processor) { 168 scoped_ptr<SettingsSyncProcessor> sync_processor) {
169 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 169 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
170 DCHECK(!sync_processor_.get()); 170 DCHECK(!sync_processor_.get());
171 171
172 sync_processor_ = sync_processor.Pass(); 172 sync_processor_ = sync_processor.Pass();
173 sync_processor_->Init(sync_state); 173 sync_processor_->Init(sync_state);
174 174
175 ReadResult maybe_settings = delegate_->Get(); 175 ReadResult maybe_settings = delegate_->Get();
176 if (maybe_settings->HasError()) { 176 if (maybe_settings->HasError()) {
177 return syncer::SyncError( 177 return syncer::SyncError(
178 FROM_HERE, 178 FROM_HERE,
179 syncer::SyncError::DATATYPE_ERROR, 179 syncer::SyncError::DATATYPE_ERROR,
180 base::StringPrintf("Failed to get settings: %s", 180 base::StringPrintf("Failed to get settings: %s",
181 maybe_settings->error().message.c_str()), 181 maybe_settings->error().message.c_str()),
182 sync_processor_->type()); 182 sync_processor_->type());
183 } 183 }
184 184
185 const base::DictionaryValue& settings = maybe_settings->settings(); 185 const base::DictionaryValue& settings = maybe_settings->settings();
186 return sync_state.empty() ? 186 return sync_state.empty() ?
187 SendLocalSettingsToSync(settings) : 187 SendLocalSettingsToSync(settings) :
188 OverwriteLocalSettingsWithSync(sync_state, settings); 188 OverwriteLocalSettingsWithSync(sync_state, settings);
189 } 189 }
190 190
191 syncer::SyncError SyncableSettingsStorage::SendLocalSettingsToSync( 191 syncer::SyncError SyncableSettingsStorage::SendLocalSettingsToSync(
192 const base::DictionaryValue& settings) { 192 const base::DictionaryValue& settings) {
193 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 193 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
194 194
195 ValueStoreChangeList changes; 195 ValueStoreChangeList changes;
196 for (base::DictionaryValue::Iterator i(settings); !i.IsAtEnd(); i.Advance()) { 196 for (base::DictionaryValue::Iterator i(settings); !i.IsAtEnd(); i.Advance()) {
197 changes.push_back(ValueStoreChange(i.key(), NULL, i.value().DeepCopy())); 197 changes.push_back(ValueStoreChange(i.key(), NULL, i.value().DeepCopy()));
198 } 198 }
199 199
200 if (changes.empty()) 200 if (changes.empty())
201 return syncer::SyncError(); 201 return syncer::SyncError();
202 202
203 syncer::SyncError error = sync_processor_->SendChanges(changes); 203 syncer::SyncError error = sync_processor_->SendChanges(changes);
204 if (error.IsSet()) 204 if (error.IsSet())
205 StopSyncing(); 205 StopSyncing();
206 206
207 return error; 207 return error;
208 } 208 }
209 209
210 syncer::SyncError SyncableSettingsStorage::OverwriteLocalSettingsWithSync( 210 syncer::SyncError SyncableSettingsStorage::OverwriteLocalSettingsWithSync(
211 const base::DictionaryValue& sync_state, 211 const base::DictionaryValue& sync_state,
212 const base::DictionaryValue& settings) { 212 const base::DictionaryValue& settings) {
213 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 213 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
214 // Treat this as a list of changes to sync and use ProcessSyncChanges. 214 // Treat this as a list of changes to sync and use ProcessSyncChanges.
215 // This gives notifications etc for free. 215 // This gives notifications etc for free.
216 scoped_ptr<base::DictionaryValue> new_sync_state(sync_state.DeepCopy()); 216 scoped_ptr<base::DictionaryValue> new_sync_state(sync_state.DeepCopy());
217 217
218 SettingSyncDataList changes; 218 SettingSyncDataList changes;
219 for (base::DictionaryValue::Iterator it(settings); 219 for (base::DictionaryValue::Iterator it(settings);
220 !it.IsAtEnd(); it.Advance()) { 220 !it.IsAtEnd(); it.Advance()) {
221 scoped_ptr<base::Value> sync_value; 221 scoped_ptr<base::Value> sync_value;
222 if (new_sync_state->RemoveWithoutPathExpansion(it.key(), &sync_value)) { 222 if (new_sync_state->RemoveWithoutPathExpansion(it.key(), &sync_value)) {
223 if (sync_value->Equals(&it.value())) { 223 if (sync_value->Equals(&it.value())) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 value.Pass())); 256 value.Pass()));
257 } 257 }
258 258
259 if (changes.empty()) 259 if (changes.empty())
260 return syncer::SyncError(); 260 return syncer::SyncError();
261 261
262 return ProcessSyncChanges(changes); 262 return ProcessSyncChanges(changes);
263 } 263 }
264 264
265 void SyncableSettingsStorage::StopSyncing() { 265 void SyncableSettingsStorage::StopSyncing() {
266 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 266 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
267 sync_processor_.reset(); 267 sync_processor_.reset();
268 } 268 }
269 269
270 syncer::SyncError SyncableSettingsStorage::ProcessSyncChanges( 270 syncer::SyncError SyncableSettingsStorage::ProcessSyncChanges(
271 const SettingSyncDataList& sync_changes) { 271 const SettingSyncDataList& sync_changes) {
272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 272 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
273 DCHECK(!sync_changes.empty()) << "No sync changes for " << extension_id_; 273 DCHECK(!sync_changes.empty()) << "No sync changes for " << extension_id_;
274 274
275 if (!sync_processor_.get()) { 275 if (!sync_processor_.get()) {
276 return syncer::SyncError( 276 return syncer::SyncError(
277 FROM_HERE, 277 FROM_HERE,
278 syncer::SyncError::DATATYPE_ERROR, 278 syncer::SyncError::DATATYPE_ERROR,
279 std::string("Sync is inactive for ") + extension_id_, 279 std::string("Sync is inactive for ") + extension_id_,
280 syncer::UNSPECIFIED); 280 syncer::UNSPECIFIED);
281 } 281 }
282 282
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 syncer::SyncError::DATATYPE_ERROR, 416 syncer::SyncError::DATATYPE_ERROR,
417 base::StringPrintf("Error pushing sync remove to local settings: %s", 417 base::StringPrintf("Error pushing sync remove to local settings: %s",
418 result->error().message.c_str()), 418 result->error().message.c_str()),
419 sync_processor_->type()); 419 sync_processor_->type());
420 } 420 }
421 changes->push_back(ValueStoreChange(key, old_value, NULL)); 421 changes->push_back(ValueStoreChange(key, old_value, NULL));
422 return syncer::SyncError(); 422 return syncer::SyncError();
423 } 423 }
424 424
425 } // namespace extensions 425 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698