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

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

Issue 6905044: Refactor preference syncing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really fix. And rebase Created 9 years, 7 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) 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/profile_sync_service.h" 5 #include "chrome/browser/sync/profile_sync_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <map> 8 #include <map>
9 #include <ostream> 9 #include <ostream>
10 #include <set> 10 #include <set>
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 << "is invalid: " << value; 235 << "is invalid: " << value;
236 } 236 }
237 } 237 }
238 } 238 }
239 } 239 }
240 240
241 void ProfileSyncService::RegisterPreferences() { 241 void ProfileSyncService::RegisterPreferences() {
242 PrefService* pref_service = profile_->GetPrefs(); 242 PrefService* pref_service = profile_->GetPrefs();
243 if (pref_service->FindPreference(prefs::kSyncLastSyncedTime)) 243 if (pref_service->FindPreference(prefs::kSyncLastSyncedTime))
244 return; 244 return;
245 pref_service->RegisterInt64Pref(prefs::kSyncLastSyncedTime, 0); 245 pref_service->RegisterInt64Pref(prefs::kSyncLastSyncedTime,
246 pref_service->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, false); 246 0,
247 pref_service->RegisterBooleanPref(prefs::kSyncSuppressStart, false); 247 PrefService::UNSYNCABLE_PREF);
248 pref_service->RegisterBooleanPref(prefs::kSyncHasSetupCompleted,
249 false,
250 PrefService::UNSYNCABLE_PREF);
251 pref_service->RegisterBooleanPref(prefs::kSyncSuppressStart,
252 false,
253 PrefService::UNSYNCABLE_PREF);
248 254
249 // If you've never synced before, or if you're using Chrome OS, all datatypes 255 // If you've never synced before, or if you're using Chrome OS, all datatypes
250 // are on by default. 256 // are on by default.
251 // TODO(nick): Perhaps a better model would be to always default to false, 257 // TODO(nick): Perhaps a better model would be to always default to false,
252 // and explicitly call SetDataTypes() when the user shows the wizard. 258 // and explicitly call SetDataTypes() when the user shows the wizard.
253 #if defined(OS_CHROMEOS) 259 #if defined(OS_CHROMEOS)
254 bool enable_by_default = true; 260 bool enable_by_default = true;
255 #else 261 #else
256 bool enable_by_default = 262 bool enable_by_default =
257 !pref_service->HasPrefPath(prefs::kSyncHasSetupCompleted); 263 !pref_service->HasPrefPath(prefs::kSyncHasSetupCompleted);
258 #endif 264 #endif
259 265
260 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, true); 266 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks,
261 pref_service->RegisterBooleanPref(prefs::kSyncPasswords, enable_by_default); 267 true,
262 pref_service->RegisterBooleanPref(prefs::kSyncPreferences, enable_by_default); 268 PrefService::UNSYNCABLE_PREF);
263 pref_service->RegisterBooleanPref(prefs::kSyncAutofill, enable_by_default); 269 pref_service->RegisterBooleanPref(prefs::kSyncPasswords,
264 pref_service->RegisterBooleanPref(prefs::kSyncThemes, enable_by_default); 270 enable_by_default,
265 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, enable_by_default); 271 PrefService::UNSYNCABLE_PREF);
266 pref_service->RegisterBooleanPref(prefs::kSyncExtensions, enable_by_default); 272 pref_service->RegisterBooleanPref(prefs::kSyncPreferences,
267 pref_service->RegisterBooleanPref(prefs::kSyncApps, enable_by_default); 273 enable_by_default,
268 pref_service->RegisterBooleanPref(prefs::kSyncSessions, enable_by_default); 274 PrefService::UNSYNCABLE_PREF);
275 pref_service->RegisterBooleanPref(prefs::kSyncAutofill,
276 enable_by_default,
277 PrefService::UNSYNCABLE_PREF);
278 pref_service->RegisterBooleanPref(prefs::kSyncThemes,
279 enable_by_default,
280 PrefService::UNSYNCABLE_PREF);
281 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls,
282 enable_by_default,
283 PrefService::UNSYNCABLE_PREF);
284 pref_service->RegisterBooleanPref(prefs::kSyncExtensions,
285 enable_by_default,
286 PrefService::UNSYNCABLE_PREF);
287 pref_service->RegisterBooleanPref(prefs::kSyncApps,
288 enable_by_default,
289 PrefService::UNSYNCABLE_PREF);
290 pref_service->RegisterBooleanPref(prefs::kSyncSessions,
291 enable_by_default,
292 PrefService::UNSYNCABLE_PREF);
269 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced, 293 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced,
270 enable_by_default); 294 enable_by_default,
271 pref_service->RegisterBooleanPref(prefs::kSyncManaged, false); 295 PrefService::UNSYNCABLE_PREF);
272 pref_service->RegisterStringPref(prefs::kEncryptionBootstrapToken, ""); 296 pref_service->RegisterBooleanPref(prefs::kSyncManaged,
297 false,
298 PrefService::UNSYNCABLE_PREF);
299 pref_service->RegisterStringPref(prefs::kEncryptionBootstrapToken,
300 "",
301 PrefService::UNSYNCABLE_PREF);
273 302
274 pref_service->RegisterBooleanPref(prefs::kSyncAutofillProfile, 303 pref_service->RegisterBooleanPref(prefs::kSyncAutofillProfile,
275 enable_by_default); 304 enable_by_default,
305 PrefService::UNSYNCABLE_PREF);
276 } 306 }
277 307
278 void ProfileSyncService::ClearPreferences() { 308 void ProfileSyncService::ClearPreferences() {
279 PrefService* pref_service = profile_->GetPrefs(); 309 PrefService* pref_service = profile_->GetPrefs();
280 pref_service->ClearPref(prefs::kSyncLastSyncedTime); 310 pref_service->ClearPref(prefs::kSyncLastSyncedTime);
281 pref_service->ClearPref(prefs::kSyncHasSetupCompleted); 311 pref_service->ClearPref(prefs::kSyncHasSetupCompleted);
282 pref_service->ClearPref(prefs::kEncryptionBootstrapToken); 312 pref_service->ClearPref(prefs::kEncryptionBootstrapToken);
283 313
284 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks. 314 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks.
285 // Is that really what we want? 315 // Is that really what we want?
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 } 1122 }
1093 1123
1094 void ProfileSyncService::ActivateDataType( 1124 void ProfileSyncService::ActivateDataType(
1095 DataTypeController* data_type_controller, 1125 DataTypeController* data_type_controller,
1096 ChangeProcessor* change_processor) { 1126 ChangeProcessor* change_processor) {
1097 if (!backend_.get()) { 1127 if (!backend_.get()) {
1098 NOTREACHED(); 1128 NOTREACHED();
1099 return; 1129 return;
1100 } 1130 }
1101 DCHECK(backend_initialized_); 1131 DCHECK(backend_initialized_);
1102 change_processor->Start(profile(), backend_->GetUserShare());
1103 backend_->ActivateDataType(data_type_controller, change_processor); 1132 backend_->ActivateDataType(data_type_controller, change_processor);
1104 } 1133 }
1105 1134
1106 void ProfileSyncService::DeactivateDataType( 1135 void ProfileSyncService::DeactivateDataType(
1107 DataTypeController* data_type_controller, 1136 DataTypeController* data_type_controller,
1108 ChangeProcessor* change_processor) { 1137 ChangeProcessor* change_processor) {
1109 change_processor->Stop(); 1138 if (!backend_.get())
1110 if (backend_.get()) 1139 return;
1111 backend_->DeactivateDataType(data_type_controller, change_processor); 1140 backend_->DeactivateDataType(data_type_controller, change_processor);
1112 } 1141 }
1113 1142
1114 void ProfileSyncService::SetPassphrase(const std::string& passphrase, 1143 void ProfileSyncService::SetPassphrase(const std::string& passphrase,
1115 bool is_explicit, 1144 bool is_explicit,
1116 bool is_creation) { 1145 bool is_creation) {
1117 if (ShouldPushChanges() || IsPassphraseRequired()) { 1146 if (ShouldPushChanges() || IsPassphraseRequired()) {
1118 backend_->SetPassphrase(passphrase, is_explicit); 1147 backend_->SetPassphrase(passphrase, is_explicit);
1119 } else { 1148 } else {
1120 cached_passphrase_.value = passphrase; 1149 cached_passphrase_.value = passphrase;
1121 cached_passphrase_.is_explicit = is_explicit; 1150 cached_passphrase_.is_explicit = is_explicit;
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1297 // is initialized, all enabled data types are consistent with one 1326 // is initialized, all enabled data types are consistent with one
1298 // another, and no unrecoverable error has transpired. 1327 // another, and no unrecoverable error has transpired.
1299 if (unrecoverable_error_detected_) 1328 if (unrecoverable_error_detected_)
1300 return false; 1329 return false;
1301 1330
1302 if (!data_type_manager_.get()) 1331 if (!data_type_manager_.get())
1303 return false; 1332 return false;
1304 1333
1305 return data_type_manager_->state() == DataTypeManager::CONFIGURED; 1334 return data_type_manager_->state() == DataTypeManager::CONFIGURED;
1306 } 1335 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/profile_sync_service_preference_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698