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

Reland "Fix ScrollNestedLocalNonFastScrollableDiv under ScrollUnification"

This is a reland of 42509254

Original change's description:
> 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/+/2585765
> Reviewed-by: Ken Buchanan <kenrb@chromium.org>
> Reviewed-by: David Bokan <bokan@chromium.org>
> Commit-Queue: Liviu Tinta <liviutinta@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#836593}

Bug: 1086625
Change-Id: I053f4eabd5bc62e0959274236919cd53293315ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2591088Reviewed-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@{#838246}
parent 8b6aef14
...@@ -903,6 +903,9 @@ IN_PROC_BROWSER_TEST_P(SitePerProcessInternalsHitTestBrowserTest, ...@@ -903,6 +903,9 @@ IN_PROC_BROWSER_TEST_P(SitePerProcessInternalsHitTestBrowserTest,
rwhv_root->OnScrollEvent(&scroll_event); rwhv_root->OnScrollEvent(&scroll_event);
ack_observer.Wait(); ack_observer.Wait();
// Wait until renderer's main thread is synced.
observer.Wait();
// Verify the div scrolled. // Verify the div scrolled.
double div_scroll_top = div_scroll_top_start; double div_scroll_top = div_scroll_top_start;
EXPECT_TRUE(ExecuteScriptAndExtractDouble( 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