Make HitTestQuery::TransformLocationForTarget use ancestor based optimization under mash |
||||
Issue description
Under mash (single process or mutli),
e.g. in
content_browsertest
--enable-features=SingleProcessMash
--override-use-software-gl-for-tests
--gtest_filter=SitePerProcessHitTestBrowserTest.SurfaceHitTestTest/1
The hit test data is like the following:
Root -> ClientRoot -> RWHVAura -> RWHVChildFrame.
However, the ClietRoot frame sink id of the hosting window created in Window Service [1]. Browser does not know anything about it and could not include it in target_ancestor list. TransformLocationForTarget fails.
For correctness, we could use GetTransformToTarget when Window Service is used. This bug is to track the work to bring back the optimization for WS.
[1] https://cs.chromium.org/chromium/src/services/ws/window_tree.cc?rcl=3615223f2b387309539d8bbc287b4c52a9c5f3fa&l=1440
,
Oct 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5cb30fcac9f26c0126cf5e7e1ff224ec94d98886 commit 5cb30fcac9f26c0126cf5e7e1ff224ec94d98886 Author: Xiyuan Xia <xiyuan@chromium.org> Date: Fri Oct 19 22:01:03 2018 ws: HitTestQuery uses GetTransformToTarget HitTestQuery uses GetTransformToTarget when Window Service is in use because there is a ClientRoot frame sink id in hit test data that the browser process does not know thus could not put it in |target_ancestors| to go the optimized transform code path. Use GetTransformToTarget to correctly transform location with Window Service. Also remove the ClientRoot frame sink id from the hit test data used in a bunch of OOPIF tests that use a direct index into hit test data. Bug: 884360 , 895029 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel Change-Id: I0943e7719e7fb418eaa2304765376b31065eea07 Reviewed-on: https://chromium-review.googlesource.com/c/1281167 Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Ken Buchanan <kenrb@chromium.org> Commit-Queue: Xiyuan Xia <xiyuan@chromium.org> Cr-Commit-Position: refs/heads/master@{#601312} [modify] https://crrev.com/5cb30fcac9f26c0126cf5e7e1ff224ec94d98886/components/viz/host/hit_test/hit_test_query.cc [modify] https://crrev.com/5cb30fcac9f26c0126cf5e7e1ff224ec94d98886/content/browser/renderer_host/render_widget_host_view_base.cc [modify] https://crrev.com/5cb30fcac9f26c0126cf5e7e1ff224ec94d98886/content/browser/site_per_process_hit_test_browsertest.cc [modify] https://crrev.com/5cb30fcac9f26c0126cf5e7e1ff224ec94d98886/testing/buildbot/filters/chromeos.single_process_mash.content_browsertests.filter
,
Nov 5
,
Nov 14
The SitePerProcessHitTestBrowserTest tests now pass, so I'm retargetting to multi-process mash. It's unclear if there is anything to do here. Xiyuan, is there anything that needs to be done?
,
Nov 26
It is left open to keep track of bringing back the ancestor based optimization for mash. Fix in #3 always uses GetTransformToTarget which does full tree traversal and is a bit more expensive than just following the ancestor chain.
,
Dec 18
Update title to better reflect what needs to be done for this issue. riajiang@, could you own this, or help to find an owner? Thanks. |
||||
►
Sign in to add a comment |
||||
Comment 1 by xiy...@chromium.org
, Oct 12