diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc b/chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc index 66d289894e6..00c4d01d2f6 100644 --- a/chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc +++ b/chromium/third_party/blink/renderer/core/fetch/fetch_data_loader.cc @@ -519,21 +519,24 @@ class FetchDataLoaderAsDataPipe final : public FetchDataLoader, if (result == BytesConsumer::Result::kShouldWait) return; if (result == BytesConsumer::Result::kOk) { - DCHECK_GT(available, 0UL); - uint32_t num_bytes = available; - MojoResult mojo_result = out_data_pipe_->WriteData( - buffer, &num_bytes, MOJO_WRITE_DATA_FLAG_NONE); - if (mojo_result == MOJO_RESULT_OK) { - result = consumer_->EndRead(num_bytes); - } else if (mojo_result == MOJO_RESULT_SHOULD_WAIT) { + if (available == 0) { result = consumer_->EndRead(0); - should_wait = true; - data_pipe_watcher_.ArmOrNotify(); } else { - result = consumer_->EndRead(0); - StopInternal(); - client_->DidFetchDataLoadFailed(); - return; + uint32_t num_bytes = available; + MojoResult mojo_result = out_data_pipe_->WriteData( + buffer, &num_bytes, MOJO_WRITE_DATA_FLAG_NONE); + if (mojo_result == MOJO_RESULT_OK) { + result = consumer_->EndRead(num_bytes); + } else if (mojo_result == MOJO_RESULT_SHOULD_WAIT) { + result = consumer_->EndRead(0); + should_wait = true; + data_pipe_watcher_.ArmOrNotify(); + } else { + result = consumer_->EndRead(0); + StopInternal(); + client_->DidFetchDataLoadFailed(); + return; + } } } switch (result) { |