New issue
Advanced search Search tips

Issue 895029 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

Make HitTestQuery::TransformLocationForTarget use ancestor based optimization under mash

Project Member Reported by xiy...@chromium.org, Oct 12

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
 
Might be the cause of issue 879791

Comment 2 Deleted

Project Member

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

Labels: Pri-2
Cc: riajiang@chromium.org
Labels: -Proj-Mash-SingleProcess Proj-Mash-MultiProcess OS-Chrome
Owner: xiy...@chromium.org
Status: Assigned (was: Untriaged)
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?
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.
Cc: -riajiang@chromium.org xiy...@chromium.org
Owner: riajiang@chromium.org
Summary: Make HitTestQuery::TransformLocationForTarget use ancestor based optimization under mash (was: HitTestQuery::TransformLocationForTarget not working properly under mash)
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