Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 7629016: Forced cookie removal before sign-in page is shown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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, &params);
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
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, &params);
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
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
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698