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); | 259 // |args| can be null if it's OOBE. |
| 260 if (args) |
| 261 args->GetString(0, &email_); |
245 | 262 |
246 std::string email; | 263 StartClearingCookies(); |
247 // |args| can be null if it's OOBE. | |
248 if (args && args->GetString(0, &email)) | |
249 params.SetString("email", email); | |
250 | |
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 { | 264 } else { |
258 ShowScreen(kSigninScreen, NULL); | 265 ShowScreen(kSigninScreen, NULL); |
259 } | 266 } |
260 } | 267 } |
261 | 268 |
262 void SigninScreenHandler::HandleToggleEnrollmentScreen( | 269 void SigninScreenHandler::HandleToggleEnrollmentScreen( |
263 const base::ListValue* args) { | 270 const base::ListValue* args) { |
264 delegate_->ShowEnterpriseEnrollmentScreen(); | 271 delegate_->ShowEnterpriseEnrollmentScreen(); |
265 } | 272 } |
266 | 273 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 // Call the Javascript callback | 352 // Call the Javascript callback |
346 base::FundamentalValue animated_value(animated); | 353 base::FundamentalValue animated_value(animated); |
347 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", | 354 web_ui_->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", |
348 users_list, animated_value); | 355 users_list, animated_value); |
349 } | 356 } |
350 | 357 |
351 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { | 358 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { |
352 delegate_->CreateAccount(); | 359 delegate_->CreateAccount(); |
353 } | 360 } |
354 | 361 |
| 362 void SigninScreenHandler::StartClearingCookies() { |
| 363 BrowsingDataRemover* remover = new BrowsingDataRemover( |
| 364 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), |
| 365 BrowsingDataRemover::EVERYTHING, |
| 366 base::Time()); |
| 367 remover->AddObserver(this); |
| 368 remover->Remove(BrowsingDataRemover::REMOVE_COOKIES | |
| 369 BrowsingDataRemover::REMOVE_LSO_DATA); |
| 370 } |
| 371 |
355 } // namespace chromeos | 372 } // namespace chromeos |
OLD | NEW |