| Index: net/url_request/url_request_test_util.cc
|
| diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc
|
| index cc56ef300f17749a68d8e34a8ad93fb986611921..7ce435a23e6a008ee6bec1953601133106235a1a 100644
|
| --- a/net/url_request/url_request_test_util.cc
|
| +++ b/net/url_request/url_request_test_util.cc
|
| @@ -290,15 +290,22 @@ void TestDelegate::OnReadCompleted(URLRequest* request, int bytes_read) {
|
| if (response_started_count_ == 0)
|
| received_data_before_response_ = true;
|
|
|
| - if (cancel_in_rd_)
|
| - request_status_ = request->Cancel();
|
| -
|
| if (bytes_read >= 0) {
|
| // There is data to read.
|
| received_bytes_count_ += bytes_read;
|
|
|
| - // consume the data
|
| + // Consume the data.
|
| data_received_.append(buf_->data(), bytes_read);
|
| +
|
| + if (cancel_in_rd_) {
|
| + request_status_ = request->Cancel();
|
| + // If bytes_read is 0, won't get a notification on cancelation.
|
| + if (bytes_read == 0 && quit_on_complete_) {
|
| + base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| + FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
|
| + }
|
| + return;
|
| + }
|
| }
|
|
|
| // If it was not end of stream, request to read more.
|
|
|