Index: chrome/browser/ui/webui/sync_setup_handler.cc |
diff --git a/chrome/browser/ui/webui/sync_setup_handler.cc b/chrome/browser/ui/webui/sync_setup_handler.cc |
index 63ff4362ab80b94cf866af809c71e49554a7bd9a..914f823f745edb3a76a69797f61db8f241a93202 100644 |
--- a/chrome/browser/ui/webui/sync_setup_handler.cc |
+++ b/chrome/browser/ui/webui/sync_setup_handler.cc |
@@ -174,6 +174,11 @@ bool HasConfigurationChanged(const SyncConfiguration& config, |
Profile* profile) { |
CHECK(profile); |
+ // This function must be updated every time a new sync datatype is added to |
+ // the sync preferences page. |
+ COMPILE_ASSERT(17 == syncable::MODEL_TYPE_COUNT, |
+ UpdateCustomConfigHistogram); |
+ |
// If service is null or if this is a first time configuration, return true. |
ProfileSyncService* service = profile->GetProfileSyncService(); |
if (!service || !service->HasSyncSetupCompleted()) |
@@ -193,6 +198,8 @@ bool HasConfigurationChanged(const SyncConfiguration& config, |
pref_service->GetBoolean(prefs::kSyncKeepEverythingSynced)) |
return true; |
+ // Only check the data types that are explicitly listed on the sync |
+ // preferences page. |
const syncable::ModelTypeSet& types = config.data_types; |
if (((types.find(syncable::BOOKMARKS) != types.end()) != |
pref_service->GetBoolean(prefs::kSyncBookmarks)) || |
@@ -206,16 +213,12 @@ bool HasConfigurationChanged(const SyncConfiguration& config, |
pref_service->GetBoolean(prefs::kSyncAutofill)) || |
((types.find(syncable::EXTENSIONS) != types.end()) != |
pref_service->GetBoolean(prefs::kSyncExtensions)) || |
- ((types.find(syncable::EXTENSION_SETTINGS) != types.end()) != |
- pref_service->GetBoolean(prefs::kSyncExtensionSettings)) || |
((types.find(syncable::TYPED_URLS) != types.end()) != |
pref_service->GetBoolean(prefs::kSyncTypedUrls)) || |
((types.find(syncable::SESSIONS) != types.end()) != |
pref_service->GetBoolean(prefs::kSyncSessions)) || |
((types.find(syncable::APPS) != types.end()) != |
- pref_service->GetBoolean(prefs::kSyncApps)) || |
- ((types.find(syncable::APP_SETTINGS) != types.end()) != |
- pref_service->GetBoolean(prefs::kSyncAppSettings))) |
+ pref_service->GetBoolean(prefs::kSyncApps))) |
return true; |
return false; |
@@ -555,6 +558,44 @@ void SyncSetupHandler::HandleConfigure(const ListValue* args) { |
return; |
} |
+ // We do not do UMA logging during unit tests. |
+ if (web_ui_) { |
+ Profile* profile = Profile::FromWebUI(web_ui_); |
+ if (HasConfigurationChanged(configuration, profile)) { |
+ UMA_HISTOGRAM_BOOLEAN("Sync.SyncEverything", |
+ configuration.sync_everything); |
+ if (!configuration.sync_everything) { |
+ // Only log the data types that are explicitly listed on the sync |
+ // preferences page. |
+ const syncable::ModelTypeSet& types = configuration.data_types; |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncBookmarks", |
+ types.find(syncable::BOOKMARKS) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncPreferences", |
+ types.find(syncable::PREFERENCES) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncThemes", |
+ types.find(syncable::THEMES) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncPasswords", |
+ types.find(syncable::PASSWORDS) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncAutofill", |
+ types.find(syncable::AUTOFILL) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncExtensions", |
+ types.find(syncable::EXTENSIONS) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncTypedUrls", |
+ types.find(syncable::TYPED_URLS) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncSessions", |
+ types.find(syncable::SESSIONS) != types.end()); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncApps", |
+ types.find(syncable::APPS) != types.end()); |
+ COMPILE_ASSERT(17 == syncable::MODEL_TYPE_COUNT, |
+ UpdateCustomConfigHistogram); |
+ } |
+ UMA_HISTOGRAM_BOOLEAN("Sync.EncryptAllData", configuration.encrypt_all); |
+ UMA_HISTOGRAM_BOOLEAN("Sync.CustomPassphrase", |
+ configuration.set_gaia_passphrase || |
+ configuration.set_secondary_passphrase); |
+ } |
+ } |
+ |
DCHECK(flow_); |
flow_->OnUserConfigured(configuration); |
@@ -568,47 +609,6 @@ void SyncSetupHandler::HandleConfigure(const ListValue* args) { |
if (!configuration.sync_everything) { |
ProfileMetrics::LogProfileSyncInfo(ProfileMetrics::SYNC_CHOOSE); |
} |
- |
- // Happens during unit tests. |
- if (!web_ui_) |
- return; |
- |
- Profile* profile = Profile::FromWebUI(web_ui_); |
- if (HasConfigurationChanged(configuration, profile)) { |
- UMA_HISTOGRAM_BOOLEAN("Sync.SyncEverything", |
- configuration.sync_everything); |
- if (!configuration.sync_everything) { |
- const syncable::ModelTypeSet& types = configuration.data_types; |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncBookmarks", |
- types.find(syncable::BOOKMARKS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncPreferences", |
- types.find(syncable::PREFERENCES) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncThemes", |
- types.find(syncable::THEMES) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncPasswords", |
- types.find(syncable::PASSWORDS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncAutofill", |
- types.find(syncable::AUTOFILL) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncExtensions", |
- types.find(syncable::EXTENSIONS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncExtensionSettings", |
- types.find(syncable::EXTENSION_SETTINGS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncTypedUrls", |
- types.find(syncable::TYPED_URLS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncSessions", |
- types.find(syncable::SESSIONS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncApps", |
- types.find(syncable::APPS) != types.end()); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomSyncAppSettings", |
- types.find(syncable::APP_SETTINGS) != types.end()); |
- COMPILE_ASSERT(17 == syncable::MODEL_TYPE_COUNT, |
- UpdateCustomConfigHistogram); |
- } |
- UMA_HISTOGRAM_BOOLEAN("Sync.EncryptAllData", configuration.encrypt_all); |
- UMA_HISTOGRAM_BOOLEAN("Sync.CustomPassphrase", |
- configuration.set_gaia_passphrase || |
- configuration.set_secondary_passphrase); |
- } |
} |
void SyncSetupHandler::HandlePassphraseEntry(const ListValue* args) { |