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 "google_apis/gaia/gaia_auth_fetcher.h" | 5 #include "google_apis/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 |
11 #include "base/json/json_reader.h" | 11 #include "base/json/json_reader.h" |
12 #include "base/json/json_writer.h" | 12 #include "base/json/json_writer.h" |
13 #include "base/macros.h" | 13 #include "base/macros.h" |
14 #include "base/profiler/scoped_tracker.h" | 14 #include "base/profiler/scoped_tracker.h" |
15 #include "base/strings/string_split.h" | 15 #include "base/strings/string_split.h" |
16 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
17 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
18 #include "base/values.h" | 18 #include "base/values.h" |
19 #include "google_apis/gaia/gaia_auth_consumer.h" | 19 #include "google_apis/gaia/gaia_auth_consumer.h" |
20 #include "google_apis/gaia/gaia_auth_util.h" | 20 #include "google_apis/gaia/gaia_auth_util.h" |
21 #include "google_apis/gaia/gaia_constants.h" | 21 #include "google_apis/gaia/gaia_constants.h" |
22 #include "google_apis/gaia/gaia_urls.h" | 22 #include "google_apis/gaia/gaia_urls.h" |
23 #include "google_apis/gaia/google_service_auth_error.h" | 23 #include "google_apis/gaia/google_service_auth_error.h" |
24 #include "net/base/escape.h" | 24 #include "net/base/escape.h" |
25 #include "net/base/load_flags.h" | 25 #include "net/base/load_flags.h" |
26 #include "net/http/http_response_headers.h" | 26 #include "net/http/http_response_headers.h" |
27 #include "net/http/http_status_code.h" | 27 #include "net/http/http_status_code.h" |
| 28 #include "net/http/http_util.h" |
28 #include "net/url_request/url_fetcher.h" | 29 #include "net/url_request/url_fetcher.h" |
29 #include "net/url_request/url_request_context_getter.h" | 30 #include "net/url_request/url_request_context_getter.h" |
30 #include "net/url_request/url_request_status.h" | 31 #include "net/url_request/url_request_status.h" |
31 | 32 |
32 namespace { | 33 namespace { |
33 const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES | | 34 const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES | |
34 net::LOAD_DO_NOT_SAVE_COOKIES; | 35 net::LOAD_DO_NOT_SAVE_COOKIES; |
35 | 36 |
36 static bool CookiePartsContains(const std::vector<std::string>& parts, | 37 static bool CookiePartsContains(const std::vector<std::string>& parts, |
37 const char* part) { | 38 const char* part) { |
(...skipping 908 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 const net::URLRequestStatus& status = source->GetStatus(); | 947 const net::URLRequestStatus& status = source->GetStatus(); |
947 int response_code = source->GetResponseCode(); | 948 int response_code = source->GetResponseCode(); |
948 std::string data; | 949 std::string data; |
949 source->GetResponseAsString(&data); | 950 source->GetResponseAsString(&data); |
950 | 951 |
951 // Retrieve the response headers from the request. Must only be called after | 952 // Retrieve the response headers from the request. Must only be called after |
952 // the OnURLFetchComplete callback has run. | 953 // the OnURLFetchComplete callback has run. |
953 #ifndef NDEBUG | 954 #ifndef NDEBUG |
954 std::string headers; | 955 std::string headers; |
955 if (source->GetResponseHeaders()) | 956 if (source->GetResponseHeaders()) |
956 source->GetResponseHeaders()->GetNormalizedHeaders(&headers); | 957 headers = net::HttpUtil::ConvertHeadersBackToHTTPResponse( |
| 958 source->GetResponseHeaders()->raw_headers()); |
957 DVLOG(2) << "Response " << url.spec() << ", code = " << response_code << "\n" | 959 DVLOG(2) << "Response " << url.spec() << ", code = " << response_code << "\n" |
958 << headers << "\n"; | 960 << headers << "\n"; |
959 DVLOG(2) << "data: " << data << "\n"; | 961 DVLOG(2) << "data: " << data << "\n"; |
960 #endif | 962 #endif |
961 | 963 |
962 net::ResponseCookies cookies; | 964 net::ResponseCookies cookies; |
963 GetCookiesFromResponse(source->GetResponseHeaders(), &cookies); | 965 GetCookiesFromResponse(source->GetResponseHeaders(), &cookies); |
964 DispatchFetchedRequest(url, data, cookies, status, response_code); | 966 DispatchFetchedRequest(url, data, cookies, status, response_code); |
965 } | 967 } |
966 | 968 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1013 return alleged_error.find(kSecondFactor) != | 1015 return alleged_error.find(kSecondFactor) != |
1014 std::string::npos; | 1016 std::string::npos; |
1015 } | 1017 } |
1016 | 1018 |
1017 // static | 1019 // static |
1018 bool GaiaAuthFetcher::IsWebLoginRequiredSuccess( | 1020 bool GaiaAuthFetcher::IsWebLoginRequiredSuccess( |
1019 const std::string& alleged_error) { | 1021 const std::string& alleged_error) { |
1020 return alleged_error.find(kWebLoginRequired) != | 1022 return alleged_error.find(kWebLoginRequired) != |
1021 std::string::npos; | 1023 std::string::npos; |
1022 } | 1024 } |
OLD | NEW |