| OLD | NEW |
| 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/login_utils.h" | 5 #include "chrome/browser/chromeos/login/login_utils.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 | 149 |
| 150 // Verifies OAuth1 access token by performing OAuthLogin. | 150 // Verifies OAuth1 access token by performing OAuthLogin. |
| 151 class OAuthLoginVerifier : public GaiaOAuthConsumer { | 151 class OAuthLoginVerifier : public GaiaOAuthConsumer { |
| 152 public: | 152 public: |
| 153 OAuthLoginVerifier(Profile* user_profile, | 153 OAuthLoginVerifier(Profile* user_profile, |
| 154 const std::string& oauth1_token, | 154 const std::string& oauth1_token, |
| 155 const std::string& oauth1_secret) | 155 const std::string& oauth1_secret) |
| 156 : oauth_fetcher_(this, | 156 : oauth_fetcher_(this, |
| 157 user_profile->GetOffTheRecordProfile()->GetRequestContext(), | 157 user_profile->GetOffTheRecordProfile()->GetRequestContext(), |
| 158 user_profile->GetOffTheRecordProfile(), | 158 user_profile->GetOffTheRecordProfile(), |
| 159 GaiaConstants::kSyncService, | |
| 160 kServiceScopeChromeOS), | 159 kServiceScopeChromeOS), |
| 161 oauth1_token_(oauth1_token), | 160 oauth1_token_(oauth1_token), |
| 162 oauth1_secret_(oauth1_secret) { | 161 oauth1_secret_(oauth1_secret) { |
| 163 } | 162 } |
| 164 virtual ~OAuthLoginVerifier() {} | 163 virtual ~OAuthLoginVerifier() {} |
| 165 | 164 |
| 166 void Start() { | 165 void Start() { |
| 167 oauth_fetcher_.StartOAuthLogin(GaiaConstants::kChromeOSSource, | 166 oauth_fetcher_.StartOAuthLogin(GaiaConstants::kChromeOSSource, |
| 168 GaiaConstants::kContactsService, | 167 GaiaConstants::kContactsService, |
| 169 oauth1_token_, | 168 oauth1_token_, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 194 | 193 |
| 195 // Fetches an OAuth token and initializes user policy with it. | 194 // Fetches an OAuth token and initializes user policy with it. |
| 196 class PolicyOAuthFetcher : public GaiaOAuthConsumer { | 195 class PolicyOAuthFetcher : public GaiaOAuthConsumer { |
| 197 public: | 196 public: |
| 198 PolicyOAuthFetcher(Profile* profile, | 197 PolicyOAuthFetcher(Profile* profile, |
| 199 const std::string& oauth1_token, | 198 const std::string& oauth1_token, |
| 200 const std::string& oauth1_secret) | 199 const std::string& oauth1_secret) |
| 201 : oauth_fetcher_(this, | 200 : oauth_fetcher_(this, |
| 202 profile->GetRequestContext(), | 201 profile->GetRequestContext(), |
| 203 profile, | 202 profile, |
| 204 GaiaConstants::kDeviceManagementService, | |
| 205 kServiceScopeChromeOSDeviceManagement), | 203 kServiceScopeChromeOSDeviceManagement), |
| 206 oauth1_token_(oauth1_token), | 204 oauth1_token_(oauth1_token), |
| 207 oauth1_secret_(oauth1_secret) { | 205 oauth1_secret_(oauth1_secret) { |
| 208 oauth_fetcher_.SetAutoFetchLimit( | 206 oauth_fetcher_.SetAutoFetchLimit( |
| 209 GaiaOAuthFetcher::OAUTH2_SERVICE_ACCESS_TOKEN); | 207 GaiaOAuthFetcher::OAUTH2_SERVICE_ACCESS_TOKEN); |
| 210 } | 208 } |
| 211 virtual ~PolicyOAuthFetcher() {} | 209 virtual ~PolicyOAuthFetcher() {} |
| 212 | 210 |
| 213 void Start() { | 211 void Start() { |
| 214 oauth_fetcher_.StartOAuthWrapBridge(oauth1_token_, oauth1_secret_, "3600", | 212 oauth_fetcher_.StartOAuthWrapBridge( |
| 215 std::string(GaiaConstants::kDeviceManagementService), | 213 oauth1_token_, oauth1_secret_, GaiaConstants::kGaiaOAuthDuration, |
| 216 std::string(kServiceScopeChromeOSDeviceManagement)); | 214 std::string(kServiceScopeChromeOSDeviceManagement)); |
| 217 } | 215 } |
| 218 | 216 |
| 219 // GaiaOAuthConsumer implementation: | 217 // GaiaOAuthConsumer implementation: |
| 220 virtual void OnOAuthWrapBridgeSuccess( | 218 virtual void OnOAuthWrapBridgeSuccess( |
| 221 const std::string& service_name, | 219 const std::string& service_name, |
| 222 const std::string& token, | 220 const std::string& token, |
| 223 const std::string& expires_in) OVERRIDE { | 221 const std::string& expires_in) OVERRIDE { |
| 224 policy::BrowserPolicyConnector* browser_policy_connector = | 222 policy::BrowserPolicyConnector* browser_policy_connector = |
| 225 g_browser_process->browser_policy_connector(); | 223 g_browser_process->browser_policy_connector(); |
| 226 browser_policy_connector->RegisterForUserPolicy(token); | 224 browser_policy_connector->RegisterForUserPolicy(token); |
| 227 } | 225 } |
| 228 | 226 |
| 229 virtual void OnOAuthWrapBridgeFailure( | 227 virtual void OnOAuthWrapBridgeFailure( |
| 228 const std::string& service_name, |
| 230 const GoogleServiceAuthError& error) OVERRIDE { | 229 const GoogleServiceAuthError& error) OVERRIDE { |
| 231 LOG(WARNING) << "Failed to get OAuth access token."; | 230 LOG(WARNING) << "Failed to get OAuth access token for " << service_name; |
| 232 } | 231 } |
| 233 | 232 |
| 234 private: | 233 private: |
| 235 GaiaOAuthFetcher oauth_fetcher_; | 234 GaiaOAuthFetcher oauth_fetcher_; |
| 236 std::string oauth1_token_; | 235 std::string oauth1_token_; |
| 237 std::string oauth1_secret_; | 236 std::string oauth1_secret_; |
| 238 | 237 |
| 239 DISALLOW_COPY_AND_ASSIGN(PolicyOAuthFetcher); | 238 DISALLOW_COPY_AND_ASSIGN(PolicyOAuthFetcher); |
| 240 }; | 239 }; |
| 241 | 240 |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 delegate_->OnProfilePrepared(user_profile); | 561 delegate_->OnProfilePrepared(user_profile); |
| 563 | 562 |
| 564 // TODO(altimofeev): Need to sanitize memory used to store password. | 563 // TODO(altimofeev): Need to sanitize memory used to store password. |
| 565 credentials_ = GaiaAuthConsumer::ClientLoginResult(); | 564 credentials_ = GaiaAuthConsumer::ClientLoginResult(); |
| 566 } | 565 } |
| 567 | 566 |
| 568 void LoginUtilsImpl::FetchOAuth1AccessToken(Profile* auth_profile) { | 567 void LoginUtilsImpl::FetchOAuth1AccessToken(Profile* auth_profile) { |
| 569 oauth_fetcher_.reset(new GaiaOAuthFetcher(this, | 568 oauth_fetcher_.reset(new GaiaOAuthFetcher(this, |
| 570 auth_profile->GetRequestContext(), | 569 auth_profile->GetRequestContext(), |
| 571 auth_profile, | 570 auth_profile, |
| 572 GaiaConstants::kSyncService, | |
| 573 kServiceScopeChromeOS)); | 571 kServiceScopeChromeOS)); |
| 574 // Let's first get the Oauth request token and OAuth1 token+secret. | 572 // Let's first get the Oauth request token and OAuth1 token+secret. |
| 575 // One we get that, we will kick off individial requests for OAuth2 tokens for | 573 // One we get that, we will kick off individial requests for OAuth2 tokens for |
| 576 // all our services. | 574 // all our services. |
| 577 oauth_fetcher_->SetAutoFetchLimit(GaiaOAuthFetcher::OAUTH1_ALL_ACCESS_TOKEN); | 575 oauth_fetcher_->SetAutoFetchLimit(GaiaOAuthFetcher::OAUTH1_ALL_ACCESS_TOKEN); |
| 578 oauth_fetcher_->StartGetOAuthTokenRequest(); | 576 oauth_fetcher_->StartGetOAuthTokenRequest(); |
| 579 } | 577 } |
| 580 | 578 |
| 581 void LoginUtilsImpl::FetchCookies( | 579 void LoginUtilsImpl::FetchCookies( |
| 582 Profile* profile, | 580 Profile* profile, |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 957 // Mark login host for deletion after browser starts. This | 955 // Mark login host for deletion after browser starts. This |
| 958 // guarantees that the message loop will be referenced by the | 956 // guarantees that the message loop will be referenced by the |
| 959 // browser before it is dereferenced by the login host. | 957 // browser before it is dereferenced by the login host. |
| 960 if (login_host) { | 958 if (login_host) { |
| 961 login_host->OnSessionStart(); | 959 login_host->OnSessionStart(); |
| 962 login_host = NULL; | 960 login_host = NULL; |
| 963 } | 961 } |
| 964 } | 962 } |
| 965 | 963 |
| 966 } // namespace chromeos | 964 } // namespace chromeos |
| OLD | NEW |