| Index: components/policy/core/common/cloud/user_info_fetcher.cc
|
| diff --git a/components/policy/core/common/cloud/user_info_fetcher.cc b/components/policy/core/common/cloud/user_info_fetcher.cc
|
| index b8f9f74df1828dd54975b6e71820b24fbb4146ca..978e4c81a0f1330cd1e9d8a846042c0c9e6c9aaf 100644
|
| --- a/components/policy/core/common/cloud/user_info_fetcher.cc
|
| +++ b/components/policy/core/common/cloud/user_info_fetcher.cc
|
| @@ -16,23 +16,11 @@
|
| #include "net/url_request/url_request_status.h"
|
| #include "url/gurl.h"
|
|
|
| -namespace {
|
| -
|
| -static const char kAuthorizationHeaderFormat[] =
|
| - "Authorization: Bearer %s";
|
| -
|
| -static std::string MakeAuthorizationHeader(const std::string& auth_token) {
|
| - return base::StringPrintf(kAuthorizationHeaderFormat, auth_token.c_str());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| namespace policy {
|
|
|
| UserInfoFetcher::UserInfoFetcher(Delegate* delegate,
|
| net::URLRequestContextGetter* context)
|
| - : delegate_(delegate),
|
| - context_(context) {
|
| + : delegate_(delegate), gaia_client_(context) {
|
| DCHECK(delegate);
|
| }
|
|
|
| @@ -41,49 +29,28 @@ UserInfoFetcher::~UserInfoFetcher() {
|
|
|
| void UserInfoFetcher::Start(const std::string& access_token) {
|
| // Create a URLFetcher and start it.
|
| - url_fetcher_.reset(net::URLFetcher::Create(
|
| - 0, GaiaUrls::GetInstance()->oauth_user_info_url(),
|
| - net::URLFetcher::GET, this));
|
| - url_fetcher_->SetRequestContext(context_);
|
| - url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
|
| - net::LOAD_DO_NOT_SAVE_COOKIES);
|
| - url_fetcher_->AddExtraRequestHeader(MakeAuthorizationHeader(access_token));
|
| - url_fetcher_->Start(); // Results in a call to OnURLFetchComplete().
|
| + gaia_client_.GetUserInfo(access_token, 0, &delegate_);
|
| }
|
|
|
| -void UserInfoFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
|
| - net::URLRequestStatus status = source->GetStatus();
|
| - GoogleServiceAuthError error = GoogleServiceAuthError::AuthErrorNone();
|
| - if (!status.is_success()) {
|
| - if (status.status() == net::URLRequestStatus::CANCELED)
|
| - error = GoogleServiceAuthError(GoogleServiceAuthError::REQUEST_CANCELED);
|
| - else
|
| - error = GoogleServiceAuthError::FromConnectionError(status.error());
|
| - } else if (source->GetResponseCode() != net::HTTP_OK) {
|
| - DLOG(WARNING) << "UserInfo request failed with HTTP code: "
|
| - << source->GetResponseCode();
|
| - error = GoogleServiceAuthError(
|
| - GoogleServiceAuthError::CONNECTION_FAILED);
|
| - }
|
| - if (error.state() != GoogleServiceAuthError::NONE) {
|
| - delegate_->OnGetUserInfoFailure(error);
|
| - return;
|
| - }
|
| +UserInfoFetcher::GaiaDelegate::GaiaDelegate(UserInfoFetcher::Delegate* delegate)
|
| + : delegate_(delegate) {
|
| +}
|
| +
|
| +void UserInfoFetcher::GaiaDelegate::OnGetUserInfoResponse(
|
| + scoped_ptr<base::DictionaryValue> user_info) {
|
| + delegate_->OnGetUserInfoSuccess(user_info.get());
|
| +}
|
| +
|
| +void UserInfoFetcher::GaiaDelegate::OnOAuthError() {
|
| + GoogleServiceAuthError error =
|
| + GoogleServiceAuthError(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
|
| + delegate_->OnGetUserInfoFailure(error);
|
| +}
|
|
|
| - // Successfully fetched userinfo from the server - parse it and hand it off
|
| - // to the delegate.
|
| - std::string unparsed_data;
|
| - source->GetResponseAsString(&unparsed_data);
|
| - DVLOG(1) << "Received UserInfo response: " << unparsed_data;
|
| - scoped_ptr<base::Value> parsed_value(base::JSONReader::Read(unparsed_data));
|
| - base::DictionaryValue* dict;
|
| - if (parsed_value.get() && parsed_value->GetAsDictionary(&dict)) {
|
| - delegate_->OnGetUserInfoSuccess(dict);
|
| - } else {
|
| - NOTREACHED() << "Could not parse userinfo response from server";
|
| - delegate_->OnGetUserInfoFailure(GoogleServiceAuthError(
|
| - GoogleServiceAuthError::CONNECTION_FAILED));
|
| - }
|
| +void UserInfoFetcher::GaiaDelegate::OnNetworkError(int response_code) {
|
| + GoogleServiceAuthError error =
|
| + GoogleServiceAuthError::FromConnectionError(response_code);
|
| + delegate_->OnGetUserInfoFailure(error);
|
| }
|
|
|
| }; // namespace policy
|
|
|