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

Side by Side Diff: chrome/browser/ui/webui/signin/inline_login_handler_impl.cc

Issue 1117453002: Add gaia_id to ProfileInfoCache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 5 years, 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/signin/inline_login_handler_impl.h" 5 #include "chrome/browser/ui/webui/signin/inline_login_handler_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 origin != kGaiaExtOrigin && 506 origin != kGaiaExtOrigin &&
507 !gaia::IsGaiaSignonRealm(origin)) { 507 !gaia::IsGaiaSignonRealm(origin)) {
508 confirm_untrusted_signin_ = true; 508 confirm_untrusted_signin_ = true;
509 } 509 }
510 } 510 }
511 } 511 }
512 512
513 // static 513 // static
514 bool InlineLoginHandlerImpl::CanOffer(Profile* profile, 514 bool InlineLoginHandlerImpl::CanOffer(Profile* profile,
515 CanOfferFor can_offer_for, 515 CanOfferFor can_offer_for,
516 const std::string& gaia_id,
516 const std::string& email, 517 const std::string& email,
517 std::string* error_message) { 518 std::string* error_message) {
518 if (error_message) 519 if (error_message)
519 error_message->clear(); 520 error_message->clear();
520 521
521 if (!profile) 522 if (!profile)
522 return false; 523 return false;
523 524
524 SigninManager* manager = SigninManagerFactory::GetForProfile(profile); 525 SigninManager* manager = SigninManagerFactory::GetForProfile(profile);
525 if (manager && !manager->IsSigninAllowed()) 526 if (manager && !manager->IsSigninAllowed())
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 return false; 562 return false;
562 } 563 }
563 564
564 // If some profile, not just the current one, is already connected to this 565 // If some profile, not just the current one, is already connected to this
565 // account, don't show the infobar. 566 // account, don't show the infobar.
566 if (g_browser_process && !same_email) { 567 if (g_browser_process && !same_email) {
567 ProfileManager* profile_manager = g_browser_process->profile_manager(); 568 ProfileManager* profile_manager = g_browser_process->profile_manager();
568 if (profile_manager) { 569 if (profile_manager) {
569 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); 570 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
570 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) { 571 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) {
572 // For backward compatibility, need to also check the UserName of the
Evan Stade 2015/05/11 17:11:54 nit: s/UserName/username
Roger Tawa OOO till Jul 10th 2015/05/11 20:34:36 Done.
573 // profile, since the GaiaId may not have been set yet for the
Evan Stade 2015/05/11 17:11:54 s/GaiaId/GAIA ID
Roger Tawa OOO till Jul 10th 2015/05/11 20:34:36 Done.
574 // profile cache info. It will get set once the profile is opened.
575 std::string profile_gaia_id = cache.GetGAIAIdOfProfileAtIndex(i);
571 std::string profile_email = 576 std::string profile_email =
572 base::UTF16ToUTF8(cache.GetUserNameOfProfileAtIndex(i)); 577 base::UTF16ToUTF8(cache.GetUserNameOfProfileAtIndex(i));
573 if (gaia::AreEmailsSame(email, profile_email)) { 578 if (gaia_id == profile_gaia_id ||
579 gaia::AreEmailsSame(email, profile_email)) {
574 if (error_message) { 580 if (error_message) {
575 error_message->assign( 581 error_message->assign(
576 l10n_util::GetStringUTF8(IDS_SYNC_USER_NAME_IN_USE_ERROR)); 582 l10n_util::GetStringUTF8(IDS_SYNC_USER_NAME_IN_USE_ERROR));
577 } 583 }
578 return false; 584 return false;
579 } 585 }
580 } 586 }
581 } 587 }
582 } 588 }
583 } 589 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 can_offer_for = CAN_OFFER_FOR_SECONDARY_ACCOUNT; 684 can_offer_for = CAN_OFFER_FOR_SECONDARY_ACCOUNT;
679 break; 685 break;
680 } 686 }
681 default: 687 default:
682 // No need to change |can_offer_for|. 688 // No need to change |can_offer_for|.
683 break; 689 break;
684 } 690 }
685 691
686 std::string error_msg; 692 std::string error_msg;
687 bool can_offer = CanOffer(Profile::FromWebUI(web_ui()), can_offer_for, 693 bool can_offer = CanOffer(Profile::FromWebUI(web_ui()), can_offer_for,
688 email, &error_msg); 694 gaia_id, email, &error_msg);
689 if (!can_offer) { 695 if (!can_offer) {
690 HandleLoginError(error_msg); 696 HandleLoginError(error_msg);
691 return; 697 return;
692 } 698 }
693 699
694 AboutSigninInternals* about_signin_internals = 700 AboutSigninInternals* about_signin_internals =
695 AboutSigninInternalsFactory::GetForProfile(Profile::FromWebUI(web_ui())); 701 AboutSigninInternalsFactory::GetForProfile(Profile::FromWebUI(web_ui()));
696 about_signin_internals->OnAuthenticationResultReceived("Successful"); 702 about_signin_internals->OnAuthenticationResultReceived("Successful");
697 703
698 content::StoragePartition* partition = 704 content::StoragePartition* partition =
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 } 780 }
775 } 781 }
776 782
777 if (show_account_management) { 783 if (show_account_management) {
778 browser->window()->ShowAvatarBubbleFromAvatarButton( 784 browser->window()->ShowAvatarBubbleFromAvatarButton(
779 BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT, 785 BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT,
780 signin::ManageAccountsParams()); 786 signin::ManageAccountsParams());
781 } 787 }
782 } 788 }
783 } 789 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698