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

Side by Side Diff: chrome/browser/chromeos/login/parallel_authenticator.cc

Issue 7562010: [ChromeOS] Fix login wrong password handling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync, fix broken tests and add 3 new 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
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/chromeos/login/parallel_authenticator.h" 5 #include "chrome/browser/chromeos/login/parallel_authenticator.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 ParallelAuthenticator::ResolveCryptohomeFailureState() { 542 ParallelAuthenticator::ResolveCryptohomeFailureState() {
543 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 543 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
544 if (data_remover_.get()) 544 if (data_remover_.get())
545 return FAILED_REMOVE; 545 return FAILED_REMOVE;
546 if (guest_mounter_.get()) 546 if (guest_mounter_.get())
547 return FAILED_TMPFS; 547 return FAILED_TMPFS;
548 if (key_migrator_.get()) 548 if (key_migrator_.get())
549 return NEED_OLD_PW; 549 return NEED_OLD_PW;
550 if (key_checker_.get()) 550 if (key_checker_.get())
551 return LOGIN_FAILED; 551 return LOGIN_FAILED;
552 if (current_state_->cryptohome_code() == 552
553 chromeos::kCryptohomeMountErrorKeyFailure) { 553 // Return intermediate states in the following cases:
554 // If we tried a mount but they used the wrong key, we may need to 554 // 1. When there is a parallel online attempt to resolve them later;
555 // ask the user for her old password. We'll only know once we've 555 // This is the case with legacy ClientLogin flow;
556 // done the online check. 556 // 2. When there is an online result to use;
557 return POSSIBLE_PW_CHANGE; 557 // This is the case after user finishes Gaia login;
558 if (current_online_.get() || current_state_->online_complete()) {
559 if (current_state_->cryptohome_code() ==
560 chromeos::kCryptohomeMountErrorKeyFailure) {
561 // If we tried a mount but they used the wrong key, we may need to
562 // ask the user for her old password. We'll only know once we've
563 // done the online check.
564 return POSSIBLE_PW_CHANGE;
565 }
566 if (current_state_->cryptohome_code() ==
567 chromeos::kCryptohomeMountErrorUserDoesNotExist) {
568 // If we tried a mount but the user did not exist, then we should wait
569 // for online login to succeed and try again with the "create" flag set.
570 return NO_MOUNT;
571 }
558 } 572 }
559 if (current_state_->cryptohome_code() == 573
560 chromeos::kCryptohomeMountErrorUserDoesNotExist) {
561 // If we tried a mount but the user did not exist, then we should wait
562 // for online login to succeed and try again with the "create" flag set.
563 return NO_MOUNT;
564 }
565 return FAILED_MOUNT; 574 return FAILED_MOUNT;
566 } 575 }
567 576
568 ParallelAuthenticator::AuthState 577 ParallelAuthenticator::AuthState
569 ParallelAuthenticator::ResolveCryptohomeSuccessState() { 578 ParallelAuthenticator::ResolveCryptohomeSuccessState() {
570 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 579 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
571 if (data_remover_.get()) 580 if (data_remover_.get())
572 return CREATE_NEW; 581 return CREATE_NEW;
573 if (guest_mounter_.get()) 582 if (guest_mounter_.get())
574 return LOCAL_LOGIN; 583 return LOCAL_LOGIN;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 } 721 }
713 722
714 void ParallelAuthenticator::ResolveLoginCompletionStatus() { 723 void ParallelAuthenticator::ResolveLoginCompletionStatus() {
715 // Shortcut online state resolution process. 724 // Shortcut online state resolution process.
716 current_state_->RecordOnlineLoginStatus(GaiaAuthConsumer::ClientLoginResult(), 725 current_state_->RecordOnlineLoginStatus(GaiaAuthConsumer::ClientLoginResult(),
717 LoginFailure::None()); 726 LoginFailure::None());
718 Resolve(); 727 Resolve();
719 } 728 }
720 729
721 } // namespace chromeos 730 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698