| Index: content/child/web_data_consumer_handle_impl.cc
|
| diff --git a/content/child/web_data_consumer_handle_impl.cc b/content/child/web_data_consumer_handle_impl.cc
|
| index b40f479861e1ba145c80e339da7f8bb6dd80d81c..2defcb6fa96cbcdf294f5d5fe16f0fb76d5e3659 100644
|
| --- a/content/child/web_data_consumer_handle_impl.cc
|
| +++ b/content/child/web_data_consumer_handle_impl.cc
|
| @@ -62,20 +62,13 @@ Result WebDataConsumerHandleImpl::ReaderImpl::read(void* data,
|
| // Even if there is unread data available, mojo::ReadDataRaw() returns
|
| // FAILED_PRECONDITION when |size| is 0 and the producer handle was closed.
|
| // But in this case, WebDataConsumerHandle::Reader::read() must return Ok.
|
| - // So we use mojo::Wait() with 0 deadline to check whether readable or not.
|
| - MojoResult wait_result = mojo::Wait(
|
| - context_->handle().get(), MOJO_HANDLE_SIGNAL_READABLE, 0, nullptr);
|
| - switch (wait_result) {
|
| - case MOJO_RESULT_OK:
|
| - return Ok;
|
| - case MOJO_RESULT_FAILED_PRECONDITION:
|
| - return Done;
|
| - case MOJO_RESULT_DEADLINE_EXCEEDED:
|
| - return ShouldWait;
|
| - default:
|
| - NOTREACHED();
|
| - return UnexpectedError;
|
| - }
|
| + // So we query the signals state directly.
|
| + mojo::HandleSignalsState state = context_->handle()->QuerySignalsState();
|
| + if (state.readable())
|
| + return Ok;
|
| + if (state.never_readable())
|
| + return Done;
|
| + return ShouldWait;
|
| }
|
|
|
| uint32_t size_to_pass = size;
|
|
|