Chromium Code Reviews| 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/chromeos/login/signin_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/chromeos/cros/cros_library.h" | 10 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 11 #include "chrome/browser/chromeos/cros/power_library.h" | 11 #include "chrome/browser/chromeos/cros/power_library.h" |
| 12 #include "chrome/browser/chromeos/login/user_manager.h" | 12 #include "chrome/browser/chromeos/login/user_manager.h" |
| 13 #include "chrome/browser/chromeos/login/webui_login_display.h" | 13 #include "chrome/browser/chromeos/login/webui_login_display.h" |
| 14 #include "chrome/browser/profiles/profile.h" | |
| 14 #include "chrome/browser/chromeos/user_cros_settings_provider.h" | 15 #include "chrome/browser/chromeos/user_cros_settings_provider.h" |
| 15 #include "chrome/common/chrome_switches.h" | 16 #include "chrome/common/chrome_switches.h" |
| 16 #include "chrome/common/url_constants.h" | 17 #include "chrome/common/url_constants.h" |
| 18 #include "content/browser/tab_contents/tab_contents.h" | |
| 17 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
| 18 #include "ui/base/l10n/l10n_util.h" | 20 #include "ui/base/l10n/l10n_util.h" |
| 19 | 21 |
| 20 namespace { | 22 namespace { |
| 21 | 23 |
| 22 const char kDefaultDomain[] = "@gmail.com"; | 24 const char kDefaultDomain[] = "@gmail.com"; |
| 23 | 25 |
| 24 // Account picker screen id. | 26 // Account picker screen id. |
| 25 const char kAccountPickerScreen[] = "account-picker"; | 27 const char kAccountPickerScreen[] = "account-picker"; |
| 26 // Sign in screen id. | 28 // Sign in screen id. |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 186 base::StringValue error_message(error_text); | 188 base::StringValue error_message(error_text); |
| 187 base::StringValue help_link(help_link_text); | 189 base::StringValue help_link(help_link_text); |
| 188 base::FundamentalValue help_id(static_cast<int>(help_topic_id)); | 190 base::FundamentalValue help_id(static_cast<int>(help_topic_id)); |
| 189 web_ui_->CallJavascriptFunction("cr.ui.Oobe.showSignInError", | 191 web_ui_->CallJavascriptFunction("cr.ui.Oobe.showSignInError", |
| 190 login_attempts_value, | 192 login_attempts_value, |
| 191 error_message, | 193 error_message, |
| 192 help_link, | 194 help_link, |
| 193 help_id); | 195 help_id); |
| 194 } | 196 } |
| 195 | 197 |
| 198 void SigninScreenHandler::OnBrowsingDataRemoverDone() { | |
| 199 // Show sign in screen as soon as we clear the cookie jar. | |
| 200 DictionaryValue params; | |
| 201 params.SetString("email", email_); | |
| 202 params.SetString("startUrl", kGaiaExtStartPage); | |
| 203 params.SetBoolean("createAccount", | |
| 204 UserCrosSettingsProvider::cached_allow_new_user()); | |
| 205 params.SetBoolean("guestSignin", | |
| 206 UserCrosSettingsProvider::cached_allow_guest()); | |
| 207 email_.clear(); | |
| 208 ShowScreen(kGaiaSigninScreen, ¶ms); | |
| 209 } | |
| 210 | |
| 196 void SigninScreenHandler::HandleCompleteLogin(const base::ListValue* args) { | 211 void SigninScreenHandler::HandleCompleteLogin(const base::ListValue* args) { |
| 197 std::string username; | 212 std::string username; |
| 198 std::string password; | 213 std::string password; |
| 199 if (!args->GetString(0, &username) || | 214 if (!args->GetString(0, &username) || |
| 200 !args->GetString(1, &password)) { | 215 !args->GetString(1, &password)) { |
| 201 NOTREACHED(); | 216 NOTREACHED(); |
| 202 return; | 217 return; |
| 203 } | 218 } |
| 204 | 219 |
| 205 username = SanitizeEmail(username); | 220 username = SanitizeEmail(username); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 233 if (!args->GetString(0, &email)) { | 248 if (!args->GetString(0, &email)) { |
| 234 NOTREACHED(); | 249 NOTREACHED(); |
| 235 return; | 250 return; |
| 236 } | 251 } |
| 237 | 252 |
| 238 delegate_->RemoveUser(email); | 253 delegate_->RemoveUser(email); |
| 239 } | 254 } |
| 240 | 255 |
| 241 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { | 256 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { |
| 242 if (extension_driven_) { | 257 if (extension_driven_) { |
| 243 DictionaryValue params; | 258 email_.clear(); |
| 244 params.SetString("startUrl", kGaiaExtStartPage); | |
| 245 | |
| 246 std::string email; | |
| 247 // |args| can be null if it's OOBE. | 259 // |args| can be null if it's OOBE. |
| 248 if (args && args->GetString(0, &email)) | 260 if (args && args->GetString(0, &email_)) { |
| 249 params.SetString("email", email); | 261 StartClearingCookies(); |
|
xiyuan
2011/08/13 15:43:21
Think we want to clear cookie regardless of whethe
zel
2011/08/15 06:24:34
Good catch. Done.
| |
| 250 | 262 } |
| 251 params.SetBoolean("createAccount", | |
| 252 UserCrosSettingsProvider::cached_allow_new_user()); | |
| 253 params.SetBoolean("guestSignin", | |
| 254 UserCrosSettingsProvider::cached_allow_guest()); | |
| 255 | |
| 256 ShowScreen(kGaiaSigninScreen, ¶ms); | |
| 257 } else { | 263 } else { |
| 258 ShowScreen(kSigninScreen, NULL); | 264 ShowScreen(kSigninScreen, NULL); |
| 259 } | 265 } |
| 260 } | 266 } |
| 261 | 267 |
| 262 void SigninScreenHandler::HandleToggleEnrollmentScreen( | 268 void SigninScreenHandler::HandleToggleEnrollmentScreen( |
| 263 const base::ListValue* args) { | 269 const base::ListValue* args) { |
| 264 delegate_->ShowEnterpriseEnrollmentScreen(); | 270 delegate_->ShowEnterpriseEnrollmentScreen(); |
| 265 } | 271 } |
| 266 | 272 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 // Call the Javascript callback | 351 // Call the Javascript callback |
| 346 base::FundamentalValue animated_value(animated); | 352 base::FundamentalValue animated_value(animated); |
| 347 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", | 353 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", |
| 348 users_list, animated_value); | 354 users_list, animated_value); |
| 349 } | 355 } |
| 350 | 356 |
| 351 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { | 357 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { |
| 352 delegate_->CreateAccount(); | 358 delegate_->CreateAccount(); |
| 353 } | 359 } |
| 354 | 360 |
| 361 void SigninScreenHandler::StartClearingCookies() { | |
| 362 BrowsingDataRemover* remover = new BrowsingDataRemover( | |
| 363 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), | |
| 364 BrowsingDataRemover::EVERYTHING, | |
| 365 base::Time()); | |
| 366 remover->AddObserver(this); | |
| 367 remover->Remove(BrowsingDataRemover::REMOVE_COOKIES | | |
| 368 BrowsingDataRemover::REMOVE_LSO_DATA); | |
| 369 | |
|
xiyuan
2011/08/13 15:43:21
nit: nuke this empty line
zel
2011/08/15 06:24:34
Done.
| |
| 370 } | |
| 371 | |
| 355 } // namespace chromeos | 372 } // namespace chromeos |
| OLD | NEW |