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

Side by Side Diff: chrome/browser/signin/signin_manager.cc

Issue 12302015: Merge 182702 (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1410/src/
Patch Set: Created 7 years, 10 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/signin/signin_manager.h" 5 #include "chrome/browser/signin/signin_manager.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 12 matching lines...) Expand all
23 #include "chrome/browser/signin/about_signin_internals_factory.h" 23 #include "chrome/browser/signin/about_signin_internals_factory.h"
24 #include "chrome/browser/signin/signin_global_error.h" 24 #include "chrome/browser/signin/signin_global_error.h"
25 #include "chrome/browser/signin/signin_internals_util.h" 25 #include "chrome/browser/signin/signin_internals_util.h"
26 #include "chrome/browser/signin/signin_manager_factory.h" 26 #include "chrome/browser/signin/signin_manager_factory.h"
27 #include "chrome/browser/signin/token_service.h" 27 #include "chrome/browser/signin/token_service.h"
28 #include "chrome/browser/signin/token_service_factory.h" 28 #include "chrome/browser/signin/token_service_factory.h"
29 #include "chrome/browser/sync/profile_sync_service.h" 29 #include "chrome/browser/sync/profile_sync_service.h"
30 #include "chrome/browser/sync/sync_prefs.h" 30 #include "chrome/browser/sync/sync_prefs.h"
31 #include "chrome/browser/ui/global_error/global_error_service.h" 31 #include "chrome/browser/ui/global_error/global_error_service.h"
32 #include "chrome/browser/ui/global_error/global_error_service_factory.h" 32 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
33 #include "chrome/browser/ui/host_desktop.h"
34 #include "chrome/browser/ui/webui/signin/profile_signin_confirmation_dialog.h"
33 #include "chrome/common/chrome_notification_types.h" 35 #include "chrome/common/chrome_notification_types.h"
34 #include "chrome/common/chrome_switches.h" 36 #include "chrome/common/chrome_switches.h"
35 #include "chrome/common/pref_names.h" 37 #include "chrome/common/pref_names.h"
36 #include "content/public/browser/browser_thread.h" 38 #include "content/public/browser/browser_thread.h"
37 #include "content/public/browser/notification_service.h" 39 #include "content/public/browser/notification_service.h"
38 #include "google_apis/gaia/gaia_auth_fetcher.h" 40 #include "google_apis/gaia/gaia_auth_fetcher.h"
39 #include "google_apis/gaia/gaia_auth_util.h" 41 #include "google_apis/gaia/gaia_auth_util.h"
40 #include "google_apis/gaia/gaia_constants.h" 42 #include "google_apis/gaia/gaia_constants.h"
41 #include "google_apis/gaia/gaia_urls.h" 43 #include "google_apis/gaia/gaia_urls.h"
42 #include "net/cookies/cookie_monster.h" 44 #include "net/cookies/cookie_monster.h"
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 CompleteSigninAfterPolicyLoad(); 717 CompleteSigninAfterPolicyLoad();
716 return; 718 return;
717 } 719 }
718 720
719 // Stash away a copy of our CloudPolicyClient (should not already have one). 721 // Stash away a copy of our CloudPolicyClient (should not already have one).
720 DCHECK(!policy_client_); 722 DCHECK(!policy_client_);
721 policy_client_.swap(client); 723 policy_client_.swap(client);
722 724
723 DVLOG(1) << "Policy registration succeeded: dm_token=" 725 DVLOG(1) << "Policy registration succeeded: dm_token="
724 << policy_client_->dm_token(); 726 << policy_client_->dm_token();
725 // TODO(dconnelly): Prompt user for whether they want to create a new profile 727
726 // or not (http://crbug.com/171236), and either call SignOut() if they cancel, 728 // Allow user to create a new profile before continuing with sign-in.
727 // TransferCredentialsToNewProfile() to create a new profile, or 729 ProfileSigninConfirmationDialog::ShowDialog(
728 // LoadPolicyWithCachedClient() if they want to sign in for the current 730 profile_,
729 // profile. 731 possibly_invalid_username_,
730 // For now, just call LoadPolicyWithCachedClient() to immediately load policy 732 base::Bind(&SigninManager::SignOut,
731 // into the current profile and finish signing in. 733 weak_pointer_factory_.GetWeakPtr()),
732 LoadPolicyWithCachedClient(policy_client_.Pass()); 734 base::Bind(&SigninManager::TransferCredentialsToNewProfile,
735 weak_pointer_factory_.GetWeakPtr()),
736 base::Bind(&SigninManager::LoadPolicyWithCachedClient,
737 weak_pointer_factory_.GetWeakPtr()));
733 } 738 }
734 739
735 void SigninManager::LoadPolicyWithCachedClient( 740 void SigninManager::LoadPolicyWithCachedClient() {
736 scoped_ptr<policy::CloudPolicyClient> client) { 741 DCHECK(policy_client_);
737 DCHECK(client);
738 policy::UserPolicySigninService* policy_service = 742 policy::UserPolicySigninService* policy_service =
739 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); 743 policy::UserPolicySigninServiceFactory::GetForProfile(profile_);
740 policy_service->FetchPolicyForSignedInUser( 744 policy_service->FetchPolicyForSignedInUser(
741 client.Pass(), 745 policy_client_.Pass(),
742 base::Bind(&SigninManager::OnPolicyFetchComplete, 746 base::Bind(&SigninManager::OnPolicyFetchComplete,
743 weak_pointer_factory_.GetWeakPtr())); 747 weak_pointer_factory_.GetWeakPtr()));
744 } 748 }
745 749
746 void SigninManager::OnPolicyFetchComplete(bool success) { 750 void SigninManager::OnPolicyFetchComplete(bool success) {
747 // For now, we allow signin to complete even if the policy fetch fails. If 751 // For now, we allow signin to complete even if the policy fetch fails. If
748 // we ever want to change this behavior, we could call SignOut() here 752 // we ever want to change this behavior, we could call SignOut() here
749 // instead. 753 // instead.
750 DLOG_IF(ERROR, !success) << "Error fetching policy for user"; 754 DLOG_IF(ERROR, !success) << "Error fetching policy for user";
751 DVLOG_IF(1, success) << "Policy fetch successful - completing signin"; 755 DVLOG_IF(1, success) << "Policy fetch successful - completing signin";
(...skipping 29 matching lines...) Expand all
781 if (status == Profile::CREATE_STATUS_INITIALIZED) { 785 if (status == Profile::CREATE_STATUS_INITIALIZED) {
782 DCHECK(!possibly_invalid_username_.empty()); 786 DCHECK(!possibly_invalid_username_.empty());
783 DCHECK(policy_client_); 787 DCHECK(policy_client_);
784 // Sign in to the just-created profile and fetch policy for it. 788 // Sign in to the just-created profile and fetch policy for it.
785 SigninManager* signin_manager = 789 SigninManager* signin_manager =
786 SigninManagerFactory::GetForProfile(profile); 790 SigninManagerFactory::GetForProfile(profile);
787 DCHECK(signin_manager); 791 DCHECK(signin_manager);
788 signin_manager->possibly_invalid_username_ = possibly_invalid_username_; 792 signin_manager->possibly_invalid_username_ = possibly_invalid_username_;
789 signin_manager->last_result_ = last_result_; 793 signin_manager->last_result_ = last_result_;
790 signin_manager->temp_oauth_login_tokens_ = temp_oauth_login_tokens_; 794 signin_manager->temp_oauth_login_tokens_ = temp_oauth_login_tokens_;
791 signin_manager->LoadPolicyWithCachedClient(policy_client_.Pass()); 795 signin_manager->policy_client_.reset(policy_client_.release());
796 signin_manager->LoadPolicyWithCachedClient();
792 // Allow sync to start up if it is not overridden by policy. 797 // Allow sync to start up if it is not overridden by policy.
793 browser_sync::SyncPrefs prefs(profile->GetPrefs()); 798 browser_sync::SyncPrefs prefs(profile->GetPrefs());
794 prefs.SetSyncSetupCompleted(); 799 prefs.SetSyncSetupCompleted();
795 800
796 // We've transferred our credentials to the new profile - sign out. 801 // We've transferred our credentials to the new profile - sign out.
797 SignOut(); 802 SignOut();
798 } 803 }
799 } 804 }
800 #endif 805 #endif
801 806
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 NotifySigninValueChanged(field, value)); 921 NotifySigninValueChanged(field, value));
917 } 922 }
918 923
919 void SigninManager::NotifyDiagnosticsObservers( 924 void SigninManager::NotifyDiagnosticsObservers(
920 const TimedSigninStatusField& field, 925 const TimedSigninStatusField& field,
921 const std::string& value) { 926 const std::string& value) {
922 FOR_EACH_OBSERVER(SigninDiagnosticsObserver, 927 FOR_EACH_OBSERVER(SigninDiagnosticsObserver,
923 signin_diagnostics_observers_, 928 signin_diagnostics_observers_,
924 NotifySigninValueChanged(field, value)); 929 NotifySigninValueChanged(field, value));
925 } 930 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_manager.h ('k') | chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698