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

Issue 710016 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocked on:
issue 752380

Blocking:
issue 672311
issue 731255



Sign in to add a comment

Make event-targeting asynchronous in window server

Project Member Reported by sadrul@chromium.org, Apr 10 2017

Issue description

To 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
 

Comment 1 by sadrul@chromium.org, Apr 12 2017

Blocking: 672311
Cc: moshayedi@chromium.org
Labels: -Pri-3 Pri-2
Owner: riajiang@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Comment 4 by sky@chromium.org, Jun 8 2017

Blocking: 731255

Comment 5 by varkha@chromium.org, Aug 15 2017

Labels: event-targeting

Comment 6 by varkha@chromium.org, Aug 15 2017

Blockedon: 750755

Comment 7 by varkha@chromium.org, Aug 15 2017

Blockedon: 752380
Blockedon: -750755

Comment 9 by sadrul@chromium.org, Sep 19 2017

Status: Fixed (was: Assigned)
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.

Comment 10 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Comment 11 by dchan@chromium.org, Jan 23 2018

Status: Fixed (was: Archived)
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment