Chromium Code Reviews| 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 "chrome/browser/ui/webui/sync_setup_handler.h" | 5 #include "chrome/browser/ui/webui/sync_setup_handler.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1083 void SyncSetupHandler::HandleStartSignin(const ListValue* args) { | 1083 void SyncSetupHandler::HandleStartSignin(const ListValue* args) { |
| 1084 // Should only be called if the user is not already signed in. | 1084 // Should only be called if the user is not already signed in. |
| 1085 DCHECK(SigninManagerFactory::GetForProfile(GetProfile())-> | 1085 DCHECK(SigninManagerFactory::GetForProfile(GetProfile())-> |
| 1086 GetAuthenticatedUsername().empty()); | 1086 GetAuthenticatedUsername().empty()); |
| 1087 OpenSyncSetup(); | 1087 OpenSyncSetup(); |
| 1088 } | 1088 } |
| 1089 | 1089 |
| 1090 void SyncSetupHandler::HandleStopSyncing(const ListValue* args) { | 1090 void SyncSetupHandler::HandleStopSyncing(const ListValue* args) { |
| 1091 if (GetSyncService()) | 1091 if (GetSyncService()) |
| 1092 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); | 1092 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); |
| 1093 | 1093 #if !defined(OS_CHROMEOS) |
| 1094 SigninManagerFactory::GetForProfile(GetProfile())->SignOut(); | 1094 SigninManagerFactory::GetForProfile(GetProfile())->SignOut(); |
| 1095 #endif | |
| 1095 } | 1096 } |
| 1096 | 1097 |
| 1097 void SyncSetupHandler::HandleCloseTimeout(const ListValue* args) { | 1098 void SyncSetupHandler::HandleCloseTimeout(const ListValue* args) { |
| 1098 CloseSyncSetup(); | 1099 CloseSyncSetup(); |
| 1099 } | 1100 } |
| 1100 | 1101 |
| 1101 void SyncSetupHandler::CloseSyncSetup() { | 1102 void SyncSetupHandler::CloseSyncSetup() { |
| 1102 // TODO(atwilson): Move UMA tracking of signin events out of sync module. | 1103 // TODO(atwilson): Move UMA tracking of signin events out of sync module. |
| 1103 ProfileSyncService* sync_service = GetSyncService(); | 1104 ProfileSyncService* sync_service = GetSyncService(); |
| 1104 if (IsActiveLogin()) { | 1105 if (IsActiveLogin()) { |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1121 | 1122 |
| 1122 GetLoginUIService()->LoginUIClosed(this); | 1123 GetLoginUIService()->LoginUIClosed(this); |
| 1123 } | 1124 } |
| 1124 | 1125 |
| 1125 if (sync_service) { | 1126 if (sync_service) { |
| 1126 // Make sure user isn't left half-logged-in (signed in, but without sync | 1127 // Make sure user isn't left half-logged-in (signed in, but without sync |
| 1127 // started up). If the user hasn't finished setting up sync, then sign out | 1128 // started up). If the user hasn't finished setting up sync, then sign out |
| 1128 // and shut down sync. | 1129 // and shut down sync. |
| 1129 if (!sync_service->HasSyncSetupCompleted()) { | 1130 if (!sync_service->HasSyncSetupCompleted()) { |
| 1130 DVLOG(1) << "Signin aborted by user action"; | 1131 DVLOG(1) << "Signin aborted by user action"; |
| 1132 #if !defined(OS_CHROMEOS) | |
| 1133 // TODO(tim): Is this path even reachable on Chrome OS? | |
|
Andrew T Wilson (Slow)
2013/05/06 09:06:00
Possibly - the way I'd guess is:
1) User does das
tim (not reviewing)
2013/05/06 17:28:57
Done.
| |
| 1131 if (signin_tracker_.get() || sync_service->FirstSetupInProgress()) { | 1134 if (signin_tracker_.get() || sync_service->FirstSetupInProgress()) { |
| 1132 // User was still in the process of signing in, so sign him out again. | 1135 // User was still in the process of signing in, so sign him out again. |
| 1133 // This makes sure that the user isn't left signed in but with sync | 1136 // This makes sure that the user isn't left signed in but with sync |
| 1134 // un-configured. | 1137 // un-configured. |
| 1135 // | 1138 // |
| 1136 // This has the side-effect of signing out the user in the following | 1139 // This has the side-effect of signing out the user in the following |
| 1137 // scenario: | 1140 // scenario: |
| 1138 // * User signs in while sync is disabled by policy. | 1141 // * User signs in while sync is disabled by policy. |
| 1139 // * Sync is re-enabled by policy. | 1142 // * Sync is re-enabled by policy. |
| 1140 // * User brings up sync setup dialog to do initial sync config. | 1143 // * User brings up sync setup dialog to do initial sync config. |
| 1141 // * User cancels out of the dialog. | 1144 // * User cancels out of the dialog. |
| 1142 // | 1145 // |
| 1143 // This case is indistinguishable from the "one click signin" case where | 1146 // This case is indistinguishable from the "one click signin" case where |
| 1144 // the user checks the "advanced setup" checkbox, then cancels out of | 1147 // the user checks the "advanced setup" checkbox, then cancels out of |
| 1145 // the setup box, which is a much more common scenario, so we do the | 1148 // the setup box, which is a much more common scenario, so we do the |
| 1146 // right thing for the one-click case. | 1149 // right thing for the one-click case. |
| 1147 SigninManagerFactory::GetForProfile(GetProfile())->SignOut(); | 1150 SigninManagerFactory::GetForProfile(GetProfile())->SignOut(); |
| 1148 } | 1151 } |
| 1152 #endif | |
| 1149 sync_service->DisableForUser(); | 1153 sync_service->DisableForUser(); |
| 1150 browser_sync::SyncPrefs sync_prefs(GetProfile()->GetPrefs()); | 1154 browser_sync::SyncPrefs sync_prefs(GetProfile()->GetPrefs()); |
| 1151 sync_prefs.SetStartSuppressed(true); | 1155 sync_prefs.SetStartSuppressed(true); |
| 1152 } | 1156 } |
| 1153 sync_service->SetSetupInProgress(false); | 1157 sync_service->SetSetupInProgress(false); |
| 1154 } | 1158 } |
| 1155 | 1159 |
| 1156 // Reset the attempted email address and error, otherwise the sync setup | 1160 // Reset the attempted email address and error, otherwise the sync setup |
| 1157 // overlay in the settings page will stay in whatever error state it was last | 1161 // overlay in the settings page will stay in whatever error state it was last |
| 1158 // when it is reopened. | 1162 // when it is reopened. |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1303 // closing this tab in mid-handler can cause crashes. Instead, close it | 1307 // closing this tab in mid-handler can cause crashes. Instead, close it |
| 1304 // via a task so we know we aren't in the middle of any webui code. | 1308 // via a task so we know we aren't in the middle of any webui code. |
| 1305 MessageLoop::current()->PostTask( | 1309 MessageLoop::current()->PostTask( |
| 1306 FROM_HERE, | 1310 FROM_HERE, |
| 1307 base::Bind(&CloseTab, base::Unretained(active_gaia_signin_tab_))); | 1311 base::Bind(&CloseTab, base::Unretained(active_gaia_signin_tab_))); |
| 1308 | 1312 |
| 1309 active_gaia_signin_tab_ = NULL; | 1313 active_gaia_signin_tab_ = NULL; |
| 1310 } | 1314 } |
| 1311 } | 1315 } |
| 1312 | 1316 |
| 1317 #if !defined(OS_CHROMEOS) | |
| 1318 // Used by HandleSubmitAuth. | |
| 1313 bool SyncSetupHandler::IsLoginAuthDataValid(const std::string& username, | 1319 bool SyncSetupHandler::IsLoginAuthDataValid(const std::string& username, |
| 1314 string16* error_message) { | 1320 string16* error_message) { |
| 1315 if (username.empty()) | 1321 if (username.empty()) |
| 1316 return true; | 1322 return true; |
| 1317 | 1323 |
| 1318 // Can be null during some unit tests. | 1324 // Can be null during some unit tests. |
| 1319 if (!web_ui()) | 1325 if (!web_ui()) |
| 1320 return true; | 1326 return true; |
| 1321 | 1327 |
| 1322 if (!SigninManagerFactory::GetForProfile( | 1328 if (!SigninManagerFactory::GetForProfile( |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1339 if (i != current_profile_index && AreUserNamesEqual( | 1345 if (i != current_profile_index && AreUserNamesEqual( |
| 1340 cache.GetUserNameOfProfileAtIndex(i), username_utf16)) { | 1346 cache.GetUserNameOfProfileAtIndex(i), username_utf16)) { |
| 1341 *error_message = l10n_util::GetStringUTF16( | 1347 *error_message = l10n_util::GetStringUTF16( |
| 1342 IDS_SYNC_USER_NAME_IN_USE_ERROR); | 1348 IDS_SYNC_USER_NAME_IN_USE_ERROR); |
| 1343 return false; | 1349 return false; |
| 1344 } | 1350 } |
| 1345 } | 1351 } |
| 1346 | 1352 |
| 1347 return true; | 1353 return true; |
| 1348 } | 1354 } |
| 1355 | |
| 1356 #endif // !defined(OS_CHROMEOS) | |
| OLD | NEW |