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
tree: 8e2cbad242bb16bda8d1a70d6657c79725d62789
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/