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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_settings_service.cc

Issue 615493005: c/b/supervised_user: Use range-based for where appropriate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix CrOS Created 6 years, 2 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 "chrome/browser/supervised_user/supervised_user_settings_service.h" 5 #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/prefs/json_pref_store.h" 10 #include "base/prefs/json_pref_store.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 ModelType type, 166 ModelType type,
167 const SyncDataList& initial_sync_data, 167 const SyncDataList& initial_sync_data,
168 scoped_ptr<SyncChangeProcessor> sync_processor, 168 scoped_ptr<SyncChangeProcessor> sync_processor,
169 scoped_ptr<SyncErrorFactory> error_handler) { 169 scoped_ptr<SyncErrorFactory> error_handler) {
170 DCHECK_EQ(SUPERVISED_USER_SETTINGS, type); 170 DCHECK_EQ(SUPERVISED_USER_SETTINGS, type);
171 sync_processor_ = sync_processor.Pass(); 171 sync_processor_ = sync_processor.Pass();
172 error_handler_ = error_handler.Pass(); 172 error_handler_ = error_handler.Pass();
173 173
174 // Clear all atomic and split settings, then recreate them from Sync data. 174 // Clear all atomic and split settings, then recreate them from Sync data.
175 Clear(); 175 Clear();
176 for (SyncDataList::const_iterator it = initial_sync_data.begin(); 176 for (const SyncData& sync_data : initial_sync_data) {
177 it != initial_sync_data.end(); ++it) { 177 DCHECK_EQ(SUPERVISED_USER_SETTINGS, sync_data.GetDataType());
178 DCHECK_EQ(SUPERVISED_USER_SETTINGS, it->GetDataType());
179 const ::sync_pb::ManagedUserSettingSpecifics& supervised_user_setting = 178 const ::sync_pb::ManagedUserSettingSpecifics& supervised_user_setting =
180 it->GetSpecifics().managed_user_setting(); 179 sync_data.GetSpecifics().managed_user_setting();
181 scoped_ptr<base::Value> value( 180 scoped_ptr<base::Value> value(
182 JSONReader::Read(supervised_user_setting.value())); 181 JSONReader::Read(supervised_user_setting.value()));
183 std::string name_suffix = supervised_user_setting.name(); 182 std::string name_suffix = supervised_user_setting.name();
184 base::DictionaryValue* dict = GetDictionaryAndSplitKey(&name_suffix); 183 base::DictionaryValue* dict = GetDictionaryAndSplitKey(&name_suffix);
185 dict->SetWithoutPathExpansion(name_suffix, value.release()); 184 dict->SetWithoutPathExpansion(name_suffix, value.release());
186 } 185 }
187 store_->ReportValueChanged(kAtomicSettings); 186 store_->ReportValueChanged(kAtomicSettings);
188 store_->ReportValueChanged(kSplitSettings); 187 store_->ReportValueChanged(kSplitSettings);
189 InformSubscribers(); 188 InformSubscribers();
190 189
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 MakeSplitSettingKey(it.key(), jt.key()), jt.value())); 240 MakeSplitSettingKey(it.key(), jt.key()), jt.value()));
242 } 241 }
243 } 242 }
244 DCHECK_EQ(0u, GetQueuedItems()->size()); 243 DCHECK_EQ(0u, GetQueuedItems()->size());
245 return data; 244 return data;
246 } 245 }
247 246
248 SyncError SupervisedUserSettingsService::ProcessSyncChanges( 247 SyncError SupervisedUserSettingsService::ProcessSyncChanges(
249 const tracked_objects::Location& from_here, 248 const tracked_objects::Location& from_here,
250 const SyncChangeList& change_list) { 249 const SyncChangeList& change_list) {
251 for (SyncChangeList::const_iterator it = change_list.begin(); 250 for (const SyncChange& sync_change : change_list) {
252 it != change_list.end(); ++it) { 251 SyncData data = sync_change.sync_data();
253 SyncData data = it->sync_data();
254 DCHECK_EQ(SUPERVISED_USER_SETTINGS, data.GetDataType()); 252 DCHECK_EQ(SUPERVISED_USER_SETTINGS, data.GetDataType());
255 const ::sync_pb::ManagedUserSettingSpecifics& supervised_user_setting = 253 const ::sync_pb::ManagedUserSettingSpecifics& supervised_user_setting =
256 data.GetSpecifics().managed_user_setting(); 254 data.GetSpecifics().managed_user_setting();
257 std::string key = supervised_user_setting.name(); 255 std::string key = supervised_user_setting.name();
258 base::DictionaryValue* dict = GetDictionaryAndSplitKey(&key); 256 base::DictionaryValue* dict = GetDictionaryAndSplitKey(&key);
259 switch (it->change_type()) { 257 SyncChange::SyncChangeType change_type = sync_change.change_type();
258 switch (change_type) {
260 case SyncChange::ACTION_ADD: 259 case SyncChange::ACTION_ADD:
261 case SyncChange::ACTION_UPDATE: { 260 case SyncChange::ACTION_UPDATE: {
262 scoped_ptr<base::Value> value( 261 scoped_ptr<base::Value> value(
263 JSONReader::Read(supervised_user_setting.value())); 262 JSONReader::Read(supervised_user_setting.value()));
264 if (dict->HasKey(key)) { 263 if (dict->HasKey(key)) {
265 DLOG_IF(WARNING, it->change_type() == SyncChange::ACTION_ADD) 264 DLOG_IF(WARNING, change_type == SyncChange::ACTION_ADD)
266 << "Value for key " << key << " already exists"; 265 << "Value for key " << key << " already exists";
267 } else { 266 } else {
268 DLOG_IF(WARNING, it->change_type() == SyncChange::ACTION_UPDATE) 267 DLOG_IF(WARNING, change_type == SyncChange::ACTION_UPDATE)
269 << "Value for key " << key << " doesn't exist yet"; 268 << "Value for key " << key << " doesn't exist yet";
270 } 269 }
271 dict->SetWithoutPathExpansion(key, value.release()); 270 dict->SetWithoutPathExpansion(key, value.release());
272 break; 271 break;
273 } 272 }
274 case SyncChange::ACTION_DELETE: { 273 case SyncChange::ACTION_DELETE: {
275 DLOG_IF(WARNING, !dict->HasKey(key)) << "Trying to delete nonexistent " 274 DLOG_IF(WARNING, !dict->HasKey(key)) << "Trying to delete nonexistent "
276 << "key " << key; 275 << "key " << key;
277 dict->RemoveWithoutPathExpansion(key, NULL); 276 dict->RemoveWithoutPathExpansion(key, NULL);
278 break; 277 break;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 } 371 }
373 372
374 return settings.Pass(); 373 return settings.Pass();
375 } 374 }
376 375
377 void SupervisedUserSettingsService::InformSubscribers() { 376 void SupervisedUserSettingsService::InformSubscribers() {
378 if (!IsReady()) 377 if (!IsReady())
379 return; 378 return;
380 379
381 scoped_ptr<base::DictionaryValue> settings = GetSettings(); 380 scoped_ptr<base::DictionaryValue> settings = GetSettings();
382 for (std::vector<SettingsCallback>::iterator it = subscribers_.begin(); 381 for (const auto& callback : subscribers_)
383 it != subscribers_.end(); ++it) { 382 callback.Run(settings.get());
384 it->Run(settings.get());
385 }
386 } 383 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698