| 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 "components/sync/base/sync_prefs.h" | 5 #include "components/sync/base/sync_prefs.h" |
| 6 | 6 |
| 7 #include "base/base64.h" | 7 #include "base/base64.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 // Watch the preference that indicates sync is managed so we can take | 24 // Watch the preference that indicates sync is managed so we can take |
| 25 // appropriate action. | 25 // appropriate action. |
| 26 pref_sync_managed_.Init( | 26 pref_sync_managed_.Init( |
| 27 prefs::kSyncManaged, pref_service_, | 27 prefs::kSyncManaged, pref_service_, |
| 28 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, base::Unretained(this))); | 28 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, base::Unretained(this))); |
| 29 } | 29 } |
| 30 | 30 |
| 31 SyncPrefs::SyncPrefs() : pref_service_(nullptr) {} | 31 SyncPrefs::SyncPrefs() : pref_service_(nullptr) {} |
| 32 | 32 |
| 33 SyncPrefs::~SyncPrefs() { | 33 SyncPrefs::~SyncPrefs() { |
| 34 DCHECK(CalledOnValidThread()); | 34 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 35 } | 35 } |
| 36 | 36 |
| 37 // static | 37 // static |
| 38 void SyncPrefs::RegisterProfilePrefs( | 38 void SyncPrefs::RegisterProfilePrefs( |
| 39 user_prefs::PrefRegistrySyncable* registry) { | 39 user_prefs::PrefRegistrySyncable* registry) { |
| 40 registry->RegisterBooleanPref(prefs::kSyncFirstSetupComplete, false); | 40 registry->RegisterBooleanPref(prefs::kSyncFirstSetupComplete, false); |
| 41 registry->RegisterBooleanPref(prefs::kSyncSuppressStart, false); | 41 registry->RegisterBooleanPref(prefs::kSyncSuppressStart, false); |
| 42 registry->RegisterInt64Pref(prefs::kSyncLastSyncedTime, 0); | 42 registry->RegisterInt64Pref(prefs::kSyncLastSyncedTime, 0); |
| 43 registry->RegisterInt64Pref(prefs::kSyncLastPollTime, 0); | 43 registry->RegisterInt64Pref(prefs::kSyncLastPollTime, 0); |
| 44 registry->RegisterInt64Pref(prefs::kSyncFirstSyncTime, 0); | 44 registry->RegisterInt64Pref(prefs::kSyncFirstSyncTime, 0); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 registry->RegisterStringPref(prefs::kSyncLastRunVersion, std::string()); | 86 registry->RegisterStringPref(prefs::kSyncLastRunVersion, std::string()); |
| 87 registry->RegisterBooleanPref( | 87 registry->RegisterBooleanPref( |
| 88 prefs::kSyncPassphraseEncryptionTransitionInProgress, false); | 88 prefs::kSyncPassphraseEncryptionTransitionInProgress, false); |
| 89 registry->RegisterStringPref(prefs::kSyncNigoriStateForPassphraseTransition, | 89 registry->RegisterStringPref(prefs::kSyncNigoriStateForPassphraseTransition, |
| 90 std::string()); | 90 std::string()); |
| 91 registry->RegisterBooleanPref(prefs::kEnableLocalSyncBackend, false); | 91 registry->RegisterBooleanPref(prefs::kEnableLocalSyncBackend, false); |
| 92 registry->RegisterFilePathPref(prefs::kLocalSyncBackendDir, base::FilePath()); | 92 registry->RegisterFilePathPref(prefs::kLocalSyncBackendDir, base::FilePath()); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void SyncPrefs::AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer) { | 95 void SyncPrefs::AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer) { |
| 96 DCHECK(CalledOnValidThread()); | 96 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 97 sync_pref_observers_.AddObserver(sync_pref_observer); | 97 sync_pref_observers_.AddObserver(sync_pref_observer); |
| 98 } | 98 } |
| 99 | 99 |
| 100 void SyncPrefs::RemoveSyncPrefObserver(SyncPrefObserver* sync_pref_observer) { | 100 void SyncPrefs::RemoveSyncPrefObserver(SyncPrefObserver* sync_pref_observer) { |
| 101 DCHECK(CalledOnValidThread()); | 101 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 102 sync_pref_observers_.RemoveObserver(sync_pref_observer); | 102 sync_pref_observers_.RemoveObserver(sync_pref_observer); |
| 103 } | 103 } |
| 104 | 104 |
| 105 void SyncPrefs::ClearPreferences() { | 105 void SyncPrefs::ClearPreferences() { |
| 106 DCHECK(CalledOnValidThread()); | 106 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 107 pref_service_->ClearPref(prefs::kSyncLastSyncedTime); | 107 pref_service_->ClearPref(prefs::kSyncLastSyncedTime); |
| 108 pref_service_->ClearPref(prefs::kSyncLastPollTime); | 108 pref_service_->ClearPref(prefs::kSyncLastPollTime); |
| 109 pref_service_->ClearPref(prefs::kSyncFirstSetupComplete); | 109 pref_service_->ClearPref(prefs::kSyncFirstSetupComplete); |
| 110 pref_service_->ClearPref(prefs::kSyncEncryptionBootstrapToken); | 110 pref_service_->ClearPref(prefs::kSyncEncryptionBootstrapToken); |
| 111 pref_service_->ClearPref(prefs::kSyncKeystoreEncryptionBootstrapToken); | 111 pref_service_->ClearPref(prefs::kSyncKeystoreEncryptionBootstrapToken); |
| 112 pref_service_->ClearPref(prefs::kSyncPassphrasePrompted); | 112 pref_service_->ClearPref(prefs::kSyncPassphrasePrompted); |
| 113 pref_service_->ClearPref(prefs::kSyncMemoryPressureWarningCount); | 113 pref_service_->ClearPref(prefs::kSyncMemoryPressureWarningCount); |
| 114 pref_service_->ClearPref(prefs::kSyncShutdownCleanly); | 114 pref_service_->ClearPref(prefs::kSyncShutdownCleanly); |
| 115 pref_service_->ClearPref(prefs::kSyncInvalidationVersions); | 115 pref_service_->ClearPref(prefs::kSyncInvalidationVersions); |
| 116 pref_service_->ClearPref(prefs::kSyncLastRunVersion); | 116 pref_service_->ClearPref(prefs::kSyncLastRunVersion); |
| 117 pref_service_->ClearPref( | 117 pref_service_->ClearPref( |
| 118 prefs::kSyncPassphraseEncryptionTransitionInProgress); | 118 prefs::kSyncPassphraseEncryptionTransitionInProgress); |
| 119 pref_service_->ClearPref(prefs::kSyncNigoriStateForPassphraseTransition); | 119 pref_service_->ClearPref(prefs::kSyncNigoriStateForPassphraseTransition); |
| 120 | 120 |
| 121 // TODO(nick): The current behavior does not clear | 121 // TODO(nick): The current behavior does not clear |
| 122 // e.g. prefs::kSyncBookmarks. Is that really what we want? | 122 // e.g. prefs::kSyncBookmarks. Is that really what we want? |
| 123 } | 123 } |
| 124 | 124 |
| 125 bool SyncPrefs::IsFirstSetupComplete() const { | 125 bool SyncPrefs::IsFirstSetupComplete() const { |
| 126 DCHECK(CalledOnValidThread()); | 126 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 127 return pref_service_->GetBoolean(prefs::kSyncFirstSetupComplete); | 127 return pref_service_->GetBoolean(prefs::kSyncFirstSetupComplete); |
| 128 } | 128 } |
| 129 | 129 |
| 130 void SyncPrefs::SetFirstSetupComplete() { | 130 void SyncPrefs::SetFirstSetupComplete() { |
| 131 DCHECK(CalledOnValidThread()); | 131 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 132 pref_service_->SetBoolean(prefs::kSyncFirstSetupComplete, true); | 132 pref_service_->SetBoolean(prefs::kSyncFirstSetupComplete, true); |
| 133 } | 133 } |
| 134 | 134 |
| 135 bool SyncPrefs::SyncHasAuthError() const { | 135 bool SyncPrefs::SyncHasAuthError() const { |
| 136 DCHECK(CalledOnValidThread()); | 136 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 137 return pref_service_->GetBoolean(prefs::kSyncHasAuthError); | 137 return pref_service_->GetBoolean(prefs::kSyncHasAuthError); |
| 138 } | 138 } |
| 139 | 139 |
| 140 void SyncPrefs::SetSyncAuthError(bool error) { | 140 void SyncPrefs::SetSyncAuthError(bool error) { |
| 141 DCHECK(CalledOnValidThread()); | 141 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 142 pref_service_->SetBoolean(prefs::kSyncHasAuthError, error); | 142 pref_service_->SetBoolean(prefs::kSyncHasAuthError, error); |
| 143 } | 143 } |
| 144 | 144 |
| 145 bool SyncPrefs::IsSyncRequested() const { | 145 bool SyncPrefs::IsSyncRequested() const { |
| 146 DCHECK(CalledOnValidThread()); | 146 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 147 // IsSyncRequested is the inverse of the old SuppressStart pref. | 147 // IsSyncRequested is the inverse of the old SuppressStart pref. |
| 148 // Since renaming a pref value is hard, here we still use the old one. | 148 // Since renaming a pref value is hard, here we still use the old one. |
| 149 return !pref_service_->GetBoolean(prefs::kSyncSuppressStart); | 149 return !pref_service_->GetBoolean(prefs::kSyncSuppressStart); |
| 150 } | 150 } |
| 151 | 151 |
| 152 void SyncPrefs::SetSyncRequested(bool is_requested) { | 152 void SyncPrefs::SetSyncRequested(bool is_requested) { |
| 153 DCHECK(CalledOnValidThread()); | 153 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 154 // See IsSyncRequested for why we use this pref and !is_requested. | 154 // See IsSyncRequested for why we use this pref and !is_requested. |
| 155 pref_service_->SetBoolean(prefs::kSyncSuppressStart, !is_requested); | 155 pref_service_->SetBoolean(prefs::kSyncSuppressStart, !is_requested); |
| 156 } | 156 } |
| 157 | 157 |
| 158 base::Time SyncPrefs::GetLastSyncedTime() const { | 158 base::Time SyncPrefs::GetLastSyncedTime() const { |
| 159 DCHECK(CalledOnValidThread()); | 159 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 160 return base::Time::FromInternalValue( | 160 return base::Time::FromInternalValue( |
| 161 pref_service_->GetInt64(prefs::kSyncLastSyncedTime)); | 161 pref_service_->GetInt64(prefs::kSyncLastSyncedTime)); |
| 162 } | 162 } |
| 163 | 163 |
| 164 void SyncPrefs::SetLastSyncedTime(base::Time time) { | 164 void SyncPrefs::SetLastSyncedTime(base::Time time) { |
| 165 DCHECK(CalledOnValidThread()); | 165 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 166 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue()); | 166 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue()); |
| 167 } | 167 } |
| 168 | 168 |
| 169 base::Time SyncPrefs::GetLastPollTime() const { | 169 base::Time SyncPrefs::GetLastPollTime() const { |
| 170 DCHECK(CalledOnValidThread()); | 170 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 171 return base::Time::FromInternalValue( | 171 return base::Time::FromInternalValue( |
| 172 pref_service_->GetInt64(prefs::kSyncLastSyncedTime)); | 172 pref_service_->GetInt64(prefs::kSyncLastSyncedTime)); |
| 173 } | 173 } |
| 174 | 174 |
| 175 void SyncPrefs::SetLastPollTime(base::Time time) { | 175 void SyncPrefs::SetLastPollTime(base::Time time) { |
| 176 DCHECK(CalledOnValidThread()); | 176 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 177 pref_service_->SetInt64(prefs::kSyncLastPollTime, time.ToInternalValue()); | 177 pref_service_->SetInt64(prefs::kSyncLastPollTime, time.ToInternalValue()); |
| 178 } | 178 } |
| 179 | 179 |
| 180 bool SyncPrefs::HasKeepEverythingSynced() const { | 180 bool SyncPrefs::HasKeepEverythingSynced() const { |
| 181 DCHECK(CalledOnValidThread()); | 181 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 182 return pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced); | 182 return pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced); |
| 183 } | 183 } |
| 184 | 184 |
| 185 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { | 185 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { |
| 186 DCHECK(CalledOnValidThread()); | 186 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 187 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, | 187 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, |
| 188 keep_everything_synced); | 188 keep_everything_synced); |
| 189 } | 189 } |
| 190 | 190 |
| 191 ModelTypeSet SyncPrefs::GetPreferredDataTypes( | 191 ModelTypeSet SyncPrefs::GetPreferredDataTypes( |
| 192 ModelTypeSet registered_types) const { | 192 ModelTypeSet registered_types) const { |
| 193 DCHECK(CalledOnValidThread()); | 193 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 194 | 194 |
| 195 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { | 195 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { |
| 196 return registered_types; | 196 return registered_types; |
| 197 } | 197 } |
| 198 | 198 |
| 199 ModelTypeSet preferred_types; | 199 ModelTypeSet preferred_types; |
| 200 for (ModelTypeSet::Iterator it = registered_types.First(); it.Good(); | 200 for (ModelTypeSet::Iterator it = registered_types.First(); it.Good(); |
| 201 it.Inc()) { | 201 it.Inc()) { |
| 202 if (GetDataTypePreferred(it.Get())) { | 202 if (GetDataTypePreferred(it.Get())) { |
| 203 preferred_types.Put(it.Get()); | 203 preferred_types.Put(it.Get()); |
| 204 } | 204 } |
| 205 } | 205 } |
| 206 return ResolvePrefGroups(registered_types, preferred_types); | 206 return ResolvePrefGroups(registered_types, preferred_types); |
| 207 } | 207 } |
| 208 | 208 |
| 209 void SyncPrefs::SetPreferredDataTypes(ModelTypeSet registered_types, | 209 void SyncPrefs::SetPreferredDataTypes(ModelTypeSet registered_types, |
| 210 ModelTypeSet preferred_types) { | 210 ModelTypeSet preferred_types) { |
| 211 DCHECK(CalledOnValidThread()); | 211 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 212 preferred_types = ResolvePrefGroups(registered_types, preferred_types); | 212 preferred_types = ResolvePrefGroups(registered_types, preferred_types); |
| 213 DCHECK(registered_types.HasAll(preferred_types)); | 213 DCHECK(registered_types.HasAll(preferred_types)); |
| 214 for (ModelTypeSet::Iterator i = registered_types.First(); i.Good(); i.Inc()) { | 214 for (ModelTypeSet::Iterator i = registered_types.First(); i.Good(); i.Inc()) { |
| 215 SetDataTypePreferred(i.Get(), preferred_types.Has(i.Get())); | 215 SetDataTypePreferred(i.Get(), preferred_types.Has(i.Get())); |
| 216 } | 216 } |
| 217 } | 217 } |
| 218 | 218 |
| 219 bool SyncPrefs::IsManaged() const { | 219 bool SyncPrefs::IsManaged() const { |
| 220 DCHECK(CalledOnValidThread()); | 220 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 221 return pref_service_->GetBoolean(prefs::kSyncManaged); | 221 return pref_service_->GetBoolean(prefs::kSyncManaged); |
| 222 } | 222 } |
| 223 | 223 |
| 224 std::string SyncPrefs::GetEncryptionBootstrapToken() const { | 224 std::string SyncPrefs::GetEncryptionBootstrapToken() const { |
| 225 DCHECK(CalledOnValidThread()); | 225 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 226 return pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken); | 226 return pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken); |
| 227 } | 227 } |
| 228 | 228 |
| 229 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) { | 229 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) { |
| 230 DCHECK(CalledOnValidThread()); | 230 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 231 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token); | 231 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token); |
| 232 } | 232 } |
| 233 | 233 |
| 234 std::string SyncPrefs::GetKeystoreEncryptionBootstrapToken() const { | 234 std::string SyncPrefs::GetKeystoreEncryptionBootstrapToken() const { |
| 235 DCHECK(CalledOnValidThread()); | 235 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 236 return pref_service_->GetString(prefs::kSyncKeystoreEncryptionBootstrapToken); | 236 return pref_service_->GetString(prefs::kSyncKeystoreEncryptionBootstrapToken); |
| 237 } | 237 } |
| 238 | 238 |
| 239 void SyncPrefs::SetKeystoreEncryptionBootstrapToken(const std::string& token) { | 239 void SyncPrefs::SetKeystoreEncryptionBootstrapToken(const std::string& token) { |
| 240 DCHECK(CalledOnValidThread()); | 240 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 241 pref_service_->SetString(prefs::kSyncKeystoreEncryptionBootstrapToken, token); | 241 pref_service_->SetString(prefs::kSyncKeystoreEncryptionBootstrapToken, token); |
| 242 } | 242 } |
| 243 | 243 |
| 244 std::string SyncPrefs::GetSyncSessionsGUID() const { | 244 std::string SyncPrefs::GetSyncSessionsGUID() const { |
| 245 DCHECK(CalledOnValidThread()); | 245 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 246 return pref_service_->GetString(prefs::kSyncSessionsGUID); | 246 return pref_service_->GetString(prefs::kSyncSessionsGUID); |
| 247 } | 247 } |
| 248 | 248 |
| 249 void SyncPrefs::SetSyncSessionsGUID(const std::string& guid) { | 249 void SyncPrefs::SetSyncSessionsGUID(const std::string& guid) { |
| 250 DCHECK(CalledOnValidThread()); | 250 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 251 pref_service_->SetString(prefs::kSyncSessionsGUID, guid); | 251 pref_service_->SetString(prefs::kSyncSessionsGUID, guid); |
| 252 } | 252 } |
| 253 | 253 |
| 254 // static | 254 // static |
| 255 const char* SyncPrefs::GetPrefNameForDataType(ModelType type) { | 255 const char* SyncPrefs::GetPrefNameForDataType(ModelType type) { |
| 256 switch (type) { | 256 switch (type) { |
| 257 case UNSPECIFIED: | 257 case UNSPECIFIED: |
| 258 case TOP_LEVEL_FOLDER: | 258 case TOP_LEVEL_FOLDER: |
| 259 break; | 259 break; |
| 260 case BOOKMARKS: | 260 case BOOKMARKS: |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 case EXPERIMENTS: | 333 case EXPERIMENTS: |
| 334 case MODEL_TYPE_COUNT: | 334 case MODEL_TYPE_COUNT: |
| 335 break; | 335 break; |
| 336 } | 336 } |
| 337 NOTREACHED() << "No pref mapping for type " << ModelTypeToString(type); | 337 NOTREACHED() << "No pref mapping for type " << ModelTypeToString(type); |
| 338 return nullptr; | 338 return nullptr; |
| 339 } | 339 } |
| 340 | 340 |
| 341 #if defined(OS_CHROMEOS) | 341 #if defined(OS_CHROMEOS) |
| 342 std::string SyncPrefs::GetSpareBootstrapToken() const { | 342 std::string SyncPrefs::GetSpareBootstrapToken() const { |
| 343 DCHECK(CalledOnValidThread()); | 343 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 344 return pref_service_->GetString(prefs::kSyncSpareBootstrapToken); | 344 return pref_service_->GetString(prefs::kSyncSpareBootstrapToken); |
| 345 } | 345 } |
| 346 | 346 |
| 347 void SyncPrefs::SetSpareBootstrapToken(const std::string& token) { | 347 void SyncPrefs::SetSpareBootstrapToken(const std::string& token) { |
| 348 DCHECK(CalledOnValidThread()); | 348 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 349 pref_service_->SetString(prefs::kSyncSpareBootstrapToken, token); | 349 pref_service_->SetString(prefs::kSyncSpareBootstrapToken, token); |
| 350 } | 350 } |
| 351 #endif | 351 #endif |
| 352 | 352 |
| 353 void SyncPrefs::OnSyncManagedPrefChanged() { | 353 void SyncPrefs::OnSyncManagedPrefChanged() { |
| 354 DCHECK(CalledOnValidThread()); | 354 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 355 for (auto& observer : sync_pref_observers_) | 355 for (auto& observer : sync_pref_observers_) |
| 356 observer.OnSyncManagedPrefChange(*pref_sync_managed_); | 356 observer.OnSyncManagedPrefChange(*pref_sync_managed_); |
| 357 } | 357 } |
| 358 | 358 |
| 359 void SyncPrefs::SetManagedForTest(bool is_managed) { | 359 void SyncPrefs::SetManagedForTest(bool is_managed) { |
| 360 DCHECK(CalledOnValidThread()); | 360 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 361 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); | 361 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); |
| 362 } | 362 } |
| 363 | 363 |
| 364 void SyncPrefs::RegisterPrefGroups() { | 364 void SyncPrefs::RegisterPrefGroups() { |
| 365 pref_groups_[APPS].Put(APP_NOTIFICATIONS); | 365 pref_groups_[APPS].Put(APP_NOTIFICATIONS); |
| 366 pref_groups_[APPS].Put(APP_SETTINGS); | 366 pref_groups_[APPS].Put(APP_SETTINGS); |
| 367 pref_groups_[APPS].Put(APP_LIST); | 367 pref_groups_[APPS].Put(APP_LIST); |
| 368 pref_groups_[APPS].Put(ARC_PACKAGE); | 368 pref_groups_[APPS].Put(ARC_PACKAGE); |
| 369 pref_groups_[APPS].Put(READING_LIST); | 369 pref_groups_[APPS].Put(READING_LIST); |
| 370 | 370 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 399 bool is_preferred) { | 399 bool is_preferred) { |
| 400 const char* pref_name = GetPrefNameForDataType(type); | 400 const char* pref_name = GetPrefNameForDataType(type); |
| 401 if (!pref_name) { | 401 if (!pref_name) { |
| 402 NOTREACHED(); | 402 NOTREACHED(); |
| 403 return; | 403 return; |
| 404 } | 404 } |
| 405 registry->RegisterBooleanPref(pref_name, is_preferred); | 405 registry->RegisterBooleanPref(pref_name, is_preferred); |
| 406 } | 406 } |
| 407 | 407 |
| 408 bool SyncPrefs::GetDataTypePreferred(ModelType type) const { | 408 bool SyncPrefs::GetDataTypePreferred(ModelType type) const { |
| 409 DCHECK(CalledOnValidThread()); | 409 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 410 const char* pref_name = GetPrefNameForDataType(type); | 410 const char* pref_name = GetPrefNameForDataType(type); |
| 411 if (!pref_name) { | 411 if (!pref_name) { |
| 412 NOTREACHED(); | 412 NOTREACHED(); |
| 413 return false; | 413 return false; |
| 414 } | 414 } |
| 415 | 415 |
| 416 // Device info is always enabled. | 416 // Device info is always enabled. |
| 417 if (pref_name == prefs::kSyncDeviceInfo) | 417 if (pref_name == prefs::kSyncDeviceInfo) |
| 418 return true; | 418 return true; |
| 419 | 419 |
| 420 if (type == PROXY_TABS && | 420 if (type == PROXY_TABS && |
| 421 pref_service_->GetUserPrefValue(pref_name) == nullptr && | 421 pref_service_->GetUserPrefValue(pref_name) == nullptr && |
| 422 pref_service_->IsUserModifiablePreference(pref_name)) { | 422 pref_service_->IsUserModifiablePreference(pref_name)) { |
| 423 // If there is no tab sync preference yet (i.e. newly enabled type), | 423 // If there is no tab sync preference yet (i.e. newly enabled type), |
| 424 // default to the session sync preference value. | 424 // default to the session sync preference value. |
| 425 pref_name = GetPrefNameForDataType(SESSIONS); | 425 pref_name = GetPrefNameForDataType(SESSIONS); |
| 426 } | 426 } |
| 427 | 427 |
| 428 return pref_service_->GetBoolean(pref_name); | 428 return pref_service_->GetBoolean(pref_name); |
| 429 } | 429 } |
| 430 | 430 |
| 431 void SyncPrefs::SetDataTypePreferred(ModelType type, bool is_preferred) { | 431 void SyncPrefs::SetDataTypePreferred(ModelType type, bool is_preferred) { |
| 432 DCHECK(CalledOnValidThread()); | 432 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 433 const char* pref_name = GetPrefNameForDataType(type); | 433 const char* pref_name = GetPrefNameForDataType(type); |
| 434 if (!pref_name) { | 434 if (!pref_name) { |
| 435 NOTREACHED(); | 435 NOTREACHED(); |
| 436 return; | 436 return; |
| 437 } | 437 } |
| 438 | 438 |
| 439 // Device info is always preferred. | 439 // Device info is always preferred. |
| 440 if (type == DEVICE_INFO) | 440 if (type == DEVICE_INFO) |
| 441 return; | 441 return; |
| 442 | 442 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 | 560 |
| 561 bool SyncPrefs::IsLocalSyncEnabled() const { | 561 bool SyncPrefs::IsLocalSyncEnabled() const { |
| 562 return pref_service_->GetBoolean(prefs::kEnableLocalSyncBackend); | 562 return pref_service_->GetBoolean(prefs::kEnableLocalSyncBackend); |
| 563 } | 563 } |
| 564 | 564 |
| 565 base::FilePath SyncPrefs::GetLocalSyncBackendDir() const { | 565 base::FilePath SyncPrefs::GetLocalSyncBackendDir() const { |
| 566 return pref_service_->GetFilePath(prefs::kLocalSyncBackendDir); | 566 return pref_service_->GetFilePath(prefs::kLocalSyncBackendDir); |
| 567 } | 567 } |
| 568 | 568 |
| 569 } // namespace syncer | 569 } // namespace syncer |
| OLD | NEW |