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

Side by Side Diff: components/cronet/android/url_request_adapter.cc

Issue 453053002: Rename url_request_[context_]peer.* into url_request_[context_]adapter.* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix java formatting Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
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_adapter.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 #include "components/cronet/android/url_request_context_peer.h" 8 #include "components/cronet/android/url_request_context_adapter.h"
9 #include "components/cronet/android/wrapped_channel_upload_element_reader.h" 9 #include "components/cronet/android/wrapped_channel_upload_element_reader.h"
10 #include "net/base/load_flags.h" 10 #include "net/base/load_flags.h"
11 #include "net/base/upload_bytes_element_reader.h" 11 #include "net/base/upload_bytes_element_reader.h"
12 #include "net/http/http_status_code.h" 12 #include "net/http/http_status_code.h"
13 13
14 namespace cronet { 14 namespace cronet {
15 15
16 static const size_t kBufferSizeIncrement = 8192; 16 static const size_t kBufferSizeIncrement = 8192;
17 17
18 URLRequestPeer::URLRequestPeer(URLRequestContextPeer* context, 18 URLRequestAdapter::URLRequestAdapter(URLRequestContextAdapter* context,
19 URLRequestPeerDelegate* delegate, 19 URLRequestAdapterDelegate* delegate,
20 GURL url, 20 GURL url,
21 net::RequestPriority priority) 21 net::RequestPriority priority)
22 : method_("GET"), 22 : method_("GET"),
23 url_request_(NULL), 23 url_request_(NULL),
24 read_buffer_(new net::GrowableIOBuffer()), 24 read_buffer_(new net::GrowableIOBuffer()),
25 bytes_read_(0), 25 bytes_read_(0),
26 total_bytes_read_(0), 26 total_bytes_read_(0),
27 error_code_(0), 27 error_code_(0),
28 http_status_code_(0), 28 http_status_code_(0),
29 canceled_(false), 29 canceled_(false),
30 expected_size_(0) { 30 expected_size_(0) {
31 context_ = context; 31 context_ = context;
32 delegate_ = delegate; 32 delegate_ = delegate;
33 url_ = url; 33 url_ = url;
34 priority_ = priority; 34 priority_ = priority;
35 } 35 }
36 36
37 URLRequestPeer::~URLRequestPeer() { CHECK(url_request_ == NULL); } 37 URLRequestAdapter::~URLRequestAdapter() {
38 CHECK(url_request_ == NULL);
39 }
38 40
39 void URLRequestPeer::SetMethod(const std::string& method) { method_ = method; } 41 void URLRequestAdapter::SetMethod(const std::string& method) {
42 method_ = method;
43 }
40 44
41 void URLRequestPeer::AddHeader(const std::string& name, 45 void URLRequestAdapter::AddHeader(const std::string& name,
42 const std::string& value) { 46 const std::string& value) {
43 headers_.SetHeader(name, value); 47 headers_.SetHeader(name, value);
44 } 48 }
45 49
46 void URLRequestPeer::SetUploadContent(const char* bytes, int bytes_len) { 50 void URLRequestAdapter::SetUploadContent(const char* bytes, int bytes_len) {
47 std::vector<char> data(bytes, bytes + bytes_len); 51 std::vector<char> data(bytes, bytes + bytes_len);
48 scoped_ptr<net::UploadElementReader> reader( 52 scoped_ptr<net::UploadElementReader> reader(
49 new net::UploadOwnedBytesElementReader(&data)); 53 new net::UploadOwnedBytesElementReader(&data));
50 upload_data_stream_.reset(net::UploadDataStream::CreateWithReader( 54 upload_data_stream_.reset(
51 reader.Pass(), 0)); 55 net::UploadDataStream::CreateWithReader(reader.Pass(), 0));
52 } 56 }
53 57
54 void URLRequestPeer::SetUploadChannel(JNIEnv* env, int64 content_length) { 58 void URLRequestAdapter::SetUploadChannel(JNIEnv* env, int64 content_length) {
55 scoped_ptr<net::UploadElementReader> reader( 59 scoped_ptr<net::UploadElementReader> reader(
56 new WrappedChannelElementReader(delegate_, content_length)); 60 new WrappedChannelElementReader(delegate_, content_length));
57 upload_data_stream_.reset(net::UploadDataStream::CreateWithReader( 61 upload_data_stream_.reset(
58 reader.Pass(), 0)); 62 net::UploadDataStream::CreateWithReader(reader.Pass(), 0));
59 } 63 }
60 64
61 std::string URLRequestPeer::GetHeader(const std::string &name) const { 65 std::string URLRequestAdapter::GetHeader(const std::string& name) const {
62 std::string value; 66 std::string value;
63 if (url_request_ != NULL) { 67 if (url_request_ != NULL) {
64 url_request_->GetResponseHeaderByName(name, &value); 68 url_request_->GetResponseHeaderByName(name, &value);
65 } 69 }
66 return value; 70 return value;
67 } 71 }
68 72
69 net::HttpResponseHeaders* URLRequestPeer::GetResponseHeaders() const { 73 net::HttpResponseHeaders* URLRequestAdapter::GetResponseHeaders() const {
70 if (url_request_ == NULL) { 74 if (url_request_ == NULL) {
71 return NULL; 75 return NULL;
72 } 76 }
73 return url_request_->response_headers(); 77 return url_request_->response_headers();
74 } 78 }
75 79
76 void URLRequestPeer::Start() { 80 void URLRequestAdapter::Start() {
77 context_->GetNetworkTaskRunner()->PostTask( 81 context_->GetNetworkTaskRunner()->PostTask(
78 FROM_HERE, 82 FROM_HERE,
79 base::Bind(&URLRequestPeer::OnInitiateConnection, 83 base::Bind(&URLRequestAdapter::OnInitiateConnection,
80 base::Unretained(this))); 84 base::Unretained(this)));
81 } 85 }
82 86
83 void URLRequestPeer::OnInitiateConnection() { 87 void URLRequestAdapter::OnInitiateConnection() {
84 if (canceled_) { 88 if (canceled_) {
85 return; 89 return;
86 } 90 }
87 91
88 VLOG(1) << "Starting chromium request: " 92 VLOG(1) << "Starting chromium request: "
89 << url_.possibly_invalid_spec().c_str() 93 << url_.possibly_invalid_spec().c_str()
90 << " priority: " << RequestPriorityToString(priority_); 94 << " priority: " << RequestPriorityToString(priority_);
91 url_request_ = new net::URLRequest( 95 url_request_ = new net::URLRequest(
92 url_, net::DEFAULT_PRIORITY, this, context_->GetURLRequestContext()); 96 url_, net::DEFAULT_PRIORITY, this, context_->GetURLRequestContext());
93 url_request_->SetLoadFlags(net::LOAD_DISABLE_CACHE | 97 url_request_->SetLoadFlags(net::LOAD_DISABLE_CACHE |
94 net::LOAD_DO_NOT_SAVE_COOKIES | 98 net::LOAD_DO_NOT_SAVE_COOKIES |
95 net::LOAD_DO_NOT_SEND_COOKIES); 99 net::LOAD_DO_NOT_SEND_COOKIES);
96 url_request_->set_method(method_); 100 url_request_->set_method(method_);
97 url_request_->SetExtraRequestHeaders(headers_); 101 url_request_->SetExtraRequestHeaders(headers_);
98 if (!headers_.HasHeader(net::HttpRequestHeaders::kUserAgent)) { 102 if (!headers_.HasHeader(net::HttpRequestHeaders::kUserAgent)) {
99 std::string user_agent; 103 std::string user_agent;
100 user_agent = context_->GetUserAgent(url_); 104 user_agent = context_->GetUserAgent(url_);
101 url_request_->SetExtraRequestHeaderByName( 105 url_request_->SetExtraRequestHeaderByName(
102 net::HttpRequestHeaders::kUserAgent, user_agent, true /* override */); 106 net::HttpRequestHeaders::kUserAgent, user_agent, true /* override */);
103 } 107 }
104 108
105 if (upload_data_stream_) 109 if (upload_data_stream_)
106 url_request_->set_upload(upload_data_stream_.Pass()); 110 url_request_->set_upload(upload_data_stream_.Pass());
107 111
108 url_request_->SetPriority(priority_); 112 url_request_->SetPriority(priority_);
109 113
110 url_request_->Start(); 114 url_request_->Start();
111 } 115 }
112 116
113 void URLRequestPeer::Cancel() { 117 void URLRequestAdapter::Cancel() {
114 if (canceled_) { 118 if (canceled_) {
115 return; 119 return;
116 } 120 }
117 121
118 canceled_ = true; 122 canceled_ = true;
119 123
120 context_->GetNetworkTaskRunner()->PostTask( 124 context_->GetNetworkTaskRunner()->PostTask(
121 FROM_HERE, 125 FROM_HERE,
122 base::Bind(&URLRequestPeer::OnCancelRequest, base::Unretained(this))); 126 base::Bind(&URLRequestAdapter::OnCancelRequest, base::Unretained(this)));
123 } 127 }
124 128
125 void URLRequestPeer::OnCancelRequest() { 129 void URLRequestAdapter::OnCancelRequest() {
126 VLOG(1) << "Canceling chromium request: " << url_.possibly_invalid_spec(); 130 VLOG(1) << "Canceling chromium request: " << url_.possibly_invalid_spec();
127 131
128 if (url_request_ != NULL) { 132 if (url_request_ != NULL) {
129 url_request_->Cancel(); 133 url_request_->Cancel();
130 } 134 }
131 135
132 OnRequestCanceled(); 136 OnRequestCanceled();
133 } 137 }
134 138
135 void URLRequestPeer::Destroy() { 139 void URLRequestAdapter::Destroy() {
136 context_->GetNetworkTaskRunner()->PostTask( 140 context_->GetNetworkTaskRunner()->PostTask(
137 FROM_HERE, base::Bind(&URLRequestPeer::OnDestroyRequest, this)); 141 FROM_HERE, base::Bind(&URLRequestAdapter::OnDestroyRequest, this));
138 } 142 }
139 143
140 // static 144 // static
141 void URLRequestPeer::OnDestroyRequest(URLRequestPeer* self) { 145 void URLRequestAdapter::OnDestroyRequest(URLRequestAdapter* self) {
142 VLOG(1) << "Destroying chromium request: " 146 VLOG(1) << "Destroying chromium request: "
143 << self->url_.possibly_invalid_spec(); 147 << self->url_.possibly_invalid_spec();
144 delete self; 148 delete self;
145 } 149 }
146 150
147 void URLRequestPeer::OnResponseStarted(net::URLRequest* request) { 151 void URLRequestAdapter::OnResponseStarted(net::URLRequest* request) {
148 if (request->status().status() != net::URLRequestStatus::SUCCESS) { 152 if (request->status().status() != net::URLRequestStatus::SUCCESS) {
149 OnRequestFailed(); 153 OnRequestFailed();
150 return; 154 return;
151 } 155 }
152 156
153 http_status_code_ = request->GetResponseCode(); 157 http_status_code_ = request->GetResponseCode();
154 VLOG(1) << "Response started with status: " << http_status_code_; 158 VLOG(1) << "Response started with status: " << http_status_code_;
155 159
156 request->GetResponseHeaderByName("Content-Type", &content_type_); 160 request->GetResponseHeaderByName("Content-Type", &content_type_);
157 expected_size_ = request->GetExpectedContentSize(); 161 expected_size_ = request->GetExpectedContentSize();
158 delegate_->OnResponseStarted(this); 162 delegate_->OnResponseStarted(this);
159 163
160 Read(); 164 Read();
161 } 165 }
162 166
163 // Reads all available data or starts an asynchronous read. 167 // Reads all available data or starts an asynchronous read.
164 void URLRequestPeer::Read() { 168 void URLRequestAdapter::Read() {
165 while (true) { 169 while (true) {
166 if (read_buffer_->RemainingCapacity() == 0) { 170 if (read_buffer_->RemainingCapacity() == 0) {
167 int new_capacity = read_buffer_->capacity() + kBufferSizeIncrement; 171 int new_capacity = read_buffer_->capacity() + kBufferSizeIncrement;
168 read_buffer_->SetCapacity(new_capacity); 172 read_buffer_->SetCapacity(new_capacity);
169 } 173 }
170 174
171 int bytes_read; 175 int bytes_read;
172 if (url_request_->Read( 176 if (url_request_->Read(
173 read_buffer_, read_buffer_->RemainingCapacity(), &bytes_read)) { 177 read_buffer_, read_buffer_->RemainingCapacity(), &bytes_read)) {
174 if (bytes_read == 0) { 178 if (bytes_read == 0) {
(...skipping 14 matching lines...) Expand all
189 } 193 }
190 VLOG(1) << "Started async read"; 194 VLOG(1) << "Started async read";
191 break; 195 break;
192 } else { 196 } else {
193 OnRequestFailed(); 197 OnRequestFailed();
194 break; 198 break;
195 } 199 }
196 } 200 }
197 } 201 }
198 202
199 void URLRequestPeer::OnReadCompleted(net::URLRequest* request, int bytes_read) { 203 void URLRequestAdapter::OnReadCompleted(net::URLRequest* request,
204 int bytes_read) {
200 VLOG(1) << "Asynchronously read: " << bytes_read << " bytes"; 205 VLOG(1) << "Asynchronously read: " << bytes_read << " bytes";
201 if (bytes_read < 0) { 206 if (bytes_read < 0) {
202 OnRequestFailed(); 207 OnRequestFailed();
203 return; 208 return;
204 } else if (bytes_read == 0) { 209 } else if (bytes_read == 0) {
205 OnRequestSucceeded(); 210 OnRequestSucceeded();
206 return; 211 return;
207 } 212 }
208 213
209 OnBytesRead(bytes_read); 214 OnBytesRead(bytes_read);
210 Read(); 215 Read();
211 } 216 }
212 217
213 void URLRequestPeer::OnBytesRead(int bytes_read) { 218 void URLRequestAdapter::OnBytesRead(int bytes_read) {
214 read_buffer_->set_offset(read_buffer_->offset() + bytes_read); 219 read_buffer_->set_offset(read_buffer_->offset() + bytes_read);
215 bytes_read_ += bytes_read; 220 bytes_read_ += bytes_read;
216 total_bytes_read_ += bytes_read; 221 total_bytes_read_ += bytes_read;
217 } 222 }
218 223
219 void URLRequestPeer::OnRequestSucceeded() { 224 void URLRequestAdapter::OnRequestSucceeded() {
220 if (canceled_) { 225 if (canceled_) {
221 return; 226 return;
222 } 227 }
223 228
224 VLOG(1) << "Request completed with HTTP status: " << http_status_code_ 229 VLOG(1) << "Request completed with HTTP status: " << http_status_code_
225 << ". Total bytes read: " << total_bytes_read_; 230 << ". Total bytes read: " << total_bytes_read_;
226 231
227 OnRequestCompleted(); 232 OnRequestCompleted();
228 } 233 }
229 234
230 void URLRequestPeer::OnRequestFailed() { 235 void URLRequestAdapter::OnRequestFailed() {
231 if (canceled_) { 236 if (canceled_) {
232 return; 237 return;
233 } 238 }
234 239
235 error_code_ = url_request_->status().error(); 240 error_code_ = url_request_->status().error();
236 VLOG(1) << "Request failed with status: " << url_request_->status().status() 241 VLOG(1) << "Request failed with status: " << url_request_->status().status()
237 << " and error: " << net::ErrorToString(error_code_); 242 << " and error: " << net::ErrorToString(error_code_);
238 OnRequestCompleted(); 243 OnRequestCompleted();
239 } 244 }
240 245
241 void URLRequestPeer::OnRequestCanceled() { OnRequestCompleted(); } 246 void URLRequestAdapter::OnRequestCanceled() {
247 OnRequestCompleted();
248 }
242 249
243 void URLRequestPeer::OnRequestCompleted() { 250 void URLRequestAdapter::OnRequestCompleted() {
244 VLOG(1) << "Completed: " << url_.possibly_invalid_spec(); 251 VLOG(1) << "Completed: " << url_.possibly_invalid_spec();
245 if (url_request_ != NULL) { 252 if (url_request_ != NULL) {
246 delete url_request_; 253 delete url_request_;
247 url_request_ = NULL; 254 url_request_ = NULL;
248 } 255 }
249 256
250 delegate_->OnBytesRead(this); 257 delegate_->OnBytesRead(this);
251 delegate_->OnRequestFinished(this); 258 delegate_->OnRequestFinished(this);
252 } 259 }
253 260
254 unsigned char* URLRequestPeer::Data() const { 261 unsigned char* URLRequestAdapter::Data() const {
255 return reinterpret_cast<unsigned char*>(read_buffer_->StartOfBuffer()); 262 return reinterpret_cast<unsigned char*>(read_buffer_->StartOfBuffer());
256 } 263 }
257 264
258 } // namespace cronet 265 } // namespace cronet
OLDNEW
« no previous file with comments | « components/cronet/android/url_request_adapter.h ('k') | components/cronet/android/url_request_context_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698