OLD | NEW |
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/ui/sync/one_click_signin_sync_starter.h" | 5 #include "chrome/browser/ui/sync/one_click_signin_sync_starter.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 UMA_HISTOGRAM_ENUMERATION("Enterprise.UserSigninChoice", | 66 UMA_HISTOGRAM_ENUMERATION("Enterprise.UserSigninChoice", |
67 choice, | 67 choice, |
68 SIGNIN_CHOICE_SIZE); | 68 SIGNIN_CHOICE_SIZE); |
69 } | 69 } |
70 | 70 |
71 } // namespace | 71 } // namespace |
72 | 72 |
73 OneClickSigninSyncStarter::OneClickSigninSyncStarter( | 73 OneClickSigninSyncStarter::OneClickSigninSyncStarter( |
74 Profile* profile, | 74 Profile* profile, |
75 Browser* browser, | 75 Browser* browser, |
| 76 const std::string& gaia_id, |
76 const std::string& email, | 77 const std::string& email, |
77 const std::string& password, | 78 const std::string& password, |
78 const std::string& refresh_token, | 79 const std::string& refresh_token, |
79 StartSyncMode start_mode, | 80 StartSyncMode start_mode, |
80 content::WebContents* web_contents, | 81 content::WebContents* web_contents, |
81 ConfirmationRequired confirmation_required, | 82 ConfirmationRequired confirmation_required, |
82 const GURL& continue_url, | 83 const GURL& continue_url, |
83 Callback sync_setup_completed_callback) | 84 Callback sync_setup_completed_callback) |
84 : content::WebContentsObserver(web_contents), | 85 : content::WebContentsObserver(web_contents), |
85 profile_(NULL), | 86 profile_(NULL), |
86 start_mode_(start_mode), | 87 start_mode_(start_mode), |
87 desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE), | 88 desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE), |
88 confirmation_required_(confirmation_required), | 89 confirmation_required_(confirmation_required), |
89 continue_url_(continue_url), | 90 continue_url_(continue_url), |
90 sync_setup_completed_callback_(sync_setup_completed_callback), | 91 sync_setup_completed_callback_(sync_setup_completed_callback), |
91 weak_pointer_factory_(this) { | 92 weak_pointer_factory_(this) { |
92 DCHECK(profile); | 93 DCHECK(profile); |
93 DCHECK(web_contents || continue_url.is_empty()); | 94 DCHECK(web_contents || continue_url.is_empty()); |
94 BrowserList::AddObserver(this); | 95 BrowserList::AddObserver(this); |
95 Initialize(profile, browser); | 96 Initialize(profile, browser); |
96 | 97 |
97 // Policy is enabled, so pass in a callback to do extra policy-related UI | 98 // Policy is enabled, so pass in a callback to do extra policy-related UI |
98 // before signin completes. | 99 // before signin completes. |
99 SigninManagerFactory::GetForProfile(profile_)-> | 100 SigninManagerFactory::GetForProfile(profile_)-> |
100 StartSignInWithRefreshToken( | 101 StartSignInWithRefreshToken( |
101 refresh_token, email, password, | 102 refresh_token, gaia_id, email, password, |
102 base::Bind(&OneClickSigninSyncStarter::ConfirmSignin, | 103 base::Bind(&OneClickSigninSyncStarter::ConfirmSignin, |
103 weak_pointer_factory_.GetWeakPtr())); | 104 weak_pointer_factory_.GetWeakPtr())); |
104 } | 105 } |
105 | 106 |
106 void OneClickSigninSyncStarter::OnBrowserRemoved(Browser* browser) { | 107 void OneClickSigninSyncStarter::OnBrowserRemoved(Browser* browser) { |
107 if (browser == browser_) | 108 if (browser == browser_) |
108 browser_ = NULL; | 109 browser_ = NULL; |
109 } | 110 } |
110 | 111 |
111 OneClickSigninSyncStarter::~OneClickSigninSyncStarter() { | 112 OneClickSigninSyncStarter::~OneClickSigninSyncStarter() { |
(...skipping 30 matching lines...) Expand all Loading... |
142 | 143 |
143 // Make sure the syncing is not suppressed, otherwise the SigninManager | 144 // Make sure the syncing is not suppressed, otherwise the SigninManager |
144 // will not be able to complete sucessfully. | 145 // will not be able to complete sucessfully. |
145 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); | 146 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); |
146 sync_prefs.SetStartSuppressed(false); | 147 sync_prefs.SetStartSuppressed(false); |
147 } | 148 } |
148 | 149 |
149 void OneClickSigninSyncStarter::ConfirmSignin(const std::string& oauth_token) { | 150 void OneClickSigninSyncStarter::ConfirmSignin(const std::string& oauth_token) { |
150 DCHECK(!oauth_token.empty()); | 151 DCHECK(!oauth_token.empty()); |
151 SigninManager* signin = SigninManagerFactory::GetForProfile(profile_); | 152 SigninManager* signin = SigninManagerFactory::GetForProfile(profile_); |
152 // If this is a new signin (no authenticated username yet) try loading | 153 // If this is a new signin (no account authenticated yet) try loading |
153 // policy for this user now, before any signed in services are initialized. | 154 // policy for this user now, before any signed in services are initialized. |
154 if (!signin->IsAuthenticated()) { | 155 if (!signin->IsAuthenticated()) { |
155 #if defined(ENABLE_CONFIGURATION_POLICY) | 156 #if defined(ENABLE_CONFIGURATION_POLICY) |
156 policy::UserPolicySigninService* policy_service = | 157 policy::UserPolicySigninService* policy_service = |
157 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); | 158 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); |
158 policy_service->RegisterForPolicy( | 159 policy_service->RegisterForPolicy( |
159 signin->GetUsernameForAuthInProgress(), | 160 signin->GetUsernameForAuthInProgress(), |
160 oauth_token, | 161 oauth_token, |
161 base::Bind(&OneClickSigninSyncStarter::OnRegisteredForPolicy, | 162 base::Bind(&OneClickSigninSyncStarter::OnRegisteredForPolicy, |
162 weak_pointer_factory_.GetWeakPtr())); | 163 weak_pointer_factory_.GetWeakPtr())); |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
605 false /* user_gesture */); | 606 false /* user_gesture */); |
606 } | 607 } |
607 | 608 |
608 void OneClickSigninSyncStarter::LoadContinueUrl() { | 609 void OneClickSigninSyncStarter::LoadContinueUrl() { |
609 web_contents()->GetController().LoadURL( | 610 web_contents()->GetController().LoadURL( |
610 continue_url_, | 611 continue_url_, |
611 content::Referrer(), | 612 content::Referrer(), |
612 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, | 613 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, |
613 std::string()); | 614 std::string()); |
614 } | 615 } |
OLD | NEW |