Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
=================================================================== |
--- chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc (revision 96544) |
+++ chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc (working copy) |
@@ -11,9 +11,11 @@ |
#include "chrome/browser/chromeos/cros/power_library.h" |
#include "chrome/browser/chromeos/login/user_manager.h" |
#include "chrome/browser/chromeos/login/webui_login_display.h" |
+#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/chromeos/user_cros_settings_provider.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/url_constants.h" |
+#include "content/browser/tab_contents/tab_contents.h" |
#include "grit/generated_resources.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -193,6 +195,19 @@ |
help_id); |
} |
+void SigninScreenHandler::OnBrowsingDataRemoverDone() { |
+ // Show sign in screen as soon as we clear the cookie jar. |
+ DictionaryValue params; |
+ params.SetString("email", email_); |
+ params.SetString("startUrl", kGaiaExtStartPage); |
+ params.SetBoolean("createAccount", |
+ UserCrosSettingsProvider::cached_allow_new_user()); |
+ params.SetBoolean("guestSignin", |
+ UserCrosSettingsProvider::cached_allow_guest()); |
+ email_.clear(); |
+ ShowScreen(kGaiaSigninScreen, ¶ms); |
+} |
+ |
void SigninScreenHandler::HandleCompleteLogin(const base::ListValue* args) { |
std::string username; |
std::string password; |
@@ -240,20 +255,11 @@ |
void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { |
if (extension_driven_) { |
- DictionaryValue params; |
- params.SetString("startUrl", kGaiaExtStartPage); |
- |
- std::string email; |
+ email_.clear(); |
// |args| can be null if it's OOBE. |
- if (args && args->GetString(0, &email)) |
- params.SetString("email", email); |
- |
- params.SetBoolean("createAccount", |
- UserCrosSettingsProvider::cached_allow_new_user()); |
- params.SetBoolean("guestSignin", |
- UserCrosSettingsProvider::cached_allow_guest()); |
- |
- ShowScreen(kGaiaSigninScreen, ¶ms); |
+ if (args && args->GetString(0, &email_)) { |
+ 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.
|
+ } |
} else { |
ShowScreen(kSigninScreen, NULL); |
} |
@@ -352,4 +358,15 @@ |
delegate_->CreateAccount(); |
} |
+void SigninScreenHandler::StartClearingCookies() { |
+ BrowsingDataRemover* remover = new BrowsingDataRemover( |
+ Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), |
+ BrowsingDataRemover::EVERYTHING, |
+ base::Time()); |
+ remover->AddObserver(this); |
+ remover->Remove(BrowsingDataRemover::REMOVE_COOKIES | |
+ BrowsingDataRemover::REMOVE_LSO_DATA); |
+ |
xiyuan
2011/08/13 15:43:21
nit: nuke this empty line
zel
2011/08/15 06:24:34
Done.
|
+} |
+ |
} // namespace chromeos |