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/common/net/gaia/gaia_auth_fetcher.h" | 5 #include "chrome/common/net/gaia/gaia_auth_fetcher.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 bool GaiaAuthFetcher::HasPendingFetch() { | 118 bool GaiaAuthFetcher::HasPendingFetch() { |
119 return fetch_pending_; | 119 return fetch_pending_; |
120 } | 120 } |
121 | 121 |
122 void GaiaAuthFetcher::CancelRequest() { | 122 void GaiaAuthFetcher::CancelRequest() { |
123 fetcher_.reset(); | 123 fetcher_.reset(); |
124 fetch_pending_ = false; | 124 fetch_pending_ = false; |
125 } | 125 } |
126 | 126 |
127 // static | 127 // static |
128 URLFetcher* GaiaAuthFetcher::CreateGaiaFetcher( | 128 content::URLFetcher* GaiaAuthFetcher::CreateGaiaFetcher( |
129 net::URLRequestContextGetter* getter, | 129 net::URLRequestContextGetter* getter, |
130 const std::string& body, | 130 const std::string& body, |
131 const GURL& gaia_gurl, | 131 const GURL& gaia_gurl, |
132 bool send_cookies, | 132 bool send_cookies, |
133 content::URLFetcherDelegate* delegate) { | 133 content::URLFetcherDelegate* delegate) { |
134 | 134 |
135 URLFetcher* to_return = | 135 URLFetcher* to_return = |
136 URLFetcher::Create(0, | 136 URLFetcher::Create(0, |
137 gaia_gurl, | 137 gaia_gurl, |
138 URLFetcher::POST, | 138 URLFetcher::POST, |
139 delegate); | 139 delegate); |
140 to_return->set_request_context(getter); | 140 to_return->SetRequestContext(getter); |
141 to_return->set_upload_data("application/x-www-form-urlencoded", body); | 141 to_return->SetUploadData("application/x-www-form-urlencoded", body); |
142 | 142 |
143 // The Gaia token exchange requests do not require any cookie-based | 143 // The Gaia token exchange requests do not require any cookie-based |
144 // identification as part of requests. We suppress sending any cookies to | 144 // identification as part of requests. We suppress sending any cookies to |
145 // maintain a separation between the user's browsing and Chrome's internal | 145 // maintain a separation between the user's browsing and Chrome's internal |
146 // services. Where such mixing is desired (MergeSession), it will be done | 146 // services. Where such mixing is desired (MergeSession), it will be done |
147 // explicitly. | 147 // explicitly. |
148 if (!send_cookies) | 148 if (!send_cookies) |
149 to_return->set_load_flags(net::LOAD_DO_NOT_SEND_COOKIES); | 149 to_return->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES); |
150 | 150 |
151 return to_return; | 151 return to_return; |
152 } | 152 } |
153 | 153 |
154 // static | 154 // static |
155 std::string GaiaAuthFetcher::MakeClientLoginBody( | 155 std::string GaiaAuthFetcher::MakeClientLoginBody( |
156 const std::string& username, | 156 const std::string& username, |
157 const std::string& password, | 157 const std::string& password, |
158 const std::string& source, | 158 const std::string& source, |
159 const char* service, | 159 const char* service, |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 void GaiaAuthFetcher::OnMergeSessionFetched(const std::string& data, | 573 void GaiaAuthFetcher::OnMergeSessionFetched(const std::string& data, |
574 const net::URLRequestStatus& status, | 574 const net::URLRequestStatus& status, |
575 int response_code) { | 575 int response_code) { |
576 if (status.is_success() && response_code == RC_REQUEST_OK) { | 576 if (status.is_success() && response_code == RC_REQUEST_OK) { |
577 consumer_->OnMergeSessionSuccess(data); | 577 consumer_->OnMergeSessionSuccess(data); |
578 } else { | 578 } else { |
579 consumer_->OnMergeSessionFailure(GenerateAuthError(data, status)); | 579 consumer_->OnMergeSessionFailure(GenerateAuthError(data, status)); |
580 } | 580 } |
581 } | 581 } |
582 | 582 |
583 void GaiaAuthFetcher::OnURLFetchComplete(const URLFetcher* source) { | 583 void GaiaAuthFetcher::OnURLFetchComplete(const content::URLFetcher* source) { |
584 fetch_pending_ = false; | 584 fetch_pending_ = false; |
585 const GURL& url = source->url(); | 585 const GURL& url = source->GetUrl(); |
586 const net::URLRequestStatus& status = source->status(); | 586 const net::URLRequestStatus& status = source->GetStatus(); |
587 int response_code = source->response_code(); | 587 int response_code = source->GetResponseCode(); |
588 std::string data; | 588 std::string data; |
589 source->GetResponseAsString(&data); | 589 source->GetResponseAsString(&data); |
590 if (url == client_login_gurl_) { | 590 if (url == client_login_gurl_) { |
591 OnClientLoginFetched(data, status, response_code); | 591 OnClientLoginFetched(data, status, response_code); |
592 } else if (url == issue_auth_token_gurl_) { | 592 } else if (url == issue_auth_token_gurl_) { |
593 OnIssueAuthTokenFetched(data, status, response_code); | 593 OnIssueAuthTokenFetched(data, status, response_code); |
594 } else if (url == get_user_info_gurl_) { | 594 } else if (url == get_user_info_gurl_) { |
595 OnGetUserInfoFetched(data, status, response_code); | 595 OnGetUserInfoFetched(data, status, response_code); |
596 } else if (url == token_auth_gurl_) { | 596 } else if (url == token_auth_gurl_) { |
597 OnTokenAuthFetched(data, status, response_code); | 597 OnTokenAuthFetched(data, status, response_code); |
598 } else if (url == merge_session_gurl_ || | 598 } else if (url == merge_session_gurl_ || |
599 (source && source->original_url() == merge_session_gurl_)) { | 599 (source && source->GetOriginalUrl() == merge_session_gurl_)) { |
600 // MergeSession may redirect, so check the original URL of the fetcher. | 600 // MergeSession may redirect, so check the original URL of the fetcher. |
601 OnMergeSessionFetched(data, status, response_code); | 601 OnMergeSessionFetched(data, status, response_code); |
602 } else { | 602 } else { |
603 NOTREACHED(); | 603 NOTREACHED(); |
604 } | 604 } |
605 } | 605 } |
606 | 606 |
607 // static | 607 // static |
608 bool GaiaAuthFetcher::IsSecondFactorSuccess( | 608 bool GaiaAuthFetcher::IsSecondFactorSuccess( |
609 const std::string& alleged_error) { | 609 const std::string& alleged_error) { |
610 return alleged_error.find(kSecondFactor) != | 610 return alleged_error.find(kSecondFactor) != |
611 std::string::npos; | 611 std::string::npos; |
612 } | 612 } |
OLD | NEW |