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

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

Issue 11961030: [Sync] Make SESSIONS an implicit type (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleanup Created 7 years, 10 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/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/prefs/public/pref_member.h" 8 #include "base/prefs/public/pref_member.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 case syncer::SESSIONS: 314 case syncer::SESSIONS:
315 return prefs::kSyncSessions; 315 return prefs::kSyncSessions;
316 case syncer::APP_NOTIFICATIONS: 316 case syncer::APP_NOTIFICATIONS:
317 return prefs::kSyncAppNotifications; 317 return prefs::kSyncAppNotifications;
318 case syncer::HISTORY_DELETE_DIRECTIVES: 318 case syncer::HISTORY_DELETE_DIRECTIVES:
319 return prefs::kSyncHistoryDeleteDirectives; 319 return prefs::kSyncHistoryDeleteDirectives;
320 case syncer::SYNCED_NOTIFICATIONS: 320 case syncer::SYNCED_NOTIFICATIONS:
321 return prefs::kSyncSyncedNotifications; 321 return prefs::kSyncSyncedNotifications;
322 case syncer::DICTIONARY: 322 case syncer::DICTIONARY:
323 return prefs::kSyncDictionary; 323 return prefs::kSyncDictionary;
324 case syncer::TABS:
325 return prefs::kSyncTabs;
324 default: 326 default:
325 break; 327 break;
326 } 328 }
327 NOTREACHED(); 329 NOTREACHED();
328 return NULL; 330 return NULL;
329 } 331 }
330 332
331 #if defined(OS_CHROMEOS) 333 #if defined(OS_CHROMEOS)
332 std::string SyncPrefs::GetSpareBootstrapToken() const { 334 std::string SyncPrefs::GetSpareBootstrapToken() const {
333 DCHECK(CalledOnValidThread()); 335 DCHECK(CalledOnValidThread());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 pref_groups_[syncer::APPS].Put(syncer::APP_NOTIFICATIONS); 383 pref_groups_[syncer::APPS].Put(syncer::APP_NOTIFICATIONS);
382 pref_groups_[syncer::APPS].Put(syncer::APP_SETTINGS); 384 pref_groups_[syncer::APPS].Put(syncer::APP_SETTINGS);
383 385
384 pref_groups_[syncer::AUTOFILL].Put(syncer::AUTOFILL_PROFILE); 386 pref_groups_[syncer::AUTOFILL].Put(syncer::AUTOFILL_PROFILE);
385 387
386 pref_groups_[syncer::EXTENSIONS].Put(syncer::EXTENSION_SETTINGS); 388 pref_groups_[syncer::EXTENSIONS].Put(syncer::EXTENSION_SETTINGS);
387 389
388 pref_groups_[syncer::PREFERENCES].Put(syncer::DICTIONARY); 390 pref_groups_[syncer::PREFERENCES].Put(syncer::DICTIONARY);
389 pref_groups_[syncer::PREFERENCES].Put(syncer::SEARCH_ENGINES); 391 pref_groups_[syncer::PREFERENCES].Put(syncer::SEARCH_ENGINES);
390 392
391 // TODO(akalin): Revisit this once UI lands. 393 pref_groups_[syncer::TYPED_URLS].Put(syncer::HISTORY_DELETE_DIRECTIVES);
392 pref_groups_[syncer::SESSIONS].Put(syncer::HISTORY_DELETE_DIRECTIVES); 394 pref_groups_[syncer::HISTORY_DELETE_DIRECTIVES].Put(syncer::SESSIONS);
395 pref_groups_[syncer::TABS].Put(syncer::SESSIONS);
393 } 396 }
394 397
395 // static 398 // static
396 void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs, 399 void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs,
397 syncer::ModelType type, 400 syncer::ModelType type,
398 bool is_preferred) { 401 bool is_preferred) {
399 const char* pref_name = GetPrefNameForDataType(type); 402 const char* pref_name = GetPrefNameForDataType(type);
400 if (!pref_name) { 403 if (!pref_name) {
401 NOTREACHED(); 404 NOTREACHED();
402 return; 405 return;
403 } 406 }
404 prefs->RegisterBooleanPref(pref_name, is_preferred, 407 prefs->RegisterBooleanPref(pref_name, is_preferred,
405 PrefServiceSyncable::UNSYNCABLE_PREF); 408 PrefServiceSyncable::UNSYNCABLE_PREF);
406 } 409 }
407 410
408 bool SyncPrefs::GetDataTypePreferred(syncer::ModelType type) const { 411 bool SyncPrefs::GetDataTypePreferred(syncer::ModelType type) const {
409 DCHECK(CalledOnValidThread()); 412 DCHECK(CalledOnValidThread());
410 if (!pref_service_) { 413 if (!pref_service_) {
411 return false; 414 return false;
412 } 415 }
413 const char* pref_name = GetPrefNameForDataType(type); 416 const char* pref_name = GetPrefNameForDataType(type);
414 if (!pref_name) { 417 if (!pref_name) {
415 NOTREACHED(); 418 NOTREACHED();
416 return false; 419 return false;
417 } 420 }
421 if (type == syncer::TABS &&
422 pref_service_->GetUserPrefValue(pref_name) == NULL &&
423 pref_service_->IsUserModifiablePreference(pref_name)) {
424 // If there is no tab sync preference yet (i.e. newly enabled type),
425 // default to the session sync preference value.
426 pref_name = GetPrefNameForDataType(syncer::SESSIONS);
427 }
418 428
419 return pref_service_->GetBoolean(pref_name); 429 return pref_service_->GetBoolean(pref_name);
420 } 430 }
421 431
422 void SyncPrefs::SetDataTypePreferred( 432 void SyncPrefs::SetDataTypePreferred(
423 syncer::ModelType type, bool is_preferred) { 433 syncer::ModelType type, bool is_preferred) {
424 DCHECK(CalledOnValidThread()); 434 DCHECK(CalledOnValidThread());
425 CHECK(pref_service_); 435 CHECK(pref_service_);
426 const char* pref_name = GetPrefNameForDataType(type); 436 const char* pref_name = GetPrefNameForDataType(type);
427 if (!pref_name) { 437 if (!pref_name) {
428 NOTREACHED(); 438 NOTREACHED();
429 return; 439 return;
430 } 440 }
431 pref_service_->SetBoolean(pref_name, is_preferred); 441 pref_service_->SetBoolean(pref_name, is_preferred);
432 } 442 }
433 443
434 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups( 444 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups(
435 syncer::ModelTypeSet registered_types, 445 syncer::ModelTypeSet registered_types,
436 syncer::ModelTypeSet types) const { 446 syncer::ModelTypeSet types) const {
437 DCHECK(registered_types.HasAll(types)); 447 DCHECK(registered_types.HasAll(types));
438 syncer::ModelTypeSet types_with_groups = types; 448 syncer::ModelTypeSet types_with_groups = types;
439 for (PrefGroupsMap::const_iterator i = pref_groups_.begin(); 449 for (PrefGroupsMap::const_iterator i = pref_groups_.begin();
440 i != pref_groups_.end(); ++i) { 450 i != pref_groups_.end(); ++i) {
441 if (types.Has(i->first)) 451 if (types.Has(i->first))
442 types_with_groups.PutAll(i->second); 452 types_with_groups.PutAll(i->second);
443 else
444 types_with_groups.RemoveAll(i->second);
445 } 453 }
446 types_with_groups.RetainAll(registered_types); 454 types_with_groups.RetainAll(registered_types);
447 return types_with_groups; 455 return types_with_groups;
448 } 456 }
449 457
450 } // namespace browser_sync 458 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698