Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: headless/public/util/http_url_fetcher.cc

Issue 2815003003: Headless (breaking change): A better GenericURLRequestJob::Delegate API (Closed)
Patch Set: Changes for Sami Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/http_url_fetcher.h" 5 #include "headless/public/util/http_url_fetcher.h"
6 6
7 #include "net/base/elements_upload_data_stream.h"
7 #include "net/base/io_buffer.h" 8 #include "net/base/io_buffer.h"
9 #include "net/base/upload_bytes_element_reader.h"
8 #include "net/cert/cert_status_flags.h" 10 #include "net/cert/cert_status_flags.h"
9 #include "net/http/http_response_headers.h" 11 #include "net/http/http_response_headers.h"
10 #include "net/url_request/url_request.h" 12 #include "net/url_request/url_request.h"
11 #include "net/url_request/url_request_context.h" 13 #include "net/url_request/url_request_context.h"
12 14
13 namespace headless { 15 namespace headless {
14 16
15 class HttpURLFetcher::Delegate : public net::URLRequest::Delegate { 17 class HttpURLFetcher::Delegate : public net::URLRequest::Delegate {
16 public: 18 public:
17 Delegate(const GURL& rewritten_url, 19 Delegate(const GURL& rewritten_url,
18 const std::string& method, 20 const std::string& method,
21 const std::string& post_data,
19 const net::HttpRequestHeaders& request_headers, 22 const net::HttpRequestHeaders& request_headers,
20 const net::URLRequestContext* url_request_context, 23 const net::URLRequestContext* url_request_context,
21 ResultListener* result_listener); 24 ResultListener* result_listener);
22 ~Delegate() override; 25 ~Delegate() override;
23 26
24 // URLRequest::Delegate methods: 27 // URLRequest::Delegate methods:
25 void OnAuthRequired(net::URLRequest* request, 28 void OnAuthRequired(net::URLRequest* request,
26 net::AuthChallengeInfo* auth_info) override; 29 net::AuthChallengeInfo* auth_info) override;
27 void OnSSLCertificateError(net::URLRequest* request, 30 void OnSSLCertificateError(net::URLRequest* request,
28 const net::SSLInfo& ssl_info, 31 const net::SSLInfo& ssl_info,
(...skipping 20 matching lines...) Expand all
49 // Holds the bytes read so far. 52 // Holds the bytes read so far.
50 std::string bytes_read_so_far_; 53 std::string bytes_read_so_far_;
51 54
52 // The interface kn which to report any results. 55 // The interface kn which to report any results.
53 ResultListener* result_listener_; // NOT OWNED. 56 ResultListener* result_listener_; // NOT OWNED.
54 }; 57 };
55 58
56 HttpURLFetcher::Delegate::Delegate( 59 HttpURLFetcher::Delegate::Delegate(
57 const GURL& rewritten_url, 60 const GURL& rewritten_url,
58 const std::string& method, 61 const std::string& method,
62 const std::string& post_data,
59 const net::HttpRequestHeaders& request_headers, 63 const net::HttpRequestHeaders& request_headers,
60 const net::URLRequestContext* url_request_context, 64 const net::URLRequestContext* url_request_context,
61 ResultListener* result_listener) 65 ResultListener* result_listener)
62 : result_code_(net::OK), 66 : result_code_(net::OK),
63 buf_(new net::IOBuffer(kBufSize)), 67 buf_(new net::IOBuffer(kBufSize)),
64 request_(url_request_context->CreateRequest(rewritten_url, 68 request_(url_request_context->CreateRequest(rewritten_url,
65 net::DEFAULT_PRIORITY, 69 net::DEFAULT_PRIORITY,
66 this)), 70 this)),
67 result_listener_(result_listener) { 71 result_listener_(result_listener) {
68 request_->set_method(method); 72 request_->set_method(method);
73
74 if (!post_data.empty()) {
75 request_->set_upload(net::ElementsUploadDataStream::CreateWithReader(
76 base::MakeUnique<net::UploadBytesElementReader>(post_data.data(),
77 post_data.size()),
78 0));
79 }
80
69 request_->SetExtraRequestHeaders(request_headers); 81 request_->SetExtraRequestHeaders(request_headers);
70 request_->Start(); 82 request_->Start();
71 } 83 }
72 84
73 HttpURLFetcher::Delegate::~Delegate() {} 85 HttpURLFetcher::Delegate::~Delegate() {}
74 86
75 void HttpURLFetcher::Delegate::OnAuthRequired( 87 void HttpURLFetcher::Delegate::OnAuthRequired(
76 net::URLRequest* request, 88 net::URLRequest* request,
77 net::AuthChallengeInfo* auth_info) { 89 net::AuthChallengeInfo* auth_info) {
78 DCHECK_EQ(request, request_.get()); 90 DCHECK_EQ(request, request_.get());
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 188 }
177 189
178 HttpURLFetcher::HttpURLFetcher( 190 HttpURLFetcher::HttpURLFetcher(
179 const net::URLRequestContext* url_request_context) 191 const net::URLRequestContext* url_request_context)
180 : url_request_context_(url_request_context) {} 192 : url_request_context_(url_request_context) {}
181 193
182 HttpURLFetcher::~HttpURLFetcher() {} 194 HttpURLFetcher::~HttpURLFetcher() {}
183 195
184 void HttpURLFetcher::StartFetch(const GURL& rewritten_url, 196 void HttpURLFetcher::StartFetch(const GURL& rewritten_url,
185 const std::string& method, 197 const std::string& method,
198 const std::string& post_data,
186 const net::HttpRequestHeaders& request_headers, 199 const net::HttpRequestHeaders& request_headers,
187 const std::string& devtools_request_id,
188 ResultListener* result_listener) { 200 ResultListener* result_listener) {
189 delegate_.reset(new Delegate(rewritten_url, method, request_headers, 201 delegate_.reset(new Delegate(rewritten_url, method, post_data,
190 url_request_context_, result_listener)); 202 request_headers, url_request_context_,
203 result_listener));
191 } 204 }
192 205
193 } // namespace headless 206 } // namespace headless
OLDNEW
« no previous file with comments | « headless/public/util/http_url_fetcher.h ('k') | headless/public/util/protocol_handler_request_id_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698