Send input event IPCs directly from the UI thread
This CL:
1. Adds SendNow and SendOnIOThread to ChannelProxy
2a. SendNow sends immediately from the current thread if the
underlying Channel implementation claims to have a
thread-safe Send.
2b. SendOnIOThread is simply a more explicit alias for Send and
and does not acknowledge the thread-safety of the
underlying Channel implementation.
2. Flags ChannelMojo for thread-safe Send once again
3. Adds GetImmediateSender and GetIOThreadSender interfaces to
RenderProcessHost. These are safe alternatives to using its
IPC::Sender implementation directly and each corresponds to
SendNow or SendOnIOThread behavior, respectively.
4. Changes RenderWidgetHostImpl so that the input router uses
the RPH's immediate Sender interface.
The net result here is that input events are now sent to renderers
directly from the UI thread, and we have a reusable path forward
for porting more IPCs to the SendNow interface.
BUG=612944
TBR=jam@chromium.org
Review-Url: https://codereview.chromium.org/1991323002
Cr-Commit-Position: refs/heads/master@{#395906}
CrOS-Libchrome-Original-Commit: 868f89e764ab0e807adb237f0cbaf79ca5f49257
7 files changed