| Index: net/proxy/proxy_script_fetcher_impl.cc
|
| diff --git a/net/proxy/proxy_script_fetcher_impl.cc b/net/proxy/proxy_script_fetcher_impl.cc
|
| index bd3c46a9f28888cb6f74df40e661853ac8209c8e..d78c9feb65a5df03252977a2594e24f285fd4cc1 100644
|
| --- a/net/proxy/proxy_script_fetcher_impl.cc
|
| +++ b/net/proxy/proxy_script_fetcher_impl.cc
|
| @@ -104,13 +104,14 @@ size_t ProxyScriptFetcherImpl::SetSizeConstraint(size_t size_bytes) {
|
| return prev;
|
| }
|
|
|
| -void ProxyScriptFetcherImpl::OnResponseCompleted(URLRequest* request) {
|
| +void ProxyScriptFetcherImpl::OnResponseCompleted(URLRequest* request,
|
| + int net_error) {
|
| DCHECK_EQ(request, cur_request_.get());
|
|
|
| // Use |result_code_| as the request's error if we have already set it to
|
| // something specific.
|
| - if (result_code_ == OK && !request->status().is_success())
|
| - result_code_ = request->status().error();
|
| + if (result_code_ == OK && net_error != OK)
|
| + result_code_ = net_error;
|
|
|
| FetchCompleted();
|
| }
|
| @@ -206,11 +207,13 @@ void ProxyScriptFetcherImpl::OnSSLCertificateError(URLRequest* request,
|
| request->Cancel();
|
| }
|
|
|
| -void ProxyScriptFetcherImpl::OnResponseStarted(URLRequest* request) {
|
| +void ProxyScriptFetcherImpl::OnResponseStarted(URLRequest* request,
|
| + int net_error) {
|
| DCHECK_EQ(request, cur_request_.get());
|
| + DCHECK_NE(ERR_IO_PENDING, net_error);
|
|
|
| - if (!request->status().is_success()) {
|
| - OnResponseCompleted(request);
|
| + if (net_error != OK) {
|
| + OnResponseCompleted(request, net_error);
|
| return;
|
| }
|
|
|
| @@ -242,6 +245,8 @@ void ProxyScriptFetcherImpl::OnResponseStarted(URLRequest* request) {
|
|
|
| void ProxyScriptFetcherImpl::OnReadCompleted(URLRequest* request,
|
| int num_bytes) {
|
| + DCHECK_NE(ERR_IO_PENDING, num_bytes);
|
| +
|
| DCHECK_EQ(request, cur_request_.get());
|
| if (ConsumeBytesRead(request, num_bytes)) {
|
| // Keep reading.
|
| @@ -252,13 +257,15 @@ void ProxyScriptFetcherImpl::OnReadCompleted(URLRequest* request,
|
| void ProxyScriptFetcherImpl::ReadBody(URLRequest* request) {
|
| // Read as many bytes as are available synchronously.
|
| while (true) {
|
| - int num_bytes;
|
| - if (!request->Read(buf_.get(), kBufSize, &num_bytes)) {
|
| - // Check whether the read failed synchronously.
|
| - if (!request->status().is_io_pending())
|
| - OnResponseCompleted(request);
|
| + int num_bytes = request->Read(buf_.get(), kBufSize);
|
| + if (num_bytes == ERR_IO_PENDING)
|
| + return;
|
| +
|
| + if (num_bytes < 0) {
|
| + OnResponseCompleted(request, num_bytes);
|
| return;
|
| }
|
| +
|
| if (!ConsumeBytesRead(request, num_bytes))
|
| return;
|
| }
|
| @@ -268,7 +275,7 @@ bool ProxyScriptFetcherImpl::ConsumeBytesRead(URLRequest* request,
|
| int num_bytes) {
|
| if (num_bytes <= 0) {
|
| // Error while reading, or EOF.
|
| - OnResponseCompleted(request);
|
| + OnResponseCompleted(request, num_bytes);
|
| return false;
|
| }
|
|
|
|
|