OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "headless/public/util/url_fetcher.h" | 5 #include "headless/public/util/url_fetcher.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "net/http/http_response_headers.h" | 10 #include "net/http/http_response_headers.h" |
11 #include "net/http/http_util.h" | 11 #include "net/http/http_util.h" |
12 | 12 |
13 namespace headless { | 13 namespace headless { |
14 | 14 |
15 void URLFetcher::ResultListener::OnFetchCompleteExtractHeaders( | 15 void URLFetcher::ResultListener::OnFetchCompleteExtractHeaders( |
16 const GURL& final_url, | 16 const GURL& final_url, |
17 int http_response_code, | |
18 const char* response_data, | 17 const char* response_data, |
19 size_t response_data_size) { | 18 size_t response_data_size) { |
20 size_t read_offset = 0; | 19 size_t read_offset = 0; |
21 int header_size = | 20 int header_size = |
22 net::HttpUtil::LocateEndOfHeaders(response_data, response_data_size); | 21 net::HttpUtil::LocateEndOfHeaders(response_data, response_data_size); |
23 scoped_refptr<net::HttpResponseHeaders> response_headers; | 22 scoped_refptr<net::HttpResponseHeaders> response_headers; |
24 | 23 |
25 if (header_size == -1) { | 24 if (header_size == -1) { |
26 LOG(WARNING) << "Can't find headers in result for url: " << final_url; | 25 LOG(WARNING) << "Can't find headers in result for url: " << final_url; |
27 response_headers = new net::HttpResponseHeaders(""); | 26 response_headers = new net::HttpResponseHeaders(""); |
28 } else { | 27 } else { |
29 response_headers = new net::HttpResponseHeaders( | 28 response_headers = new net::HttpResponseHeaders( |
30 net::HttpUtil::AssembleRawHeaders(response_data, header_size)); | 29 net::HttpUtil::AssembleRawHeaders(response_data, header_size)); |
31 read_offset = header_size; | 30 read_offset = header_size; |
32 } | 31 } |
33 | 32 |
34 CHECK_LE(read_offset, response_data_size); | 33 CHECK_LE(read_offset, response_data_size); |
35 OnFetchComplete(final_url, http_response_code, std::move(response_headers), | 34 OnFetchComplete(final_url, std::move(response_headers), |
36 response_data + read_offset, | 35 response_data + read_offset, |
37 response_data_size - read_offset); | 36 response_data_size - read_offset); |
38 } | 37 } |
39 | 38 |
40 } // namespace headless | 39 } // namespace headless |
OLD | NEW |