OLD | NEW |
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/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "base/prefs/public/pref_member.h" | 9 #include "base/prefs/public/pref_member.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, | 36 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, |
37 base::Unretained(this))); | 37 base::Unretained(this))); |
38 } | 38 } |
39 } | 39 } |
40 | 40 |
41 SyncPrefs::~SyncPrefs() { | 41 SyncPrefs::~SyncPrefs() { |
42 DCHECK(CalledOnValidThread()); | 42 DCHECK(CalledOnValidThread()); |
43 } | 43 } |
44 | 44 |
45 // static | 45 // static |
46 void SyncPrefs::RegisterUserPrefs(PrefService* prefs, | 46 void SyncPrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) { |
47 PrefRegistrySyncable* registry) { | |
48 // TODO(joi): Remove |prefs| parameter. | 47 // TODO(joi): Remove |prefs| parameter. |
49 registry->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, | 48 registry->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, |
50 false, | 49 false, |
51 PrefRegistrySyncable::UNSYNCABLE_PREF); | 50 PrefRegistrySyncable::UNSYNCABLE_PREF); |
52 registry->RegisterBooleanPref(prefs::kSyncSuppressStart, | 51 registry->RegisterBooleanPref(prefs::kSyncSuppressStart, |
53 false, | 52 false, |
54 PrefRegistrySyncable::UNSYNCABLE_PREF); | 53 PrefRegistrySyncable::UNSYNCABLE_PREF); |
55 registry->RegisterInt64Pref(prefs::kSyncLastSyncedTime, | 54 registry->RegisterInt64Pref(prefs::kSyncLastSyncedTime, |
56 0, | 55 0, |
57 PrefRegistrySyncable::UNSYNCABLE_PREF); | 56 PrefRegistrySyncable::UNSYNCABLE_PREF); |
58 | 57 |
59 // If you've never synced before, or if you're using Chrome OS or Android, | 58 // All datatypes are on by default, but this gets set explicitly |
60 // all datatypes are on by default. | 59 // when you configure sync (when turning it on), in |
61 // TODO(nick): Perhaps a better model would be to always default to false, | 60 // ProfileSyncService::OnUserChoseDatatypes. |
62 // and explicitly call SetDataTypes() when the user shows the wizard. | |
63 #if defined(OS_CHROMEOS) || defined(OS_ANDROID) | |
64 bool enable_by_default = true; | |
65 #else | |
66 bool enable_by_default = !prefs->HasPrefPath(prefs::kSyncHasSetupCompleted); | |
67 #endif | |
68 | |
69 registry->RegisterBooleanPref(prefs::kSyncKeepEverythingSynced, | 61 registry->RegisterBooleanPref(prefs::kSyncKeepEverythingSynced, |
70 enable_by_default, | 62 true, |
71 PrefRegistrySyncable::UNSYNCABLE_PREF); | 63 PrefRegistrySyncable::UNSYNCABLE_PREF); |
72 | 64 |
73 syncer::ModelTypeSet user_types = syncer::UserTypes(); | 65 syncer::ModelTypeSet user_types = syncer::UserTypes(); |
74 | 66 |
75 // Include proxy types as well, as they can be individually selected, | 67 // Include proxy types as well, as they can be individually selected, |
76 // although they don't have sync representations. | 68 // although they don't have sync representations. |
77 user_types.PutAll(syncer::ProxyTypes()); | 69 user_types.PutAll(syncer::ProxyTypes()); |
78 | 70 |
79 // Treat bookmarks specially. | 71 // Treat bookmarks specially. |
80 RegisterDataTypePreferredPref(registry, syncer::BOOKMARKS, true); | 72 RegisterDataTypePreferredPref(registry, syncer::BOOKMARKS, true); |
81 user_types.Remove(syncer::BOOKMARKS); | 73 user_types.Remove(syncer::BOOKMARKS); |
82 | 74 |
83 for (syncer::ModelTypeSet::Iterator it = user_types.First(); | 75 for (syncer::ModelTypeSet::Iterator it = user_types.First(); |
84 it.Good(); it.Inc()) { | 76 it.Good(); it.Inc()) { |
85 RegisterDataTypePreferredPref(registry, it.Get(), enable_by_default); | 77 RegisterDataTypePreferredPref(registry, it.Get(), true); |
86 } | 78 } |
87 | 79 |
88 registry->RegisterBooleanPref(prefs::kSyncManaged, | 80 registry->RegisterBooleanPref(prefs::kSyncManaged, |
89 false, | 81 false, |
90 PrefRegistrySyncable::UNSYNCABLE_PREF); | 82 PrefRegistrySyncable::UNSYNCABLE_PREF); |
91 registry->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken, | 83 registry->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken, |
92 "", | 84 "", |
93 PrefRegistrySyncable::UNSYNCABLE_PREF); | 85 PrefRegistrySyncable::UNSYNCABLE_PREF); |
94 registry->RegisterStringPref(prefs::kSyncKeystoreEncryptionBootstrapToken, | 86 registry->RegisterStringPref(prefs::kSyncKeystoreEncryptionBootstrapToken, |
95 "", | 87 "", |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 if (types.Has(i->first)) | 445 if (types.Has(i->first)) |
454 types_with_groups.PutAll(i->second); | 446 types_with_groups.PutAll(i->second); |
455 else | 447 else |
456 types_with_groups.RemoveAll(i->second); | 448 types_with_groups.RemoveAll(i->second); |
457 } | 449 } |
458 types_with_groups.RetainAll(registered_types); | 450 types_with_groups.RetainAll(registered_types); |
459 return types_with_groups; | 451 return types_with_groups; |
460 } | 452 } |
461 | 453 |
462 } // namespace browser_sync | 454 } // namespace browser_sync |
OLD | NEW |