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

Side by Side Diff: mojo/services/network/url_loader_impl.cc

Issue 407093011: Allow URLRequests from one context to have different NetworkDelegates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: And fix more stuff... Created 6 years, 5 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 "mojo/services/network/url_loader_impl.h" 5 #include "mojo/services/network/url_loader_impl.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "mojo/common/common_type_converters.h" 8 #include "mojo/common/common_type_converters.h"
9 #include "mojo/services/network/network_context.h" 9 #include "mojo/services/network/network_context.h"
10 #include "net/base/io_buffer.h" 10 #include "net/base/io_buffer.h"
11 #include "net/base/load_flags.h" 11 #include "net/base/load_flags.h"
12 #include "net/http/http_response_headers.h" 12 #include "net/http/http_response_headers.h"
13 #include "net/url_request/url_request_context.h"
13 14
14 namespace mojo { 15 namespace mojo {
15 namespace { 16 namespace {
16 17
17 const uint32_t kMaxReadSize = 64 * 1024; 18 const uint32_t kMaxReadSize = 64 * 1024;
18 19
19 // Generates an URLResponsePtr from the response state of a net::URLRequest. 20 // Generates an URLResponsePtr from the response state of a net::URLRequest.
20 URLResponsePtr MakeURLResponse(const net::URLRequest* url_request) { 21 URLResponsePtr MakeURLResponse(const net::URLRequest* url_request) {
21 URLResponsePtr response(URLResponse::New()); 22 URLResponsePtr response(URLResponse::New());
22 response->url = String::From(url_request->url()); 23 response->url = String::From(url_request->url());
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 if (url_request_) { 128 if (url_request_) {
128 SendError(net::ERR_UNEXPECTED, callback); 129 SendError(net::ERR_UNEXPECTED, callback);
129 return; 130 return;
130 } 131 }
131 132
132 if (!request) { 133 if (!request) {
133 SendError(net::ERR_INVALID_ARGUMENT, callback); 134 SendError(net::ERR_INVALID_ARGUMENT, callback);
134 return; 135 return;
135 } 136 }
136 137
137 url_request_.reset( 138 url_request_ = context_->url_request_context()->CreateRequest(
138 new net::URLRequest(GURL(request->url), 139 GURL(request->url),
139 net::DEFAULT_PRIORITY, 140 net::DEFAULT_PRIORITY,
140 this, 141 this,
141 context_->url_request_context())); 142 NULL);
142 url_request_->set_method(request->method); 143 url_request_->set_method(request->method);
143 if (request->headers) { 144 if (request->headers) {
144 net::HttpRequestHeaders headers; 145 net::HttpRequestHeaders headers;
145 for (size_t i = 0; i < request->headers.size(); ++i) 146 for (size_t i = 0; i < request->headers.size(); ++i)
146 headers.AddHeaderFromString(request->headers[i].To<base::StringPiece>()); 147 headers.AddHeaderFromString(request->headers[i].To<base::StringPiece>());
147 url_request_->SetExtraRequestHeaders(headers); 148 url_request_->SetExtraRequestHeaders(headers);
148 } 149 }
149 if (request->bypass_cache) 150 if (request->bypass_cache)
150 url_request_->SetLoadFlags(net::LOAD_BYPASS_CACHE); 151 url_request_->SetLoadFlags(net::LOAD_BYPASS_CACHE);
151 // TODO(darin): Handle request body. 152 // TODO(darin): Handle request body.
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 if (completed_synchronously) { 323 if (completed_synchronously) {
323 base::MessageLoop::current()->PostTask( 324 base::MessageLoop::current()->PostTask(
324 FROM_HERE, 325 FROM_HERE,
325 base::Bind(&URLLoaderImpl::ReadMore, weak_ptr_factory_.GetWeakPtr())); 326 base::Bind(&URLLoaderImpl::ReadMore, weak_ptr_factory_.GetWeakPtr()));
326 } else { 327 } else {
327 ReadMore(); 328 ReadMore();
328 } 329 }
329 } 330 }
330 331
331 } // namespace mojo 332 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698