Commit 42509254 authored by Liviu Tinta's avatar Liviu Tinta Committed by Chromium LUCI CQ

Fix ScrollNestedLocalNonFastScrollableDiv under ScrollUnification

With Scroll Unification, in LayerTreeImpl::DidUpdateScrollOffset there
are cases where a ScrollUpdate may be mutating a ScrollNode that:
- has a MainThreadScrollingReason - the main thread needs to repaint it
each time we scroll.
- it isn't composited

In this case, when ScrollNode is mutated we don't want to make a
corresponding change in the associated TransformNode. Instead, we want
to SetNeedsCommit so that the changed offset in the ScrollNode is
committed to the main thread, then blink regenerates its side of the
property trees and cc::Layers.

In this test, we hit the first case. In order for the test to pass we
need to wait for the main thread to sync.

Bug: 1086625
Change-Id: Icdc3eb5cc786ebdecd516f3cb0fd58d47077d6ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2585765Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Reviewed-by: default avatarDavid Bokan <bokan@chromium.org>
Commit-Queue: Liviu Tinta <liviutinta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#836593}
parent 73830cab
......@@ -885,8 +885,7 @@ IN_PROC_BROWSER_TEST_P(SitePerProcessInternalsHitTestBrowserTest,
// Wait until renderer's compositor thread is synced. Otherwise the non fast
// scrollable regions won't be set when the event arrives.
MainThreadFrameObserver observer(rwhv_nested->GetRenderWidgetHost());
observer.Wait();
RunUntilInputProcessed(rwhv_nested->GetRenderWidgetHost());
// Send a wheel to scroll the div.
gfx::Point location(point_f.x(), point_f.y());
......@@ -903,6 +902,9 @@ IN_PROC_BROWSER_TEST_P(SitePerProcessInternalsHitTestBrowserTest,
rwhv_root->OnScrollEvent(&scroll_event);
ack_observer.Wait();
// Wait until renderer's main thread is synced.
RunUntilInputProcessed(rwhv_nested->GetRenderWidgetHost());
// Verify the div scrolled.
double div_scroll_top = div_scroll_top_start;
EXPECT_TRUE(ExecuteScriptAndExtractDouble(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment