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

Side by Side Diff: chrome/browser/sync/sync_prefs.cc

Issue 8919021: [Sync] Rename ModelEnumSet to ModelTypeSet (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years 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
« no previous file with comments | « chrome/browser/sync/sync_prefs.h ('k') | chrome/browser/sync/sync_prefs_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/sync/sync_prefs.h" 5 #include "chrome/browser/sync/sync_prefs.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 } 116 }
117 117
118 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { 118 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) {
119 DCHECK(non_thread_safe_.CalledOnValidThread()); 119 DCHECK(non_thread_safe_.CalledOnValidThread());
120 CHECK(pref_service_); 120 CHECK(pref_service_);
121 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, 121 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced,
122 keep_everything_synced); 122 keep_everything_synced);
123 pref_service_->ScheduleSavePersistentPrefs(); 123 pref_service_->ScheduleSavePersistentPrefs();
124 } 124 }
125 125
126 syncable::ModelEnumSet SyncPrefs::GetPreferredDataTypes( 126 syncable::ModelTypeSet SyncPrefs::GetPreferredDataTypes(
127 syncable::ModelEnumSet registered_types) const { 127 syncable::ModelTypeSet registered_types) const {
128 DCHECK(non_thread_safe_.CalledOnValidThread()); 128 DCHECK(non_thread_safe_.CalledOnValidThread());
129 if (!pref_service_) { 129 if (!pref_service_) {
130 return syncable::ModelEnumSet(); 130 return syncable::ModelTypeSet();
131 } 131 }
132 132
133 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { 133 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) {
134 return registered_types; 134 return registered_types;
135 } 135 }
136 136
137 // Remove autofill_profile since it's controlled by autofill, and 137 // Remove autofill_profile since it's controlled by autofill, and
138 // search_engines since it's controlled by preferences (see code below). 138 // search_engines since it's controlled by preferences (see code below).
139 syncable::ModelEnumSet user_selectable_types(registered_types); 139 syncable::ModelTypeSet user_selectable_types(registered_types);
140 DCHECK(!user_selectable_types.Has(syncable::NIGORI)); 140 DCHECK(!user_selectable_types.Has(syncable::NIGORI));
141 user_selectable_types.Remove(syncable::AUTOFILL_PROFILE); 141 user_selectable_types.Remove(syncable::AUTOFILL_PROFILE);
142 user_selectable_types.Remove(syncable::SEARCH_ENGINES); 142 user_selectable_types.Remove(syncable::SEARCH_ENGINES);
143 143
144 // Remove app_notifications since it's controlled by apps (see 144 // Remove app_notifications since it's controlled by apps (see
145 // code below). 145 // code below).
146 // TODO(akalin): Centralize notion of all user selectable data types. 146 // TODO(akalin): Centralize notion of all user selectable data types.
147 user_selectable_types.Remove(syncable::APP_NOTIFICATIONS); 147 user_selectable_types.Remove(syncable::APP_NOTIFICATIONS);
148 148
149 syncable::ModelEnumSet preferred_types; 149 syncable::ModelTypeSet preferred_types;
150 150
151 for (syncable::ModelEnumSet::Iterator it = user_selectable_types.First(); 151 for (syncable::ModelTypeSet::Iterator it = user_selectable_types.First();
152 it.Good(); it.Inc()) { 152 it.Good(); it.Inc()) {
153 if (GetDataTypePreferred(it.Get())) { 153 if (GetDataTypePreferred(it.Get())) {
154 preferred_types.Put(it.Get()); 154 preferred_types.Put(it.Get());
155 } 155 }
156 } 156 }
157 157
158 // Group the enabled/disabled state of autofill_profile with autofill, and 158 // Group the enabled/disabled state of autofill_profile with autofill, and
159 // search_engines with preferences (since only autofill and preferences are 159 // search_engines with preferences (since only autofill and preferences are
160 // shown on the UI). 160 // shown on the UI).
161 if (registered_types.Has(syncable::AUTOFILL) && 161 if (registered_types.Has(syncable::AUTOFILL) &&
(...skipping 12 matching lines...) Expand all
174 if (registered_types.Has(syncable::APPS) && 174 if (registered_types.Has(syncable::APPS) &&
175 registered_types.Has(syncable::APP_NOTIFICATIONS) && 175 registered_types.Has(syncable::APP_NOTIFICATIONS) &&
176 GetDataTypePreferred(syncable::APPS)) { 176 GetDataTypePreferred(syncable::APPS)) {
177 preferred_types.Put(syncable::APP_NOTIFICATIONS); 177 preferred_types.Put(syncable::APP_NOTIFICATIONS);
178 } 178 }
179 179
180 return preferred_types; 180 return preferred_types;
181 } 181 }
182 182
183 void SyncPrefs::SetPreferredDataTypes( 183 void SyncPrefs::SetPreferredDataTypes(
184 syncable::ModelEnumSet registered_types, 184 syncable::ModelTypeSet registered_types,
185 syncable::ModelEnumSet preferred_types) { 185 syncable::ModelTypeSet preferred_types) {
186 DCHECK(non_thread_safe_.CalledOnValidThread()); 186 DCHECK(non_thread_safe_.CalledOnValidThread());
187 CHECK(pref_service_); 187 CHECK(pref_service_);
188 DCHECK(registered_types.HasAll(preferred_types)); 188 DCHECK(registered_types.HasAll(preferred_types));
189 syncable::ModelEnumSet preferred_types_with_dependents(preferred_types); 189 syncable::ModelTypeSet preferred_types_with_dependents(preferred_types);
190 // Set autofill_profile to the same enabled/disabled state as 190 // Set autofill_profile to the same enabled/disabled state as
191 // autofill (since only autofill is shown in the UI). 191 // autofill (since only autofill is shown in the UI).
192 if (registered_types.Has(syncable::AUTOFILL) && 192 if (registered_types.Has(syncable::AUTOFILL) &&
193 registered_types.Has(syncable::AUTOFILL_PROFILE)) { 193 registered_types.Has(syncable::AUTOFILL_PROFILE)) {
194 if (preferred_types_with_dependents.Has(syncable::AUTOFILL)) { 194 if (preferred_types_with_dependents.Has(syncable::AUTOFILL)) {
195 preferred_types_with_dependents.Put(syncable::AUTOFILL_PROFILE); 195 preferred_types_with_dependents.Put(syncable::AUTOFILL_PROFILE);
196 } else { 196 } else {
197 preferred_types_with_dependents.Remove(syncable::AUTOFILL_PROFILE); 197 preferred_types_with_dependents.Remove(syncable::AUTOFILL_PROFILE);
198 } 198 }
199 } 199 }
(...skipping 11 matching lines...) Expand all
211 // preferences (since only preferences is shown in the UI). 211 // preferences (since only preferences is shown in the UI).
212 if (registered_types.Has(syncable::PREFERENCES) && 212 if (registered_types.Has(syncable::PREFERENCES) &&
213 registered_types.Has(syncable::SEARCH_ENGINES)) { 213 registered_types.Has(syncable::SEARCH_ENGINES)) {
214 if (preferred_types_with_dependents.Has(syncable::PREFERENCES)) { 214 if (preferred_types_with_dependents.Has(syncable::PREFERENCES)) {
215 preferred_types_with_dependents.Put(syncable::SEARCH_ENGINES); 215 preferred_types_with_dependents.Put(syncable::SEARCH_ENGINES);
216 } else { 216 } else {
217 preferred_types_with_dependents.Remove(syncable::SEARCH_ENGINES); 217 preferred_types_with_dependents.Remove(syncable::SEARCH_ENGINES);
218 } 218 }
219 } 219 }
220 220
221 for (syncable::ModelEnumSet::Iterator it = registered_types.First(); 221 for (syncable::ModelTypeSet::Iterator it = registered_types.First();
222 it.Good(); it.Inc()) { 222 it.Good(); it.Inc()) {
223 SetDataTypePreferred( 223 SetDataTypePreferred(
224 it.Get(), preferred_types_with_dependents.Has(it.Get())); 224 it.Get(), preferred_types_with_dependents.Has(it.Get()));
225 } 225 }
226 } 226 }
227 227
228 bool SyncPrefs::IsManaged() const { 228 bool SyncPrefs::IsManaged() const {
229 DCHECK(non_thread_safe_.CalledOnValidThread()); 229 DCHECK(non_thread_safe_.CalledOnValidThread());
230 return pref_service_ && pref_service_->GetBoolean(prefs::kSyncManaged); 230 return pref_service_ && pref_service_->GetBoolean(prefs::kSyncManaged);
231 } 231 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 max_versions.begin(); 306 max_versions.begin();
307 it != max_versions.end(); ++it) { 307 it != max_versions.end(); ++it) {
308 max_versions_dict.SetString( 308 max_versions_dict.SetString(
309 base::IntToString(it->first), 309 base::IntToString(it->first),
310 base::Int64ToString(it->second)); 310 base::Int64ToString(it->second));
311 } 311 }
312 pref_service_->Set(prefs::kSyncMaxInvalidationVersions, max_versions_dict); 312 pref_service_->Set(prefs::kSyncMaxInvalidationVersions, max_versions_dict);
313 } 313 }
314 314
315 void SyncPrefs::AcknowledgeSyncedTypes( 315 void SyncPrefs::AcknowledgeSyncedTypes(
316 syncable::ModelEnumSet types) { 316 syncable::ModelTypeSet types) {
317 DCHECK(non_thread_safe_.CalledOnValidThread()); 317 DCHECK(non_thread_safe_.CalledOnValidThread());
318 CHECK(pref_service_); 318 CHECK(pref_service_);
319 // Add the types to the current set of acknowledged 319 // Add the types to the current set of acknowledged
320 // types, and then store the resulting set in prefs. 320 // types, and then store the resulting set in prefs.
321 const syncable::ModelEnumSet acknowledged_types = 321 const syncable::ModelTypeSet acknowledged_types =
322 Union(types, 322 Union(types,
323 syncable::ModelEnumSetFromValue( 323 syncable::ModelTypeSetFromValue(
324 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes))); 324 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)));
325 325
326 scoped_ptr<ListValue> value( 326 scoped_ptr<ListValue> value(
327 syncable::ModelEnumSetToValue(acknowledged_types)); 327 syncable::ModelTypeSetToValue(acknowledged_types));
328 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value); 328 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value);
329 pref_service_->ScheduleSavePersistentPrefs(); 329 pref_service_->ScheduleSavePersistentPrefs();
330 } 330 }
331 331
332 void SyncPrefs::Observe(int type, 332 void SyncPrefs::Observe(int type,
333 const content::NotificationSource& source, 333 const content::NotificationSource& source,
334 const content::NotificationDetails& details) { 334 const content::NotificationDetails& details) {
335 DCHECK(non_thread_safe_.CalledOnValidThread()); 335 DCHECK(non_thread_safe_.CalledOnValidThread());
336 DCHECK(content::Source<PrefService>(pref_service_) == source); 336 DCHECK(content::Source<PrefService>(pref_service_) == source);
337 switch (type) { 337 switch (type) {
(...skipping 12 matching lines...) Expand all
350 } 350 }
351 } 351 }
352 352
353 void SyncPrefs::SetManagedForTest(bool is_managed) { 353 void SyncPrefs::SetManagedForTest(bool is_managed) {
354 DCHECK(non_thread_safe_.CalledOnValidThread()); 354 DCHECK(non_thread_safe_.CalledOnValidThread());
355 CHECK(pref_service_); 355 CHECK(pref_service_);
356 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); 356 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed);
357 pref_service_->ScheduleSavePersistentPrefs(); 357 pref_service_->ScheduleSavePersistentPrefs();
358 } 358 }
359 359
360 syncable::ModelEnumSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { 360 syncable::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const {
361 DCHECK(non_thread_safe_.CalledOnValidThread()); 361 DCHECK(non_thread_safe_.CalledOnValidThread());
362 if (!pref_service_) { 362 if (!pref_service_) {
363 return syncable::ModelEnumSet(); 363 return syncable::ModelTypeSet();
364 } 364 }
365 return syncable::ModelEnumSetFromValue( 365 return syncable::ModelTypeSetFromValue(
366 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)); 366 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes));
367 } 367 }
368 368
369 namespace { 369 namespace {
370 370
371 const char* GetPrefNameForDataType(syncable::ModelType data_type) { 371 const char* GetPrefNameForDataType(syncable::ModelType data_type) {
372 switch (data_type) { 372 switch (data_type) {
373 case syncable::BOOKMARKS: 373 case syncable::BOOKMARKS:
374 return prefs::kSyncBookmarks; 374 return prefs::kSyncBookmarks;
375 case syncable::PASSWORDS: 375 case syncable::PASSWORDS:
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 pref_service_->RegisterBooleanPref(prefs::kSyncManaged, 453 pref_service_->RegisterBooleanPref(prefs::kSyncManaged,
454 false, 454 false,
455 PrefService::UNSYNCABLE_PREF); 455 PrefService::UNSYNCABLE_PREF);
456 pref_service_->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken, 456 pref_service_->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken,
457 "", 457 "",
458 PrefService::UNSYNCABLE_PREF); 458 PrefService::UNSYNCABLE_PREF);
459 459
460 // We will start prompting people about new data types after the launch of 460 // We will start prompting people about new data types after the launch of
461 // SESSIONS - all previously launched data types are treated as if they are 461 // SESSIONS - all previously launched data types are treated as if they are
462 // already acknowledged. 462 // already acknowledged.
463 syncable::ModelEnumSet model_set; 463 syncable::ModelTypeSet model_set;
464 model_set.Put(syncable::BOOKMARKS); 464 model_set.Put(syncable::BOOKMARKS);
465 model_set.Put(syncable::PREFERENCES); 465 model_set.Put(syncable::PREFERENCES);
466 model_set.Put(syncable::PASSWORDS); 466 model_set.Put(syncable::PASSWORDS);
467 model_set.Put(syncable::AUTOFILL_PROFILE); 467 model_set.Put(syncable::AUTOFILL_PROFILE);
468 model_set.Put(syncable::AUTOFILL); 468 model_set.Put(syncable::AUTOFILL);
469 model_set.Put(syncable::THEMES); 469 model_set.Put(syncable::THEMES);
470 model_set.Put(syncable::EXTENSIONS); 470 model_set.Put(syncable::EXTENSIONS);
471 model_set.Put(syncable::NIGORI); 471 model_set.Put(syncable::NIGORI);
472 model_set.Put(syncable::SEARCH_ENGINES); 472 model_set.Put(syncable::SEARCH_ENGINES);
473 model_set.Put(syncable::APPS); 473 model_set.Put(syncable::APPS);
474 model_set.Put(syncable::TYPED_URLS); 474 model_set.Put(syncable::TYPED_URLS);
475 model_set.Put(syncable::SESSIONS); 475 model_set.Put(syncable::SESSIONS);
476 pref_service_->RegisterListPref(prefs::kSyncAcknowledgedSyncTypes, 476 pref_service_->RegisterListPref(prefs::kSyncAcknowledgedSyncTypes,
477 syncable::ModelEnumSetToValue(model_set), 477 syncable::ModelTypeSetToValue(model_set),
478 PrefService::UNSYNCABLE_PREF); 478 PrefService::UNSYNCABLE_PREF);
479 479
480 pref_service_->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions, 480 pref_service_->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions,
481 PrefService::UNSYNCABLE_PREF); 481 PrefService::UNSYNCABLE_PREF);
482 } 482 }
483 483
484 void SyncPrefs::RegisterDataTypePreferredPref(syncable::ModelType type, 484 void SyncPrefs::RegisterDataTypePreferredPref(syncable::ModelType type,
485 bool is_preferred) { 485 bool is_preferred) {
486 DCHECK(non_thread_safe_.CalledOnValidThread()); 486 DCHECK(non_thread_safe_.CalledOnValidThread());
487 CHECK(pref_service_); 487 CHECK(pref_service_);
(...skipping 27 matching lines...) Expand all
515 const char* pref_name = GetPrefNameForDataType(type); 515 const char* pref_name = GetPrefNameForDataType(type);
516 if (!pref_name) { 516 if (!pref_name) {
517 NOTREACHED(); 517 NOTREACHED();
518 return; 518 return;
519 } 519 }
520 pref_service_->SetBoolean(pref_name, is_preferred); 520 pref_service_->SetBoolean(pref_name, is_preferred);
521 pref_service_->ScheduleSavePersistentPrefs(); 521 pref_service_->ScheduleSavePersistentPrefs();
522 } 522 }
523 523
524 } // namespace browser_sync 524 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/sync_prefs.h ('k') | chrome/browser/sync/sync_prefs_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698