OLD | NEW |
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/ui/webui/sync_setup_handler.h" | 5 #include "chrome/browser/ui/webui/sync_setup_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 DictionaryValue* result = static_cast<DictionaryValue*>(parsed_value.get()); | 82 DictionaryValue* result = static_cast<DictionaryValue*>(parsed_value.get()); |
83 if (!result->GetBoolean("syncAllDataTypes", &config->sync_everything)) | 83 if (!result->GetBoolean("syncAllDataTypes", &config->sync_everything)) |
84 return false; | 84 return false; |
85 | 85 |
86 // These values need to be kept in sync with where they are written in | 86 // These values need to be kept in sync with where they are written in |
87 // choose_datatypes.html. | 87 // choose_datatypes.html. |
88 bool sync_bookmarks; | 88 bool sync_bookmarks; |
89 if (!result->GetBoolean("syncBookmarks", &sync_bookmarks)) | 89 if (!result->GetBoolean("syncBookmarks", &sync_bookmarks)) |
90 return false; | 90 return false; |
91 if (sync_bookmarks) | 91 if (sync_bookmarks) |
92 config->data_types.insert(syncable::BOOKMARKS); | 92 config->data_types.Put(syncable::BOOKMARKS); |
93 | 93 |
94 bool sync_preferences; | 94 bool sync_preferences; |
95 if (!result->GetBoolean("syncPreferences", &sync_preferences)) | 95 if (!result->GetBoolean("syncPreferences", &sync_preferences)) |
96 return false; | 96 return false; |
97 if (sync_preferences) | 97 if (sync_preferences) |
98 config->data_types.insert(syncable::PREFERENCES); | 98 config->data_types.Put(syncable::PREFERENCES); |
99 | 99 |
100 bool sync_themes; | 100 bool sync_themes; |
101 if (!result->GetBoolean("syncThemes", &sync_themes)) | 101 if (!result->GetBoolean("syncThemes", &sync_themes)) |
102 return false; | 102 return false; |
103 if (sync_themes) | 103 if (sync_themes) |
104 config->data_types.insert(syncable::THEMES); | 104 config->data_types.Put(syncable::THEMES); |
105 | 105 |
106 bool sync_passwords; | 106 bool sync_passwords; |
107 if (!result->GetBoolean("syncPasswords", &sync_passwords)) | 107 if (!result->GetBoolean("syncPasswords", &sync_passwords)) |
108 return false; | 108 return false; |
109 if (sync_passwords) | 109 if (sync_passwords) |
110 config->data_types.insert(syncable::PASSWORDS); | 110 config->data_types.Put(syncable::PASSWORDS); |
111 | 111 |
112 bool sync_autofill; | 112 bool sync_autofill; |
113 if (!result->GetBoolean("syncAutofill", &sync_autofill)) | 113 if (!result->GetBoolean("syncAutofill", &sync_autofill)) |
114 return false; | 114 return false; |
115 if (sync_autofill) | 115 if (sync_autofill) |
116 config->data_types.insert(syncable::AUTOFILL); | 116 config->data_types.Put(syncable::AUTOFILL); |
117 | 117 |
118 bool sync_extensions; | 118 bool sync_extensions; |
119 if (!result->GetBoolean("syncExtensions", &sync_extensions)) | 119 if (!result->GetBoolean("syncExtensions", &sync_extensions)) |
120 return false; | 120 return false; |
121 if (sync_extensions) { | 121 if (sync_extensions) { |
122 config->data_types.insert(syncable::EXTENSIONS); | 122 config->data_types.Put(syncable::EXTENSIONS); |
123 config->data_types.insert(syncable::EXTENSION_SETTINGS); | 123 config->data_types.Put(syncable::EXTENSION_SETTINGS); |
124 } | 124 } |
125 | 125 |
126 bool sync_typed_urls; | 126 bool sync_typed_urls; |
127 if (!result->GetBoolean("syncTypedUrls", &sync_typed_urls)) | 127 if (!result->GetBoolean("syncTypedUrls", &sync_typed_urls)) |
128 return false; | 128 return false; |
129 if (sync_typed_urls) | 129 if (sync_typed_urls) |
130 config->data_types.insert(syncable::TYPED_URLS); | 130 config->data_types.Put(syncable::TYPED_URLS); |
131 | 131 |
132 bool sync_sessions; | 132 bool sync_sessions; |
133 if (!result->GetBoolean("syncSessions", &sync_sessions)) | 133 if (!result->GetBoolean("syncSessions", &sync_sessions)) |
134 return false; | 134 return false; |
135 if (sync_sessions) | 135 if (sync_sessions) |
136 config->data_types.insert(syncable::SESSIONS); | 136 config->data_types.Put(syncable::SESSIONS); |
137 | 137 |
138 bool sync_apps; | 138 bool sync_apps; |
139 if (!result->GetBoolean("syncApps", &sync_apps)) | 139 if (!result->GetBoolean("syncApps", &sync_apps)) |
140 return false; | 140 return false; |
141 if (sync_apps) { | 141 if (sync_apps) { |
142 config->data_types.insert(syncable::APPS); | 142 config->data_types.Put(syncable::APPS); |
143 config->data_types.insert(syncable::APP_SETTINGS); | 143 config->data_types.Put(syncable::APP_SETTINGS); |
144 } | 144 } |
145 | 145 |
146 // Encryption settings. | 146 // Encryption settings. |
147 if (!result->GetBoolean("encryptAllData", &config->encrypt_all)) | 147 if (!result->GetBoolean("encryptAllData", &config->encrypt_all)) |
148 return false; | 148 return false; |
149 | 149 |
150 // Passphrase settings. | 150 // Passphrase settings. |
151 bool have_passphrase; | 151 bool have_passphrase; |
152 if (!result->GetBoolean("usePassphrase", &have_passphrase)) | 152 if (!result->GetBoolean("usePassphrase", &have_passphrase)) |
153 return false; | 153 return false; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 | 195 |
196 PrefService* pref_service = profile->GetPrefs(); | 196 PrefService* pref_service = profile->GetPrefs(); |
197 CHECK(pref_service); | 197 CHECK(pref_service); |
198 | 198 |
199 if (config.sync_everything != | 199 if (config.sync_everything != |
200 pref_service->GetBoolean(prefs::kSyncKeepEverythingSynced)) | 200 pref_service->GetBoolean(prefs::kSyncKeepEverythingSynced)) |
201 return true; | 201 return true; |
202 | 202 |
203 // Only check the data types that are explicitly listed on the sync | 203 // Only check the data types that are explicitly listed on the sync |
204 // preferences page. | 204 // preferences page. |
205 const syncable::ModelTypeSet& types = config.data_types; | 205 const syncable::ModelEnumSet types = config.data_types; |
206 if (((types.find(syncable::BOOKMARKS) != types.end()) != | 206 if (((types.Has(syncable::BOOKMARKS)) != |
207 pref_service->GetBoolean(prefs::kSyncBookmarks)) || | 207 pref_service->GetBoolean(prefs::kSyncBookmarks)) || |
208 ((types.find(syncable::PREFERENCES) != types.end()) != | 208 ((types.Has(syncable::PREFERENCES)) != |
209 pref_service->GetBoolean(prefs::kSyncPreferences)) || | 209 pref_service->GetBoolean(prefs::kSyncPreferences)) || |
210 ((types.find(syncable::THEMES) != types.end()) != | 210 ((types.Has(syncable::THEMES)) != |
211 pref_service->GetBoolean(prefs::kSyncThemes)) || | 211 pref_service->GetBoolean(prefs::kSyncThemes)) || |
212 ((types.find(syncable::PASSWORDS) != types.end()) != | 212 ((types.Has(syncable::PASSWORDS)) != |
213 pref_service->GetBoolean(prefs::kSyncPasswords)) || | 213 pref_service->GetBoolean(prefs::kSyncPasswords)) || |
214 ((types.find(syncable::AUTOFILL) != types.end()) != | 214 ((types.Has(syncable::AUTOFILL)) != |
215 pref_service->GetBoolean(prefs::kSyncAutofill)) || | 215 pref_service->GetBoolean(prefs::kSyncAutofill)) || |
216 ((types.find(syncable::EXTENSIONS) != types.end()) != | 216 ((types.Has(syncable::EXTENSIONS)) != |
217 pref_service->GetBoolean(prefs::kSyncExtensions)) || | 217 pref_service->GetBoolean(prefs::kSyncExtensions)) || |
218 ((types.find(syncable::TYPED_URLS) != types.end()) != | 218 ((types.Has(syncable::TYPED_URLS)) != |
219 pref_service->GetBoolean(prefs::kSyncTypedUrls)) || | 219 pref_service->GetBoolean(prefs::kSyncTypedUrls)) || |
220 ((types.find(syncable::SESSIONS) != types.end()) != | 220 ((types.Has(syncable::SESSIONS)) != |
221 pref_service->GetBoolean(prefs::kSyncSessions)) || | 221 pref_service->GetBoolean(prefs::kSyncSessions)) || |
222 ((types.find(syncable::APPS) != types.end()) != | 222 ((types.Has(syncable::APPS)) != |
223 pref_service->GetBoolean(prefs::kSyncApps))) | 223 pref_service->GetBoolean(prefs::kSyncApps))) |
224 return true; | 224 return true; |
225 | 225 |
226 return false; | 226 return false; |
227 } | 227 } |
228 | 228 |
229 bool GetPassphrase(const std::string& json, std::string* passphrase) { | 229 bool GetPassphrase(const std::string& json, std::string* passphrase) { |
230 scoped_ptr<Value> parsed_value(base::JSONReader::Read(json, false)); | 230 scoped_ptr<Value> parsed_value(base::JSONReader::Read(json, false)); |
231 if (!parsed_value.get() || !parsed_value->IsType(Value::TYPE_DICTIONARY)) | 231 if (!parsed_value.get() || !parsed_value->IsType(Value::TYPE_DICTIONARY)) |
232 return false; | 232 return false; |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 | 573 |
574 // We do not do UMA logging during unit tests. | 574 // We do not do UMA logging during unit tests. |
575 if (web_ui_) { | 575 if (web_ui_) { |
576 Profile* profile = Profile::FromWebUI(web_ui_); | 576 Profile* profile = Profile::FromWebUI(web_ui_); |
577 if (HasConfigurationChanged(configuration, profile)) { | 577 if (HasConfigurationChanged(configuration, profile)) { |
578 UMA_HISTOGRAM_BOOLEAN("Sync.SyncEverything", | 578 UMA_HISTOGRAM_BOOLEAN("Sync.SyncEverything", |
579 configuration.sync_everything); | 579 configuration.sync_everything); |
580 if (!configuration.sync_everything) { | 580 if (!configuration.sync_everything) { |
581 // Only log the data types that are explicitly listed on the sync | 581 // Only log the data types that are explicitly listed on the sync |
582 // preferences page. | 582 // preferences page. |
583 const syncable::ModelTypeSet& types = configuration.data_types; | 583 const syncable::ModelEnumSet types = configuration.data_types; |
584 if (types.find(syncable::BOOKMARKS) != types.end()) | 584 if (types.Has(syncable::BOOKMARKS)) |
585 UMA_HISTOGRAM_ENUMERATION( | 585 UMA_HISTOGRAM_ENUMERATION( |
586 "Sync.CustomSync", BOOKMARKS, SELECTABLE_DATATYPE_COUNT + 1); | 586 "Sync.CustomSync", BOOKMARKS, SELECTABLE_DATATYPE_COUNT + 1); |
587 if (types.find(syncable::PREFERENCES) != types.end()) | 587 if (types.Has(syncable::PREFERENCES)) |
588 UMA_HISTOGRAM_ENUMERATION( | 588 UMA_HISTOGRAM_ENUMERATION( |
589 "Sync.CustomSync", PREFERENCES, SELECTABLE_DATATYPE_COUNT + 1); | 589 "Sync.CustomSync", PREFERENCES, SELECTABLE_DATATYPE_COUNT + 1); |
590 if (types.find(syncable::PASSWORDS) != types.end()) | 590 if (types.Has(syncable::PASSWORDS)) |
591 UMA_HISTOGRAM_ENUMERATION( | 591 UMA_HISTOGRAM_ENUMERATION( |
592 "Sync.CustomSync", PASSWORDS, SELECTABLE_DATATYPE_COUNT + 1); | 592 "Sync.CustomSync", PASSWORDS, SELECTABLE_DATATYPE_COUNT + 1); |
593 if (types.find(syncable::AUTOFILL) != types.end()) | 593 if (types.Has(syncable::AUTOFILL)) |
594 UMA_HISTOGRAM_ENUMERATION( | 594 UMA_HISTOGRAM_ENUMERATION( |
595 "Sync.CustomSync", AUTOFILL, SELECTABLE_DATATYPE_COUNT + 1); | 595 "Sync.CustomSync", AUTOFILL, SELECTABLE_DATATYPE_COUNT + 1); |
596 if (types.find(syncable::THEMES) != types.end()) | 596 if (types.Has(syncable::THEMES)) |
597 UMA_HISTOGRAM_ENUMERATION( | 597 UMA_HISTOGRAM_ENUMERATION( |
598 "Sync.CustomSync", THEMES, SELECTABLE_DATATYPE_COUNT + 1); | 598 "Sync.CustomSync", THEMES, SELECTABLE_DATATYPE_COUNT + 1); |
599 if (types.find(syncable::TYPED_URLS) != types.end()) | 599 if (types.Has(syncable::TYPED_URLS)) |
600 UMA_HISTOGRAM_ENUMERATION( | 600 UMA_HISTOGRAM_ENUMERATION( |
601 "Sync.CustomSync", TYPED_URLS, SELECTABLE_DATATYPE_COUNT + 1); | 601 "Sync.CustomSync", TYPED_URLS, SELECTABLE_DATATYPE_COUNT + 1); |
602 if (types.find(syncable::EXTENSIONS) != types.end()) | 602 if (types.Has(syncable::EXTENSIONS)) |
603 UMA_HISTOGRAM_ENUMERATION( | 603 UMA_HISTOGRAM_ENUMERATION( |
604 "Sync.CustomSync", EXTENSIONS, SELECTABLE_DATATYPE_COUNT + 1); | 604 "Sync.CustomSync", EXTENSIONS, SELECTABLE_DATATYPE_COUNT + 1); |
605 if (types.find(syncable::SESSIONS) != types.end()) | 605 if (types.Has(syncable::SESSIONS)) |
606 UMA_HISTOGRAM_ENUMERATION( | 606 UMA_HISTOGRAM_ENUMERATION( |
607 "Sync.CustomSync", SESSIONS, SELECTABLE_DATATYPE_COUNT + 1); | 607 "Sync.CustomSync", SESSIONS, SELECTABLE_DATATYPE_COUNT + 1); |
608 if (types.find(syncable::APPS) != types.end()) | 608 if (types.Has(syncable::APPS)) |
609 UMA_HISTOGRAM_ENUMERATION( | 609 UMA_HISTOGRAM_ENUMERATION( |
610 "Sync.CustomSync", APPS, SELECTABLE_DATATYPE_COUNT + 1); | 610 "Sync.CustomSync", APPS, SELECTABLE_DATATYPE_COUNT + 1); |
611 COMPILE_ASSERT(17 == syncable::MODEL_TYPE_COUNT, | 611 COMPILE_ASSERT(17 == syncable::MODEL_TYPE_COUNT, |
612 UpdateCustomConfigHistogram); | 612 UpdateCustomConfigHistogram); |
613 COMPILE_ASSERT(9 == SELECTABLE_DATATYPE_COUNT, | 613 COMPILE_ASSERT(9 == SELECTABLE_DATATYPE_COUNT, |
614 UpdateCustomConfigHistogram); | 614 UpdateCustomConfigHistogram); |
615 } | 615 } |
616 UMA_HISTOGRAM_BOOLEAN("Sync.EncryptAllData", configuration.encrypt_all); | 616 UMA_HISTOGRAM_BOOLEAN("Sync.EncryptAllData", configuration.encrypt_all); |
617 UMA_HISTOGRAM_BOOLEAN("Sync.CustomPassphrase", | 617 UMA_HISTOGRAM_BOOLEAN("Sync.CustomPassphrase", |
618 configuration.set_gaia_passphrase || | 618 configuration.set_gaia_passphrase || |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 } | 770 } |
771 | 771 |
772 void SyncSetupHandler::ShowLoginErrorMessage(const string16& error_message) { | 772 void SyncSetupHandler::ShowLoginErrorMessage(const string16& error_message) { |
773 DictionaryValue args; | 773 DictionaryValue args; |
774 Profile* profile = Profile::FromWebUI(web_ui_); | 774 Profile* profile = Profile::FromWebUI(web_ui_); |
775 ProfileSyncService* service = profile->GetProfileSyncService(); | 775 ProfileSyncService* service = profile->GetProfileSyncService(); |
776 SyncSetupFlow::GetArgsForGaiaLogin(service, &args); | 776 SyncSetupFlow::GetArgsForGaiaLogin(service, &args); |
777 args.SetString("error_message", error_message); | 777 args.SetString("error_message", error_message); |
778 ShowGaiaLogin(args); | 778 ShowGaiaLogin(args); |
779 } | 779 } |
OLD | NEW |