| OLD | NEW |
| 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/chromeos/settings/device_oauth2_token_service.h" | 5 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/prefs/pref_registry_simple.h" | 10 #include "base/prefs/pref_registry_simple.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 const Request* request, | 49 const Request* request, |
| 50 const std::string& access_token, | 50 const std::string& access_token, |
| 51 const base::Time& expiration_time) OVERRIDE; | 51 const base::Time& expiration_time) OVERRIDE; |
| 52 virtual void OnGetTokenFailure( | 52 virtual void OnGetTokenFailure( |
| 53 const Request* request, | 53 const Request* request, |
| 54 const GoogleServiceAuthError& error) OVERRIDE; | 54 const GoogleServiceAuthError& error) OVERRIDE; |
| 55 | 55 |
| 56 // gaia::GaiaOAuthClient::Delegate implementation. | 56 // gaia::GaiaOAuthClient::Delegate implementation. |
| 57 virtual void OnRefreshTokenResponse(const std::string& access_token, | 57 virtual void OnRefreshTokenResponse(const std::string& access_token, |
| 58 int expires_in_seconds) OVERRIDE; | 58 int expires_in_seconds) OVERRIDE; |
| 59 virtual void OnGetTokenInfoResponse(scoped_ptr<DictionaryValue> token_info) | 59 virtual void OnGetTokenInfoResponse( |
| 60 OVERRIDE; | 60 scoped_ptr<base::DictionaryValue> token_info) OVERRIDE; |
| 61 virtual void OnOAuthError() OVERRIDE; | 61 virtual void OnOAuthError() OVERRIDE; |
| 62 virtual void OnNetworkError(int response_code) OVERRIDE; | 62 virtual void OnNetworkError(int response_code) OVERRIDE; |
| 63 | 63 |
| 64 private: | 64 private: |
| 65 void RefreshTokenIsValid(bool is_valid); | 65 void RefreshTokenIsValid(bool is_valid); |
| 66 void InformConsumer(); | 66 void InformConsumer(); |
| 67 | 67 |
| 68 DeviceOAuth2TokenService* token_service_; | 68 DeviceOAuth2TokenService* token_service_; |
| 69 Consumer* consumer_; | 69 Consumer* consumer_; |
| 70 scoped_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_; | 70 scoped_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 void DeviceOAuth2TokenService::ValidatingConsumer::OnRefreshTokenResponse( | 120 void DeviceOAuth2TokenService::ValidatingConsumer::OnRefreshTokenResponse( |
| 121 const std::string& access_token, | 121 const std::string& access_token, |
| 122 int expires_in_seconds) { | 122 int expires_in_seconds) { |
| 123 gaia_oauth_client_->GetTokenInfo( | 123 gaia_oauth_client_->GetTokenInfo( |
| 124 access_token, | 124 access_token, |
| 125 token_service_->max_refresh_token_validation_retries_, | 125 token_service_->max_refresh_token_validation_retries_, |
| 126 this); | 126 this); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void DeviceOAuth2TokenService::ValidatingConsumer::OnGetTokenInfoResponse( | 129 void DeviceOAuth2TokenService::ValidatingConsumer::OnGetTokenInfoResponse( |
| 130 scoped_ptr<DictionaryValue> token_info) { | 130 scoped_ptr<base::DictionaryValue> token_info) { |
| 131 std::string gaia_robot_id; | 131 std::string gaia_robot_id; |
| 132 token_info->GetString("email", &gaia_robot_id); | 132 token_info->GetString("email", &gaia_robot_id); |
| 133 | 133 |
| 134 std::string policy_robot_id = token_service_->GetRobotAccountId(); | 134 std::string policy_robot_id = token_service_->GetRobotAccountId(); |
| 135 | 135 |
| 136 if (policy_robot_id == gaia_robot_id) { | 136 if (policy_robot_id == gaia_robot_id) { |
| 137 RefreshTokenIsValid(true); | 137 RefreshTokenIsValid(true); |
| 138 } else { | 138 } else { |
| 139 if (gaia_robot_id.empty()) { | 139 if (gaia_robot_id.empty()) { |
| 140 LOG(WARNING) << "Device service account owner in policy is empty."; | 140 LOG(WARNING) << "Device service account owner in policy is empty."; |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 return OAuth2TokenService::CreateRequest(account_id, consumer); | 284 return OAuth2TokenService::CreateRequest(account_id, consumer); |
| 285 | 285 |
| 286 // Substitute our own consumer to wait for refresh token validation. | 286 // Substitute our own consumer to wait for refresh token validation. |
| 287 scoped_ptr<ValidatingConsumer> validating_consumer( | 287 scoped_ptr<ValidatingConsumer> validating_consumer( |
| 288 new ValidatingConsumer(this, account_id, consumer)); | 288 new ValidatingConsumer(this, account_id, consumer)); |
| 289 validating_consumer->StartValidation(); | 289 validating_consumer->StartValidation(); |
| 290 return validating_consumer.PassAs<RequestImpl>(); | 290 return validating_consumer.PassAs<RequestImpl>(); |
| 291 } | 291 } |
| 292 | 292 |
| 293 } // namespace chromeos | 293 } // namespace chromeos |
| OLD | NEW |