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