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

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: Address comments Created 7 years, 11 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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 case syncer::SEARCH_ENGINES: 312 case syncer::SEARCH_ENGINES:
313 return prefs::kSyncSearchEngines; 313 return prefs::kSyncSearchEngines;
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::TABS:
323 return prefs::kSyncTabs;
322 default: 324 default:
323 break; 325 break;
324 } 326 }
325 NOTREACHED(); 327 NOTREACHED();
326 return NULL; 328 return NULL;
327 } 329 }
328 330
329 #if defined(OS_CHROMEOS) 331 #if defined(OS_CHROMEOS)
330 std::string SyncPrefs::GetSpareBootstrapToken() const { 332 std::string SyncPrefs::GetSpareBootstrapToken() const {
331 DCHECK(CalledOnValidThread()); 333 DCHECK(CalledOnValidThread());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 void SyncPrefs::RegisterPrefGroups() { 380 void SyncPrefs::RegisterPrefGroups() {
379 pref_groups_[syncer::APPS].Put(syncer::APP_NOTIFICATIONS); 381 pref_groups_[syncer::APPS].Put(syncer::APP_NOTIFICATIONS);
380 pref_groups_[syncer::APPS].Put(syncer::APP_SETTINGS); 382 pref_groups_[syncer::APPS].Put(syncer::APP_SETTINGS);
381 383
382 pref_groups_[syncer::AUTOFILL].Put(syncer::AUTOFILL_PROFILE); 384 pref_groups_[syncer::AUTOFILL].Put(syncer::AUTOFILL_PROFILE);
383 385
384 pref_groups_[syncer::EXTENSIONS].Put(syncer::EXTENSION_SETTINGS); 386 pref_groups_[syncer::EXTENSIONS].Put(syncer::EXTENSION_SETTINGS);
385 387
386 pref_groups_[syncer::PREFERENCES].Put(syncer::SEARCH_ENGINES); 388 pref_groups_[syncer::PREFERENCES].Put(syncer::SEARCH_ENGINES);
387 389
388 // TODO(akalin): Revisit this once UI lands. 390 pref_groups_[syncer::TYPED_URLS].Put(syncer::HISTORY_DELETE_DIRECTIVES);
389 pref_groups_[syncer::SESSIONS].Put(syncer::HISTORY_DELETE_DIRECTIVES); 391 pref_groups_[syncer::HISTORY_DELETE_DIRECTIVES].Put(syncer::SESSIONS);
392 pref_groups_[syncer::TABS].Put(syncer::SESSIONS);
390 } 393 }
391 394
392 // static 395 // static
393 void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs, 396 void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs,
394 syncer::ModelType type, 397 syncer::ModelType type,
395 bool is_preferred) { 398 bool is_preferred) {
396 const char* pref_name = GetPrefNameForDataType(type); 399 const char* pref_name = GetPrefNameForDataType(type);
397 if (!pref_name) { 400 if (!pref_name) {
398 NOTREACHED(); 401 NOTREACHED();
399 return; 402 return;
400 } 403 }
401 prefs->RegisterBooleanPref(pref_name, is_preferred, 404 prefs->RegisterBooleanPref(pref_name, is_preferred,
402 PrefServiceSyncable::UNSYNCABLE_PREF); 405 PrefServiceSyncable::UNSYNCABLE_PREF);
403 } 406 }
404 407
405 bool SyncPrefs::GetDataTypePreferred(syncer::ModelType type) const { 408 bool SyncPrefs::GetDataTypePreferred(syncer::ModelType type) const {
406 DCHECK(CalledOnValidThread()); 409 DCHECK(CalledOnValidThread());
407 if (!pref_service_) { 410 if (!pref_service_) {
408 return false; 411 return false;
409 } 412 }
410 const char* pref_name = GetPrefNameForDataType(type); 413 const char* pref_name = GetPrefNameForDataType(type);
411 if (!pref_name) { 414 if (!pref_name) {
412 NOTREACHED(); 415 NOTREACHED();
413 return false; 416 return false;
414 } 417 }
418 if (type == syncer::TABS &&
419 pref_service_->GetUserPrefValue(pref_name) == NULL &&
420 pref_service_->IsUserModifiablePreference(pref_name)) {
421 // If there is no tab sync preference yet (i.e. newly enabled type),
422 // default to the session sync preference value.
423 pref_name = GetPrefNameForDataType(syncer::SESSIONS);
424 }
415 425
416 return pref_service_->GetBoolean(pref_name); 426 return pref_service_->GetBoolean(pref_name);
417 } 427 }
418 428
419 void SyncPrefs::SetDataTypePreferred( 429 void SyncPrefs::SetDataTypePreferred(
420 syncer::ModelType type, bool is_preferred) { 430 syncer::ModelType type, bool is_preferred) {
421 DCHECK(CalledOnValidThread()); 431 DCHECK(CalledOnValidThread());
422 CHECK(pref_service_); 432 CHECK(pref_service_);
423 const char* pref_name = GetPrefNameForDataType(type); 433 const char* pref_name = GetPrefNameForDataType(type);
424 if (!pref_name) { 434 if (!pref_name) {
425 NOTREACHED(); 435 NOTREACHED();
426 return; 436 return;
427 } 437 }
428 pref_service_->SetBoolean(pref_name, is_preferred); 438 pref_service_->SetBoolean(pref_name, is_preferred);
429 } 439 }
430 440
431 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups( 441 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups(
432 syncer::ModelTypeSet registered_types, 442 syncer::ModelTypeSet registered_types,
433 syncer::ModelTypeSet types) const { 443 syncer::ModelTypeSet types) const {
434 DCHECK(registered_types.HasAll(types)); 444 DCHECK(registered_types.HasAll(types));
435 syncer::ModelTypeSet types_with_groups = types; 445 syncer::ModelTypeSet types_with_groups = types;
436 for (PrefGroupsMap::const_iterator i = pref_groups_.begin(); 446 for (PrefGroupsMap::const_iterator i = pref_groups_.begin();
437 i != pref_groups_.end(); ++i) { 447 i != pref_groups_.end(); ++i) {
438 if (types.Has(i->first)) 448 if (types.Has(i->first))
439 types_with_groups.PutAll(i->second); 449 types_with_groups.PutAll(i->second);
440 else
441 types_with_groups.RemoveAll(i->second);
442 } 450 }
443 types_with_groups.RetainAll(registered_types); 451 types_with_groups.RetainAll(registered_types);
444 return types_with_groups; 452 return types_with_groups;
445 } 453 }
446 454
447 } // namespace browser_sync 455 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698