New issue
Advanced search Search tips

Issue 796605 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 27
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 760320



Sign in to add a comment

RenderWidgetHostInputEventRouterTest.DoNotChangeTargetViewDuringTouchScrollGesture fails in Viz

Project Member Reported by jonr...@chromium.org, Dec 20 2017

Issue description

The content_unittests RenderWidgetHostInputEventRouterTest.DoNotChangeTargetViewDuringTouchScrollGesture currently fails when running with --enable-viz

With the following error:

0 0x000004be308c base::debug::StackTrace::StackTrace()
#1 0x000004be2c01 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f5db0358330 <unknown>
#3 0x000003ed0d3f content::RenderWidgetHostInputEventRouter::FindEventTarget()
#4 0x000003ed2cf0 content::RenderWidgetHostInputEventRouter::RouteTouchEvent()
#5 0x000001ece90f content::RenderWidgetHostInputEventRouterTest_DoNotChangeTargetViewDuringTouchScrollGesture_Test::TestBody()
#6 0x0000028bb426 testing::Test::Run()
#7 0x0000028bbe40 testing::TestInfo::Run()
#8 0x0000028bc327 testing::TestCase::Run()
#9 0x0000028c29c7 testing::internal::UnitTestImpl::RunAllTests()
#10 0x0000028c2617 testing::UnitTest::Run()
#11 0x000004240192 base::TestSuite::Run()
#12 0x0000042487d7 base::(anonymous namespace)::LaunchUnitTestsInternal()
#13 0x00000424864b base::LaunchUnitTests()
#14 0x000002512576 main
#15 0x7f5dab816f45 __libc_start_main
#16 0x0000014b202a _start

The first run of this appeared in: https://ci.chromium.org/buildbot/chromium.fyi/Linux%20Viz/278

and was introduced by: https://chromium.googlesource.com/chromium/src/+/f1677be12bc5bd2f1445fb3fd82ce3983b677cf9


kenrb@ could you please take a look?
 
Cc: riajiang@chromium.org
+riajiang@

This is another of the hit testing failures which we discussed during triage today.
Cc: rjkroege@chromium.org sadrul@chromium.org

Comment 3 by danakj@chromium.org, May 16 2018

Still failing

% rr ctut --enable-features=VizDisplayCompositor --gtest_filter=RenderWidgetHostInputEventRouterTest.DoNotChangeTargetViewDuringTouchScrollGesture
ninja: Entering directory `out_desktop/Release'
[4/4] LINK ./content_unittests
IMPORTANT DEBUGGING NOTE: batches of tests are run inside their
own process. For debugging a test inside a debugger, use the
--gtest_filter=<your_test_name> flag along with
--single-process-tests.
Using sharding settings from environment. This is shard 0/1
Using 1 parallel jobs.
Note: Google Test filter = RenderWidgetHostInputEventRouterTest.DoNotChangeTargetViewDuringTouchScrollGesture
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from RenderWidgetHostInputEventRouterTest
[ RUN      ] RenderWidgetHostInputEventRouterTest.DoNotChangeTargetViewDuringTouchScrollGesture
[151012:151012:0516/135020.295237:1390620588924:FATAL:render_widget_host_input_event_router.cc(50)] Check failed: frame_sink_id.is_valid(). 
#0 0x7ff56941fa2c base::debug::StackTrace::StackTrace()
#1 0x7ff569360a2b logging::LogMessage::~LogMessage()
#2 0x7ff5676d1d8f content::RenderWidgetHostInputEventRouter::FindViewAtLocation()
#3 0x7ff5676d5e80 content::RenderWidgetHostInputEventRouter::FindTargetSynchronously()
#4 0x7ff5676d5fd2 content::RenderWidgetHostInputEventRouter::FindTargetSynchronously()
#5 0x7ff5676e579b content::RenderWidgetTargeter::FindTargetAndDispatch()
#6 0x00000106f790 content::RenderWidgetHostInputEventRouterTest_DoNotChangeTargetViewDuringTouchScrollGesture_Test::TestBody()
#7 0x000001975aa2 testing::Test::Run()
#8 0x000001976570 testing::TestInfo::Run()
#9 0x000001976a77 testing::TestCase::Run()
#10 0x000001982487 testing::internal::UnitTestImpl::RunAllTests()
#11 0x00000198200d testing::UnitTest::Run()
#12 0x000001aa9ea1 base::TestSuite::Run()
#13 0x000001ab1df0 base::(anonymous namespace)::LaunchUnitTestsInternal()
#14 0x000001ab1c40 base::LaunchUnitTests()
#15 0x000001871266 main
#16 0x7ff55f5422b1 __libc_start_main
#17 0x00000067202a _start


Reproduced today ahead of triage
Labels: -Pri-3 Pri-1
Hey Ken,

Could you take a look at this?
Cc: kenrb@chromium.org
Owner: jonr...@chromium.org
So the issue here is that RenderWidgetHostInputEventRouter::FindViewAtLocation uses a completely different method for determining the target while in Viz mode.

This test has some heavy overrides of the classic hit testing path, to force what target is used when. With these the test never actually set sizes, or correct FrameSinkIds, on the views in use.

I'm working on a patch that lets the test also mock out the HitTestQuery data that matches what it was doing for classic mode. Thus allowing the Viz path to work.
Status: Started (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 27

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

commit 7751fadb5e97f540dd822df3f87aad61ad7b6dd7
Author: Jonathan Ross <jonross@chromium.org>
Date: Fri Jul 27 18:39:39 2018

Mock Viz Hit Testing in RenderWidgetHostInputEventRouterTest

RenderWidgetHostInputEventRouterTest has some heavy overrides of the classic hit testing path, to force what target is used when. With these the test never actually set sizes, or correct FrameSinkIds, on the views in use.

However in Viz RenderWidgetHostInputEventRouter::FindViewAtLocation uses a
completely different method for determining targets while in Viz Hit Testing
Mode.

This change updates the test to als provide mock hit testing data.

A test wrapper HostFrameSinkManagerTestApi was added to allow for the setting
of hit testing data while in unittests. Or in testing where Viz is not actually
initialized.

TEST=RenderWidgetHostInputEventRouterTest

Bug:  796605 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I66c4322f70fdd8c5be07c3560110519153370cff
Reviewed-on: https://chromium-review.googlesource.com/1145773
Commit-Queue: Jonathan Ross <jonross@chromium.org>
Reviewed-by: Ria Jiang <riajiang@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578723}
[modify] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/components/viz/host/host_frame_sink_manager.h
[modify] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/components/viz/test/BUILD.gn
[add] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/components/viz/test/host_frame_sink_manager_test_api.cc
[add] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/components/viz/test/host_frame_sink_manager_test_api.h
[modify] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/content/browser/renderer_host/render_widget_host_input_event_router_unittest.cc
[modify] https://crrev.com/7751fadb5e97f540dd822df3f87aad61ad7b6dd7/testing/buildbot/filters/viz.content_unittests.filter

Status: Fixed (was: Started)

Sign in to add a comment