Chromium Code Reviews| Index: chrome/browser/sync/profile_sync_service.cc |
| diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc |
| index 2567dda38a26194be0a8d2014d797d6cfd9ac1d2..6743ed76e996160e75d9c3c8d104ffa83ecca9d0 100644 |
| --- a/chrome/browser/sync/profile_sync_service.cc |
| +++ b/chrome/browser/sync/profile_sync_service.cc |
| @@ -25,6 +25,7 @@ |
| #include "chrome/browser/prefs/pref_service.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/net/gaia/token_service.h" |
| +#include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h" |
| #include "chrome/browser/sync/glue/change_processor.h" |
| #include "chrome/browser/sync/glue/data_type_controller.h" |
| #include "chrome/browser/sync/glue/data_type_manager.h" |
| @@ -369,6 +370,9 @@ void ProfileSyncService::RegisterPreferences() { |
| enable_by_default); |
| pref_service->RegisterBooleanPref(prefs::kSyncManaged, false); |
| pref_service->RegisterStringPref(prefs::kEncryptionBootstrapToken, ""); |
| + |
| + pref_service->RegisterBooleanPref(prefs::kSyncAutofill_profile, |
| + enable_by_default); |
| } |
| void ProfileSyncService::ClearPreferences() { |
| @@ -457,6 +461,7 @@ void ProfileSyncService::StartUp() { |
| void ProfileSyncService::Shutdown(bool sync_disabled) { |
| // Stop all data type controllers, if needed. |
| + |
|
tim (not reviewing)
2010/12/13 19:24:33
remove newline
lipalani
2010/12/14 21:05:57
Done.
|
| if (data_type_manager_.get()) { |
| if (data_type_manager_->state() != DataTypeManager::STOPPED) { |
| data_type_manager_->Stop(); |
| @@ -551,6 +556,9 @@ const char* ProfileSyncService::GetPrefNameForDataType( |
| return prefs::kSyncPreferences; |
| case syncable::AUTOFILL: |
| return prefs::kSyncAutofill; |
| + case syncable::AUTOFILL_PROFILE: |
| + return prefs::kSyncAutofill_profile; |
| + break; |
| case syncable::THEMES: |
| return prefs::kSyncThemes; |
| case syncable::TYPED_URLS: |
| @@ -880,6 +888,10 @@ void ProfileSyncService::ChangePreferredDataTypes( |
| continue; |
| profile_->GetPrefs()->SetBoolean(pref_name, |
| preferred_types.count(model_type) != 0); |
| + if (syncable::AUTOFILL == model_type) { |
| + profile_->GetPrefs()->SetBoolean(prefs::kSyncAutofill_profile, |
| + preferred_types.count(model_type) != 0); |
| + } |
| } |
| // If we haven't initialized yet, don't configure the DTM as it could cause |
| @@ -891,23 +903,30 @@ void ProfileSyncService::ChangePreferredDataTypes( |
| void ProfileSyncService::GetPreferredDataTypes( |
| syncable::ModelTypeSet* preferred_types) const { |
| preferred_types->clear(); |
| - |
| - // Filter out any datatypes which aren't registered, or for which |
| - // the preference can't be read. |
| - syncable::ModelTypeSet registered_types; |
| - GetRegisteredDataTypes(®istered_types); |
| if (profile_->GetPrefs()->GetBoolean(prefs::kKeepEverythingSynced)) { |
| - *preferred_types = registered_types; |
| + GetRegisteredDataTypes(preferred_types); |
| } else { |
| + // Filter out any datatypes which aren't registered, or for which |
| + // the preference can't be read. |
| + syncable::ModelTypeSet registered_types; |
| + GetRegisteredDataTypes(®istered_types); |
| for (int i = 0; i < syncable::MODEL_TYPE_COUNT; ++i) { |
| syncable::ModelType model_type = syncable::ModelTypeFromInt(i); |
| if (!registered_types.count(model_type)) |
| continue; |
| + if (model_type == syncable::AUTOFILL_PROFILE) |
| + continue; |
| const char* pref_name = GetPrefNameForDataType(model_type); |
| if (!pref_name) |
| continue; |
| - if (profile_->GetPrefs()->GetBoolean(pref_name)) |
| + if (profile_->GetPrefs()->GetBoolean(pref_name)) { |
| preferred_types->insert(model_type); |
| + if (model_type == syncable::AUTOFILL) { |
| + if (!registered_types.count(syncable::AUTOFILL_PROFILE)) |
|
tim (not reviewing)
2010/12/13 19:24:33
can you add a comment explaining you're trying to
lipalani
2010/12/15 09:08:33
Done.
|
| + continue; |
| + preferred_types->insert(syncable::AUTOFILL_PROFILE); |
| + } |
| + } |
| } |
| } |
| } |