| Index: third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp
|
| diff --git a/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp b/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp
|
| index a2194782061ed57c8b036b8c1d5418d3dfd5a2c3..df56ca0b2bba2114ae7708c177e0e01e287094eb 100644
|
| --- a/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp
|
| +++ b/third_party/WebKit/Source/web/tests/ScrollingCoordinatorTest.cpp
|
| @@ -849,4 +849,38 @@ TEST_F(ScrollingCoordinatorTest, CustomScrollbarShouldTriggerMainThreadScroll) {
|
| MainThreadScrollingReason::kCustomScrollbarScrolling);
|
| }
|
|
|
| +TEST_F(ScrollingCoordinatorTest, MainThreadScrollingReasonDueToLayoutObject) {
|
| + registerMockedHttpURLLoad("two_transparent_scrollable_area.html");
|
| + navigateTo(m_baseURL + "two_transparent_scrollable_area.html");
|
| + forceFullCompositingUpdate();
|
| +
|
| + Page* page = frame()->page();
|
| + ASSERT_TRUE(page->scrollingCoordinator());
|
| + ASSERT_TRUE(page->scrollingCoordinator()->mainThreadScrollingReasons() &
|
| + MainThreadScrollingReason::kHasOpacity);
|
| +
|
| + // Remove opacity from one of the layouts.
|
| + // Still need to scroll on main thread.
|
| + Document* document = frame()->document();
|
| + Element* container = document->getElementById("scroller1");
|
| + DCHECK(container);
|
| +
|
| + container->removeAttribute("class");
|
| + forceFullCompositingUpdate();
|
| +
|
| + ASSERT_TRUE(page->scrollingCoordinator()->mainThreadScrollingReasons() &
|
| + MainThreadScrollingReason::kHasOpacity);
|
| +
|
| + // Remove opacity from the other layout would lead to
|
| + // scroll on impl.
|
| + container = document->getElementById("scroller2");
|
| + DCHECK(container);
|
| +
|
| + container->removeAttribute("class");
|
| + forceFullCompositingUpdate();
|
| +
|
| + ASSERT_FALSE(page->scrollingCoordinator()->mainThreadScrollingReasons() &
|
| + MainThreadScrollingReason::kHasOpacity);
|
| +}
|
| +
|
| } // namespace blink
|
|
|