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

Issue 732400 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug


Sign in to add a comment

HitTest host library

Project Member Reported by rjkroege@chromium.org, Jun 12 2017

Issue description

Implement a HitTest client library that can use the viz hittest component to determine, for each x,y on the screen, which frame sink should receive the event.

 
Labels: event-targeting
Are we filing separate bugs for refactoring content and mus-ws to use this client library?
Blockedon: 746470
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 22 2017

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

commit 537141c4ede41728e1cf026f2967f0838f1e51de
Author: riajiang <riajiang@chromium.org>
Date: Sat Jul 22 04:29:04 2017

Add viz-host HitTestQuery.

HitTestQuery finds the hit test target, for a given location, in the
AggregatedHitTestRegion list received from HitTestAggregator.

BUG=732400
TEST=viz_unittests

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

[modify] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/common/hit_test/aggregated_hit_test_region.h
[modify] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/BUILD.gn
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/BUILD.gn
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/DEPS
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/OWNERS
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/hit_test_query.cc
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/hit_test_query.h
[add] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/host/hit_test/hit_test_query_unittest.cc
[modify] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/service/BUILD.gn
[modify] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/service/hit_test/DEPS
[modify] https://crrev.com/537141c4ede41728e1cf026f2967f0838f1e51de/components/viz/service/hit_test/hit_test_aggregator_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 24 2017

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

commit 7fbcf7f1f5034f8ab8c5245c50d64d7dcda990c3
Author: Ria Jiang <riajiang@chromium.org>
Date: Mon Jul 24 19:40:33 2017

Update HitTestQueryTest and HitTestAggregatorTest.

Follow-up CL of https://codereview.chromium.org/2933493003/ to address
varkha@'s comments:

On 2017/07/22 04:31:45, varkha wrote:
> I'd make the class data private with protected getters and
> DISALLOW_COPY_AND_ASSIGN.

Done.

On 2017/07/22 04:31:46, varkha wrote:
> It looks like the order has changed. Would it be good thing to change
> that to match what the macro expects now to have a better formatted
> output for failing case?

Done.

Bug: 732400
Test: viz_unittests
Change-Id: Ic2ff77cb21907bd0419803f82fbd358107e0d6ef
Reviewed-on: https://chromium-review.googlesource.com/583572
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Valery Arkhangorodsky <varkha@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489049}
[modify] https://crrev.com/7fbcf7f1f5034f8ab8c5245c50d64d7dcda990c3/components/viz/host/hit_test/hit_test_query_unittest.cc
[modify] https://crrev.com/7fbcf7f1f5034f8ab8c5245c50d64d7dcda990c3/components/viz/service/hit_test/hit_test_aggregator_unittest.cc

Comment 6 by sadrul@chromium.org, Jul 27 2017

Summary: HitTest host library (was: HitTest client library)
Blocking: 750755
Blocking: 752380
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 5 2017

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

commit 4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc
Author: Ria Jiang <riajiang@chromium.org>
Date: Sat Aug 05 03:02:23 2017

Use ScopedSharedBufferHandle between hit test service and host.

1. Change to use ScopedSharedBufferHandle and ScopedSharedBufferMapping
for the AggregatedHitTestRegion list in HitTestQuery.

2. Add OnSharedMemoryHandlesReceived to FrameSinkManagerClient interface
for sending ScopedSharedBufferHandle from FrameSinkManagerImpl to its
FrameSinkManagerClient (WindowServer in this case).

3. Add HitTestAggregatorDelegate for HitTestAggregator to talk back to
GpuRootCompositorFrameSink.

4. The list of HitTestQuery is now created and owned by WindowServer
when Display first becomes ready, each associated with FrameSinkId.

5. Update HitTestQueryTest and HitTestAggregatorTest to test for
ScopedSharedBufferHandle. Add WindowServerHitTestTest (only tests 
HitTestQuery creation right now).

Bug: 732400
Test: viz_unittests services_unittests
Change-Id: I6187550401b8eef473044a4aa4bb422296f415a4
Reviewed-on: https://chromium-review.googlesource.com/592697
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492222}
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/common/hit_test/aggregated_hit_test_region.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/DEPS
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/hit_test/hit_test_query.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/hit_test/hit_test_query.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/hit_test/hit_test_query_unittest.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/host_frame_sink_manager.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/host/host_frame_sink_manager.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/BUILD.gn
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/frame_sinks/frame_sink_manager_impl.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/frame_sinks/frame_sink_manager_impl.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/hit_test/DEPS
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/hit_test/hit_test_aggregator.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/hit_test/hit_test_aggregator.h
[add] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/hit_test/hit_test_aggregator_delegate.h
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/components/viz/service/hit_test/hit_test_aggregator_unittest.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/ui/ws/BUILD.gn
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/ui/ws/event_targeter.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/ui/ws/window_server.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/ui/ws/window_server.h
[add] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/ui/ws/window_server_hit_test_unittest.cc
[modify] https://crrev.com/4c1ddb35a13ddddb8e62f9baf81579e706b2f8dc/services/viz/compositing/privileged/interfaces/frame_sink_manager.mojom

Blockedon: 732402
Project Member

Comment 11 by bugdroid1@chromium.org, Sep 7 2017

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

commit f68633d29a49abd7fdb2bfb50e4706b580cc310c
Author: Ria Jiang <riajiang@chromium.org>
Date: Thu Sep 07 15:19:53 2017

Decide to use mouse/touch region based on event type in HitTestQuery.

One hit-test region can have different rects for mouse and touch. Pass
the event type from mus-ws to HitTestQuery and use the corresponding
rect (kHitTestMouse or kHitTestTouch) for that event.

Bug: 732400
Test: viz_unittests
Change-Id: Ifea177acb10bbbee7e4c2c19788104e6cb2421c4
Reviewed-on: https://chromium-review.googlesource.com/651131
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500305}
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/components/viz/host/hit_test/hit_test_query.cc
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/components/viz/host/hit_test/hit_test_query.h
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/components/viz/host/hit_test/hit_test_query_unittest.cc
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/services/ui/ws/event_targeter.cc
[modify] https://crrev.com/f68633d29a49abd7fdb2bfb50e4706b580cc310c/services/ui/ws/window_finder.h

Blockedon: 788249
Components: -Internals>MUS Internals>Services>WindowService
Blockedon: 816746
Blockedon: 834036
Labels: -Proj-Mustash-Mus-WS
Deprecating label Proj-Mustash-Mus-WS in favor of Components.
Labels: -Proj-Mustash Proj-Mash-MultiProcess
Labels: -Proj-Mustash-Mus-GPU
Cleaning up old Proj-Mustash labels.

Sign in to add a comment