| Index: mojo/services/network/url_loader_impl.cc
|
| diff --git a/mojo/services/network/url_loader_impl.cc b/mojo/services/network/url_loader_impl.cc
|
| index 10e497a2f5c08140afdae06fda2d0bee1838da8d..bda30e538a48dde2d16795dd5bd4c0bd82488d46 100644
|
| --- a/mojo/services/network/url_loader_impl.cc
|
| +++ b/mojo/services/network/url_loader_impl.cc
|
| @@ -268,10 +268,10 @@ URLLoaderImpl::URLLoaderImpl(NetworkContext* context,
|
| current_fetcher_id_(0),
|
| binding_(this, request.Pass()) {
|
| for (auto& interceptor : interceptors_) {
|
| - interceptor.set_error_handler(this);
|
| + interceptor.set_connection_error_handler([this]() { OnConnectionError(); });
|
| }
|
| interceptor_index_ = interceptors_.size() - 1;
|
| - binding_.set_error_handler(this);
|
| + binding_.set_connection_error_handler([this]() { OnConnectionError(); });
|
| context_->RegisterURLLoader(this);
|
| }
|
|
|
| @@ -336,12 +336,6 @@ void URLLoaderImpl::QueryStatus(
|
| callback.Run(status.Pass());
|
| }
|
|
|
| -void URLLoaderImpl::OnConnectionError() {
|
| - binding_.Close();
|
| - if (body_fetchers_.empty())
|
| - delete this;
|
| -}
|
| -
|
| void URLLoaderImpl::OnReceivedRedirect(net::URLRequest* url_request,
|
| const net::RedirectInfo& redirect_info,
|
| bool* defer_redirect) {
|
| @@ -399,6 +393,12 @@ void URLLoaderImpl::OnReadCompleted(net::URLRequest* url_request,
|
| DCHECK(false);
|
| }
|
|
|
| +void URLLoaderImpl::OnConnectionError() {
|
| + binding_.Close();
|
| + if (body_fetchers_.empty())
|
| + delete this;
|
| +}
|
| +
|
| void URLLoaderImpl::SendError(
|
| int error_code,
|
| const Callback<void(URLResponsePtr)>& callback) {
|
| @@ -536,8 +536,13 @@ void URLLoaderImpl::StartInternal(URLRequestPtr request) {
|
| url_request_->set_upload(make_scoped_ptr<net::UploadDataStream>(
|
| new net::ElementsUploadDataStream(element_readers.Pass(), 0)));
|
| }
|
| + int load_flags = 0;
|
| if (request->bypass_cache)
|
| - url_request_->SetLoadFlags(net::LOAD_BYPASS_CACHE);
|
| + load_flags |= net::LOAD_BYPASS_CACHE;
|
| + if (request->only_from_cache)
|
| + load_flags |= net::LOAD_ONLY_FROM_CACHE;
|
| + if (load_flags)
|
| + url_request_->SetLoadFlags(load_flags);
|
|
|
| response_body_buffer_size_ = request->response_body_buffer_size;
|
| auto_follow_redirects_ = request->auto_follow_redirects;
|
|
|