New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 700171 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: May 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 698460



Sign in to add a comment

Remove Wait APIs from Mojo

Project Member Reported by roc...@chromium.org, Mar 9 2017

Issue description

These core APIs can now be built in library code on top of the improved Watcher API. Lots of code to delete.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9032c783d6a470dcd04d3af16cb02d4ee621f7b

commit e9032c783d6a470dcd04d3af16cb02d4ee621f7b
Author: rockot <rockot@chromium.org>
Date: Mon Mar 13 20:07:54 2017

Mojo: Add signal for new data pipe consumer data

Adds a new MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE signal. This signal is
raised on a data pipe consumer handle whenever new data is written into
the pipe, and is held high until the next MojoReadData or
MojoBeginReadData attempt on the handle.

This may act as a more useful signal for data pipe consumers who want to
wait for a minimum amount of data to become available before reading, as
it can be watched independent of general readability so that new work is
only attempted when new data is ready.

BUG= 700171 

Review-Url: https://codereview.chromium.org/2741353002
Cr-Commit-Position: refs/heads/master@{#456450}

[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/edk/system/core_unittest.cc
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/edk/system/data_pipe_consumer_dispatcher.cc
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/edk/system/data_pipe_consumer_dispatcher.h
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/public/c/system/tests/core_unittest.cc
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/public/c/system/types.h
[modify] https://crrev.com/e9032c783d6a470dcd04d3af16cb02d4ee621f7b/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9eadabae1de0cb22725450596fe324f03dd63b92

commit 9eadabae1de0cb22725450596fe324f03dd63b92
Author: rockot <rockot@chromium.org>
Date: Wed Mar 15 23:57:47 2017

Mojo: Armed Watchers

Changes the Watcher C API as described in this post:
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-mojo/UcA97R4IznI

Makes watchers a first-class non-transferable handle type in Mojo,
allows multiple distinct events to be watched by a single watcher,
and requires watchers to be explicitly armed before a notification
will fire. Also now allows for cancellation (and watcher closure)
from within notification callbacks, simplifying cancellation logic
and avoiding any possibility of EDK deadlocks caused by cancellations,
during watch notification.

Updates the Watcher class in mojo/public/cpp/system to reflect the
new model, adding an explicit ArmingPolicy to allow users to select
manual or automatic arming. Also renames it to SimpleWatcher to
adequately convey that this is only a simplified helper class that
does not utilize the full power of watchers.

Automatic arming provides imperfect edge-triggered behavior, which is
still an improvement over the old behavior in many cases.

Manual arming is used in the bindings Connector to ensure that all
messages are flushed from a pipe before control returns from a
handle-ready notification, and is also now used for Watchers which
watch a data pipe handle.

Other users of the Watcher C API (namely Blink's MojoWatcher and
content's MessagePort) have also been adapted to the new API.

BUG=693595, 700171 

Review-Url: https://codereview.chromium.org/2725133002
Cr-Commit-Position: refs/heads/master@{#457269}

[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/chrome/browser/media/cast_remoting_sender.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/chrome/browser/media/cast_remoting_sender.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/browser/loader/mojo_async_resource_handler.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/browser/loader/mojo_async_resource_handler.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/browser/shared_worker/shared_worker_service_impl_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/child/url_response_body_consumer.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/child/url_response_body_consumer.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/child/web_data_consumer_handle_impl.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/child/web_data_consumer_handle_impl.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/common/message_port.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/content/common/message_port.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ios/web/webui/mojo_facade.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ios/web/webui/mojo_facade.mm
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ios/web/webui/mojo_facade_unittest.mm
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ios/web/webui/web_ui_mojo_inttest.mm
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/ipc/ipc_sync_channel.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/media/mojo/common/mojo_decoder_buffer_converter.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/media/mojo/common/mojo_decoder_buffer_converter.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/media/remoting/demuxer_stream_adapter.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/media/remoting/demuxer_stream_adapter.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/android/javatests/src/org/chromium/mojo/system/impl/WatcherImplTest.java
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/android/system/watcher_impl.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/common/data_pipe_drainer.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/common/data_pipe_drainer.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/embedder/entrypoints.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/js/drain_data.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/js/drain_data.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/js/waiting_callback.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/js/waiting_callback.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/awakable_list.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/awakable_list.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/core.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/core.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/data_pipe_consumer_dispatcher.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/data_pipe_consumer_dispatcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/data_pipe_producer_dispatcher.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/data_pipe_producer_dispatcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/dispatcher.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/dispatcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/message_pipe_dispatcher.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/message_pipe_dispatcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/multiprocess_message_pipe_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/request_context.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/request_context.h
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watch.cc
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watch.h
[delete] https://crrev.com/2ca03688be282be7b59aadc46489823e9ebcf3bd/mojo/edk/system/watch_unittest.cc
[delete] https://crrev.com/2ca03688be282be7b59aadc46489823e9ebcf3bd/mojo/edk/system/watcher.cc
[delete] https://crrev.com/2ca03688be282be7b59aadc46489823e9ebcf3bd/mojo/edk/system/watcher.h
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watcher_dispatcher.cc
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watcher_dispatcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watcher_set.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watcher_set.h
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/edk/system/watcher_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/BUILD.gn
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/core.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/functions.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/thunks.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/thunks.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/types.h
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/c/system/watcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/binding.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/connector.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/interface_ptr.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/binding_state.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/connector.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/interface_ptr_state.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/multiplex_router.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/lib/multiplex_router.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/bindings/tests/connector_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/BUILD.gn
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/simple_watcher.cc
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/simple_watcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/tests/BUILD.gn
[add] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/tests/simple_watcher_unittest.cc
[delete] https://crrev.com/2ca03688be282be7b59aadc46489823e9ebcf3bd/mojo/public/cpp/system/tests/watcher_unittest.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/watcher.cc
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/mojo/public/cpp/system/watcher.h
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/third_party/WebKit/Source/core/mojo/MojoWatcher.cpp
[modify] https://crrev.com/9eadabae1de0cb22725450596fe324f03dd63b92/third_party/WebKit/Source/core/mojo/MojoWatcher.h

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/853496a78ae997c2d8b80f3cd8fabf9423fb3361

commit 853496a78ae997c2d8b80f3cd8fabf9423fb3361
Author: rockot <rockot@chromium.org>
Date: Thu Mar 16 02:18:45 2017

Mojo EDK: Introduce MojoQueryHandleSignalsState API

The only reliable way to inquire about handle signals now
is to MojoWait (for e.g. 0 deadline). As a precursor to
removing the wait APIs in favor of watchers, we need to
retain the ability to efficiently query a handle's signals
state.

Rather than trying to retrofit the watcher APIs to support
this use case in similar fashion to the wait APIs, this adds
an API explicitly for the purpose of querying signals state.

Adds a corresponding method to the C++ mojo::Handle
and moves the EDK's internal HandleSignalsState helper class
to mojo/public/cpp/system, adding some convenient accessors.

Also introduces the API to the JS and Java libraries, and
replaces any 0-deadline waits in those languages with usage of
this new API.

Because waitMany is not used in these languages (except for
tests which test waitMany...) it has been removed. wait() is
unused in Java after this change, so it has also been removed.

Finally, this moves several tests away from calling MojoWait
directly, instead using a simplified Watcher-based wait
implementation in MojoTestBase.

BUG= 700171 
TBR=jam@chromium.org

Review-Url: https://codereview.chromium.org/2741033003
Cr-Commit-Position: refs/heads/master@{#457315}

[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/content/child/web_data_consumer_handle_impl.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/javatests/src/org/chromium/mojo/HandleMock.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/system/core_impl.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/system/src/org/chromium/mojo/system/impl/CoreImpl.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/android/system/src/org/chromium/mojo/system/impl/HandleBase.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/embedder/entrypoints.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/js/core.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/awakable_list.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/awakable_list.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/core.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/core.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/handle_signals_state.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/message_pipe_perftest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/message_pipe_unittest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/multiprocess_message_pipe_unittest.cc
[add] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/system/signals_unittest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/test/mojo_test_base.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/edk/test/mojo_test_base.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/c/system/functions.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/c/system/tests/core_unittest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/c/system/tests/core_unittest_pure_c.c
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/c/system/thunks.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/c/system/thunks.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/cpp/system/BUILD.gn
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/cpp/system/handle.h
[add] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/cpp/system/handle_signals_state.h
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/cpp/system/tests/BUILD.gn
[add] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/cpp/system/tests/handle_signals_state_unittest.cc
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/java/system/src/org/chromium/mojo/system/Handle.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/java/system/src/org/chromium/mojo/system/InvalidHandle.java
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/js/core.js
[modify] https://crrev.com/853496a78ae997c2d8b80f3cd8fabf9423fb3361/mojo/public/js/tests/core_unittest.js

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7

commit e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7
Author: tzik <tzik@chromium.org>
Date: Thu Mar 16 03:58:50 2017

Revert of Mojo EDK: Introduce MojoQueryHandleSignalsState API (patchset #9 id:160001 of https://codereview.chromium.org/2741033003/ )

Reason for revert:
This CL seems to break mojo_system_unittests on multiple bots:

https://build.chromium.org/p/chromium.linux/builders/Linux%20Tests/builds/53232
https://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%281%29/builds/64801
https://build.chromium.org/p/chromium.mac/builders/Mac10.11%20Tests/builds/9606

Here are samples of the failing tests. Most of them are failed by time out:
MessagePipeTest.DiscardMode
WatcherTest.WatchDataPipeConsumerReadable
WatcherTest.WatchMessagePipeReadable
MessagePipeTest.Basic
DataPipeTest.PeerClosedProducerWaiting

Original issue's description:
> Mojo EDK: Introduce MojoQueryHandleSignalsState API
>
> The only reliable way to inquire about handle signals now
> is to MojoWait (for e.g. 0 deadline). As a precursor to
> removing the wait APIs in favor of watchers, we need to
> retain the ability to efficiently query a handle's signals
> state.
>
> Rather than trying to retrofit the watcher APIs to support
> this use case in similar fashion to the wait APIs, this adds
> an API explicitly for the purpose of querying signals state.
>
> Adds a corresponding method to the C++ mojo::Handle
> and moves the EDK's internal HandleSignalsState helper class
> to mojo/public/cpp/system, adding some convenient accessors.
>
> Also introduces the API to the JS and Java libraries, and
> replaces any 0-deadline waits in those languages with usage of
> this new API.
>
> Because waitMany is not used in these languages (except for
> tests which test waitMany...) it has been removed. wait() is
> unused in Java after this change, so it has also been removed.
>
> Finally, this moves several tests away from calling MojoWait
> directly, instead using a simplified Watcher-based wait
> implementation in MojoTestBase.
>
> BUG= 700171 
> TBR=jam@chromium.org
>
> Review-Url: https://codereview.chromium.org/2741033003
> Cr-Commit-Position: refs/heads/master@{#457315}
> Committed: https://chromium.googlesource.com/chromium/src/+/853496a78ae997c2d8b80f3cd8fabf9423fb3361

TBR=yzshen@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 700171 

Review-Url: https://codereview.chromium.org/2750273002
Cr-Commit-Position: refs/heads/master@{#457342}

[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/content/child/web_data_consumer_handle_impl.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/javatests/src/org/chromium/mojo/HandleMock.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/system/core_impl.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/system/src/org/chromium/mojo/system/impl/CoreImpl.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/android/system/src/org/chromium/mojo/system/impl/HandleBase.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/embedder/entrypoints.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/js/core.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/awakable_list.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/awakable_list.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/core.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/core.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/handle_signals_state.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/message_pipe_perftest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/message_pipe_unittest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/system/multiprocess_message_pipe_unittest.cc
[delete] https://crrev.com/4e61755b3dd5d278d51896e56e4f9aa51beff6a2/mojo/edk/system/signals_unittest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/test/mojo_test_base.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/edk/test/mojo_test_base.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/c/system/functions.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/c/system/tests/core_unittest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/c/system/tests/core_unittest_pure_c.c
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/c/system/thunks.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/c/system/thunks.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/cpp/system/BUILD.gn
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/cpp/system/handle.h
[delete] https://crrev.com/4e61755b3dd5d278d51896e56e4f9aa51beff6a2/mojo/public/cpp/system/handle_signals_state.h
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/cpp/system/tests/BUILD.gn
[delete] https://crrev.com/4e61755b3dd5d278d51896e56e4f9aa51beff6a2/mojo/public/cpp/system/tests/handle_signals_state_unittest.cc
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/java/system/src/org/chromium/mojo/system/Handle.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/java/system/src/org/chromium/mojo/system/InvalidHandle.java
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/js/core.js
[modify] https://crrev.com/e3ca1cc824f2fb89cb0bc219844f13f09afdcbd7/mojo/public/js/tests/core_unittest.js

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c7949549ac0c42252c8b3f2c08d4cb34b65dc869

commit c7949549ac0c42252c8b3f2c08d4cb34b65dc869
Author: rockot <rockot@chromium.org>
Date: Thu Mar 16 09:03:47 2017

Mojo EDK: Introduce MojoQueryHandleSignalsState API

The only reliable way to inquire about handle signals now
is to MojoWait (for e.g. 0 deadline). As a precursor to
removing the wait APIs in favor of watchers, we need to
retain the ability to efficiently query a handle's signals
state.

Rather than trying to retrofit the watcher APIs to support
this use case in similar fashion to the wait APIs, this adds
an API explicitly for the purpose of querying signals state.

Adds a corresponding method to the C++ mojo::Handle
and moves the EDK's internal HandleSignalsState helper class
to mojo/public/cpp/system, adding some convenient accessors.

Also introduces the API to the JS and Java libraries, and
replaces any 0-deadline waits in those languages with usage of
this new API.

Because waitMany is not used in these languages (except for
tests which test waitMany...) it has been removed. wait() is
unused in Java after this change, so it has also been removed.

Finally, this moves several tests away from calling MojoWait
directly, instead using a simplified Watcher-based wait
implementation in MojoTestBase.

BUG= 700171 
TBR=jam@chromium.org

Review-Url: https://codereview.chromium.org/2741033003
Cr-Original-Commit-Position: refs/heads/master@{#457315}
Committed: https://chromium.googlesource.com/chromium/src/+/853496a78ae997c2d8b80f3cd8fabf9423fb3361
Review-Url: https://codereview.chromium.org/2741033003
Cr-Commit-Position: refs/heads/master@{#457378}

[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/content/child/web_data_consumer_handle_impl.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/javatests/src/org/chromium/mojo/HandleMock.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/system/core_impl.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/system/src/org/chromium/mojo/system/impl/CoreImpl.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/android/system/src/org/chromium/mojo/system/impl/HandleBase.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/embedder/entrypoints.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/js/core.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/awakable_list.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/awakable_list.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/core.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/core.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/handle_signals_state.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/message_pipe_perftest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/message_pipe_unittest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/multiprocess_message_pipe_unittest.cc
[add] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/system/signals_unittest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/test/mojo_test_base.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/edk/test/mojo_test_base.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/c/system/functions.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/c/system/tests/core_unittest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/c/system/tests/core_unittest_pure_c.c
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/c/system/thunks.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/c/system/thunks.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/cpp/system/BUILD.gn
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/cpp/system/handle.h
[add] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/cpp/system/handle_signals_state.h
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/cpp/system/tests/BUILD.gn
[add] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/cpp/system/tests/handle_signals_state_unittest.cc
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/java/system/src/org/chromium/mojo/system/Handle.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/java/system/src/org/chromium/mojo/system/InvalidHandle.java
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/js/core.js
[modify] https://crrev.com/c7949549ac0c42252c8b3f2c08d4cb34b65dc869/mojo/public/js/tests/core_unittest.js

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ab02803664abf6094e39d124ab83bfe7c418587

commit 1ab02803664abf6094e39d124ab83bfe7c418587
Author: rockot <rockot@chromium.org>
Date: Thu Mar 16 15:57:03 2017

Small cleanup in content MessagePort watcher usage

Makes the lifetime management of the State object a little clearer.
This change was supposed to make it into the CL which introduced the new
watcher API, but it got dropped somehow.

BUG= 700171 
R=jam@chromium.org

Review-Url: https://codereview.chromium.org/2752243002
Cr-Commit-Position: refs/heads/master@{#457448}

[modify] https://crrev.com/1ab02803664abf6094e39d124ab83bfe7c418587/content/common/message_port.cc
[modify] https://crrev.com/1ab02803664abf6094e39d124ab83bfe7c418587/content/common/message_port.h

Comment 7 by roc...@chromium.org, Mar 16 2017

Blocking: 698460
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a9d566a1d6b27589589dcfeb81ad7694479df3a5

commit a9d566a1d6b27589589dcfeb81ad7694479df3a5
Author: rockot <rockot@chromium.org>
Date: Fri Mar 17 19:40:56 2017

Mojo: Move waiting APIs to public library

This wipes out all blocking wait primitives from the core
API and reimplements them in the public C++ library on
top of the core Watcher API.

This gives us the freedom to more efficiently integrate
with other non-Mojo sync operations in the system.

The new public wait APIs omit any notion of timeout as
it was never used in practice. All waits are indefinite.
(It is still possible to implement timed waiters if/when
needed.)

BUG= 700171 

Review-Url: https://codereview.chromium.org/2744943002
Cr-Commit-Position: refs/heads/master@{#457856}

[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/common/data_pipe_utils.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/embedder/configuration.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/embedder/embedder_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/embedder/entrypoints.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/js/core.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/js/tests/js_to_cpp_tests.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/BUILD.gn
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/awakable.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/awakable_list.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/awakable_list.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/awakable_list_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/configuration.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/core.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/core.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/core_test_base.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/core_test_base.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/core_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/data_pipe_consumer_dispatcher.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/data_pipe_consumer_dispatcher.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/data_pipe_producer_dispatcher.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/data_pipe_producer_dispatcher.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/data_pipe_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/dispatcher.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/dispatcher.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/message_pipe_dispatcher.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/message_pipe_dispatcher.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/system/multiprocess_message_pipe_unittest.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/wait_set_dispatcher.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/wait_set_dispatcher.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/wait_set_dispatcher_unittest.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/waiter.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/waiter.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/waiter_test_utils.cc
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/waiter_test_utils.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/edk/system/waiter_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/edk/test/mojo_test_base.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/BUILD.gn
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/core.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/functions.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/tests/BUILD.gn
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/tests/core_perftest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/tests/core_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/tests/core_unittest_pure_c.c
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/thunks.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/thunks.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/c/system/types.h
[delete] https://crrev.com/0bd34dbe7b000fc958fdf0adc4b12ea5c5ccea44/mojo/public/c/system/wait_set.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/bindings/lib/connector.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/bindings/lib/sync_handle_registry.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/bindings/sync_handle_registry.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/bindings/tests/struct_traits_unittest.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/BUILD.gn
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/functions.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/handle.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/tests/BUILD.gn
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/tests/core_unittest.cc
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/tests/wait_set_unittest.cc
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/tests/wait_unittest.cc
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/wait.cc
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/wait.h
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/wait_set.cc
[add] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/system/wait_set.h
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/cpp/test_support/lib/test_utils.cc
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/js/connector.js
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/js/core.js
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/js/new_bindings/connector.js
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/mojo/public/js/tests/core_unittest.js
[modify] https://crrev.com/a9d566a1d6b27589589dcfeb81ad7694479df3a5/services/tracing/service.cc

Comment 9 by roc...@chromium.org, Mar 17 2017

Issue 702828 has been merged into this issue.
Project Member

Comment 10 by sheriffbot@chromium.org, Mar 19 2017

Labels: FoundIn-M-59 Fracas
Users experienced this crash on the following builds:

Win Canary 59.0.3044.0 -  1.07 CPM, 39 reports, 34 clients (signature content::MessagePort::State::OnHandleReady)
Linux Dev 59.0.3043.0 -  10.70 CPM, 4 reports, 4 clients (signature content::MessagePort::State::OnHandleReady)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Status: Fixed (was: Started)

Sign in to add a comment