(more details here later after looking into *how* to refactor content)
We had a discussion about this at the hittest meeting minutes. fsamuel@ can you add a link to the doc here and assign this back to me
I sent Rob the picture reassigning back.
this refactoring does not block the window server case?
In particular: this bug is to refactor content/browser input routing code to use the HitTestQuery component.
Per discussion at meeting: kenrb is picking up.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c commit ae47550de0dae99d8f5a8f1bba33b94bcc1f399c Author: Ken Buchanan <kenrb@chromium.org> Date: Wed Nov 08 15:31:25 2017 Plumb HitTestRegionList through content to CompositorFrameSinkSupport This patch causes a HitTestRegionListPtr struct pointer (that is supplied by the renderer process via SubmitCompositorFrame) to the RenderWidgetHostImpl to be passed along to the CompositorFrameSinkSupport. When the renderer process starts generating hit test regions, the browser can use these instead of compositor Surfaces for determining the target of a given mouse or touch event. Viz service hit testing is currently only being developed for Aura platforms, so the plumbing is currently only through RenderWidgetHostViews that can be instantiated in Aura. Bug: 750755 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation Change-Id: Ic34d73cb2823978bb3473711d4e17d5ef70ac931 Reviewed-on: https://chromium-review.googlesource.com/682878 Commit-Queue: Ken Buchanan <kenrb@chromium.org> Reviewed-by: Nick Carter <nick@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Cr-Commit-Position: refs/heads/master@{#514835} [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/frame_host/render_widget_host_view_guest.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/frame_host/render_widget_host_view_guest.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/frame_host/render_widget_host_view_guest_unittest.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/browser_compositor_view_mac.mm [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/delegated_frame_host.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/delegated_frame_host.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_android.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_android.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_aura.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_aura.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_base.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_child_frame.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_child_frame.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_mac.h [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/browser/renderer_host/render_widget_host_view_mac.mm [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/test/test_render_view_host.cc [modify] https://crrev.com/ae47550de0dae99d8f5a8f1bba33b94bcc1f399c/content/test/test_render_view_host.h
This might need some tweaks once HitTestRegions are working but it is basically done.
I should add that remaining work will be on issue 780279.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da06f139b69c861b7d91108e77802dd39d9b3cf0 commit da06f139b69c861b7d91108e77802dd39d9b3cf0 Author: Ria Jiang <riajiang@chromium.org> Date: Wed Feb 07 22:18:21 2018 Convert event location to be in pixels before asking HitTestQuery. RenderWidgetHostInputEventRouter operates in DIP but HitTestQuery uses pixels. Convert event location to be in pixels before asking HitTestQuery for targeting and convert the transformed location back to DIP after receiving that from HTQ. Bug: 750755 Test: will add along with other browsertests (crbug/810121) Change-Id: I0561dd9a4ed73bb1c2ede019e9ee09aa33e1e08c Reviewed-on: https://chromium-review.googlesource.com/907340 Commit-Queue: Ria Jiang <riajiang@chromium.org> Reviewed-by: Ken Buchanan <kenrb@chromium.org> Cr-Commit-Position: refs/heads/master@{#535163} [modify] https://crrev.com/da06f139b69c861b7d91108e77802dd39d9b3cf0/content/browser/renderer_host/render_widget_host_input_event_router.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/79f58ed92b323c4ad28d8de645dcb94f2f7036b4 commit 79f58ed92b323c4ad28d8de645dcb94f2f7036b4 Author: Ria Jiang <riajiang@chromium.org> Date: Tue Apr 10 03:30:52 2018 Don't send events to another client. When the target we found is not in the tree of the client |root_view|, send the event to the |root_view| instead. Bug: 750755 Test: content_unittests content_browsertests https: //ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_rel_ng/38690 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel Change-Id: I8957c94fe543cc9f659497f781b723ad25e2fa51 Reviewed-on: https://chromium-review.googlesource.com/963857 Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: Ria Jiang <riajiang@chromium.org> Cr-Commit-Position: refs/heads/master@{#549408} [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/renderer_host/render_widget_host_input_event_router_unittest.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/renderer_host/render_widget_targeter.h [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/browser/site_per_process_hit_test_browsertest.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/public/test/browser_test_utils.cc [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/public/test/browser_test_utils.h [add] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/content/test/data/frame_tree/page_with_two_iframes.html [modify] https://crrev.com/79f58ed92b323c4ad28d8de645dcb94f2f7036b4/testing/buildbot/filters/viz.content_browsertests.filter
Comment 1 by rjkroege@chromium.org
, Aug 2 2017