Make event-targeting asynchronous in window server |
|||||||||||
Issue descriptionTo accommodate hit-testing in the display-compositor, the window-server needs to do asynchronous event-targeting. As a first step, window-server should still use local bounds+visibility-based hit-testing (i.e. it does not actually need to block on the display compositor API), but the code that does the hit-testing [1] needs to be changed to be asynchronous. It is possible to do some optimizations (e.g. we shouldn't need to hit-test for each mouse-move event, and instead cache some data to re-use for events until the next vsync, etc.), but we can do this first step without that. [1] https://cs.chromium.org/chromium/src/services/ui/ws/event_dispatcher.cc?type=cs&sq=package:chromium&l=582
,
May 3 2017
,
Jun 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4cd9767ab7c89145bbec6b343ae701c83bf42e9d commit 4cd9767ab7c89145bbec6b343ae701c83bf42e9d Author: riajiang <riajiang@chromium.org> Date: Wed Jun 07 23:27:33 2017 Make event-targeting asynchronous in window server. Change hit-testing in EventTargeter to be asynchronous to accommodate hit-testing cases that cannot be solved by HittestComponent if the flag "enable-async-event-targeting" is turned on. Next steps: 1. Explore hit-test optimization/caching. 2. Once HittestComponent (gklassen@) is implemented, update event targeting to talk to HittestComponent synchronously for most cases and talk to blink for "hard" cases that cannot be solved by HittestComponent. BUG= 710016 TEST=service_unittest Review-Url: https://codereview.chromium.org/2884463002 Cr-Commit-Position: refs/heads/master@{#477783} [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_dispatcher.cc [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_dispatcher.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_dispatcher_delegate.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_dispatcher_unittest.cc [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_targeter.cc [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_targeter.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/event_targeter_delegate.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/test_utils.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/window_manager_state.cc [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/window_manager_state.h [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/window_manager_state_unittest.cc [modify] https://crrev.com/4cd9767ab7c89145bbec6b343ae701c83bf42e9d/services/ui/ws/window_server.cc
,
Jun 8 2017
,
Aug 15 2017
,
Aug 15 2017
,
Aug 15 2017
,
Aug 15 2017
,
Sep 19 2017
The code to do async targeting has landed, and we run the window-server tests with that flag turned on. That's what this bug was for. So I am marking this as fixed.
,
Jan 22 2018
,
Jan 23 2018
,
Feb 26 2018
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by sadrul@chromium.org
, Apr 12 2017