Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "url_request_peer.h" | 5 #include "url_request_peer.h" |
| 6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "net/base/load_flags.h" | 8 #include "net/base/load_flags.h" |
| 9 #include "net/http/http_status_code.h" | 9 #include "net/http/http_status_code.h" |
| 10 | 10 |
| 11 namespace cronet { | 11 namespace cronet { |
| 12 | 12 |
| 13 static const size_t kBufferSizeIncrement = 8192; | 13 static const size_t kBufferSizeIncrement = 8192; |
| 14 | 14 |
| 15 // Fragment automatically inserted in the User-Agent header to indicate | |
| 16 // that the request is coming from this network stack. | |
| 17 static const char kUserAgentFragment[] = "; ChromiumJNI/"; | |
| 18 | |
| 19 URLRequestPeer::URLRequestPeer(URLRequestContextPeer* context, | 15 URLRequestPeer::URLRequestPeer(URLRequestContextPeer* context, |
| 20 URLRequestPeerDelegate* delegate, | 16 URLRequestPeerDelegate* delegate, |
| 21 GURL url, | 17 GURL url, |
| 22 net::RequestPriority priority) | 18 net::RequestPriority priority) |
| 23 : method_("GET"), | 19 : method_("GET"), |
| 24 url_request_(NULL), | 20 url_request_(NULL), |
| 25 read_buffer_(new net::GrowableIOBuffer()), | 21 read_buffer_(new net::GrowableIOBuffer()), |
| 26 bytes_read_(0), | 22 bytes_read_(0), |
| 27 total_bytes_read_(0), | 23 total_bytes_read_(0), |
| 28 error_code_(0), | 24 error_code_(0), |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 107 url_, net::DEFAULT_PRIORITY, this, context_->GetURLRequestContext()); | 103 url_, net::DEFAULT_PRIORITY, this, context_->GetURLRequestContext()); |
| 108 url_request_->SetLoadFlags(net::LOAD_DISABLE_CACHE | | 104 url_request_->SetLoadFlags(net::LOAD_DISABLE_CACHE | |
| 109 net::LOAD_DO_NOT_SAVE_COOKIES | | 105 net::LOAD_DO_NOT_SAVE_COOKIES | |
| 110 net::LOAD_DO_NOT_SEND_COOKIES); | 106 net::LOAD_DO_NOT_SEND_COOKIES); |
| 111 url_request_->set_method(method_); | 107 url_request_->set_method(method_); |
| 112 url_request_->SetExtraRequestHeaders(headers_); | 108 url_request_->SetExtraRequestHeaders(headers_); |
| 113 std::string user_agent; | 109 std::string user_agent; |
| 114 if (headers_.HasHeader(net::HttpRequestHeaders::kUserAgent)) { | 110 if (headers_.HasHeader(net::HttpRequestHeaders::kUserAgent)) { |
| 115 headers_.GetHeader(net::HttpRequestHeaders::kUserAgent, &user_agent); | 111 headers_.GetHeader(net::HttpRequestHeaders::kUserAgent, &user_agent); |
| 116 } else { | 112 } else { |
| 117 user_agent = context_->GetUserAgent(url_); | 113 user_agent = context_->GetUserAgent(url_); |
|
mmenke
2014/06/20 17:41:16
We never run this line, since we always pass in th
mef
2014/06/20 18:34:04
Isn't it possible, that there is no User-Agent hea
mmenke
2014/06/20 19:03:59
Ahh...you're right. I was thinking we were adding
| |
| 118 } | 114 } |
| 119 size_t pos = user_agent.find(')'); | |
| 120 if (pos != std::string::npos) { | |
| 121 user_agent.insert(pos, context_->version()); | |
| 122 user_agent.insert(pos, kUserAgentFragment); | |
| 123 } | |
| 124 url_request_->SetExtraRequestHeaderByName( | 115 url_request_->SetExtraRequestHeaderByName( |
| 125 net::HttpRequestHeaders::kUserAgent, user_agent, true /* override */); | 116 net::HttpRequestHeaders::kUserAgent, user_agent, true /* override */); |
|
mmenke
2014/06/20 17:41:16
I don't believe this does anything if headers_.Has
mef
2014/06/20 18:34:04
Done. It used to stick Cronet version into it, but
| |
| 126 | 117 |
| 127 VLOG(context_->logging_level()) << "User agent: " << user_agent; | 118 VLOG(context_->logging_level()) << "User agent: " << user_agent; |
|
mmenke
2014/06/20 17:41:16
nit: I don't think this is worth a VLOG, while we
mef
2014/06/20 18:34:04
Done. I guess it was there for debugging?
| |
| 128 | 119 |
| 129 if (upload_data_stream_) { | 120 if (upload_data_stream_) { |
| 130 url_request_->set_upload(make_scoped_ptr(upload_data_stream_.release())); | 121 url_request_->set_upload(make_scoped_ptr(upload_data_stream_.release())); |
| 131 } else if (streaming_upload_) { | 122 } else if (streaming_upload_) { |
| 132 url_request_->EnableChunkedUpload(); | 123 url_request_->EnableChunkedUpload(); |
| 133 } | 124 } |
| 134 | 125 |
| 135 url_request_->SetPriority(priority_); | 126 url_request_->SetPriority(priority_); |
| 136 | 127 |
| 137 url_request_->Start(); | 128 url_request_->Start(); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 284 | 275 |
| 285 delegate_->OnBytesRead(this); | 276 delegate_->OnBytesRead(this); |
| 286 delegate_->OnRequestFinished(this); | 277 delegate_->OnRequestFinished(this); |
| 287 } | 278 } |
| 288 | 279 |
| 289 unsigned char* URLRequestPeer::Data() const { | 280 unsigned char* URLRequestPeer::Data() const { |
| 290 return reinterpret_cast<unsigned char*>(read_buffer_->StartOfBuffer()); | 281 return reinterpret_cast<unsigned char*>(read_buffer_->StartOfBuffer()); |
| 291 } | 282 } |
| 292 | 283 |
| 293 } // namespace cronet | 284 } // namespace cronet |
| OLD | NEW |