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.
Are we filing separate bugs for refactoring content and mus-ws to use this client library?
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
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
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
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
Deprecating label Proj-Mustash-Mus-WS in favor of Components.
Cleaning up old Proj-Mustash labels.
Comment 1 by rjkroege@chromium.org
, Jun 12 2017