Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(470)

Unified Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 1642093002: Purge the ScrollBlocksOn code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android build failures Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest_scroll.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_impl_unittest.cc
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index d6073c393c44981c200ee5879a6f18f4927b152b..49c710374b43ebc917a2b6498e6996beb845bcc3 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -719,17 +719,8 @@ TEST_F(LayerTreeHostImplTest, ScrollBlocksOnWheelEventHandlers) {
// With registered event handlers, wheel scrolls don't necessarily
// have to go to the main thread.
root->SetHaveWheelEventHandlers(true);
- InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
- BeginState(gfx::Point()).get(), InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
- host_impl_->ScrollEnd(EndState().get());
-
- // But typically the scroll-blocks-on mode will require them to.
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_WHEEL_EVENT |
- SCROLL_BLOCKS_ON_START_TOUCH);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
+ InputHandler::ScrollStatus status =
+ host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
InputHandler::WHEEL);
EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
@@ -774,9 +765,6 @@ TEST_F(LayerTreeHostImplTest, ScrollBlocksOnTouchEventHandlers) {
// Touch handler regions determine whether touch events block scroll.
root->SetTouchEventHandlerRegion(gfx::Rect(0, 0, 100, 100));
- EXPECT_FALSE(host_impl_->DoTouchEventsBlockScrollAt(gfx::Point(10, 10)));
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_START_TOUCH |
- SCROLL_BLOCKS_ON_WHEEL_EVENT);
EXPECT_TRUE(host_impl_->DoTouchEventsBlockScrollAt(gfx::Point(10, 10)));
// But they don't influence the actual handling of the scroll gestures.
@@ -787,176 +775,13 @@ TEST_F(LayerTreeHostImplTest, ScrollBlocksOnTouchEventHandlers) {
status.main_thread_scrolling_reasons);
host_impl_->ScrollEnd(EndState().get());
- // It's the union of scroll-blocks-on mode bits across all layers in the
- // scroll paret chain that matters.
EXPECT_TRUE(host_impl_->DoTouchEventsBlockScrollAt(gfx::Point(10, 30)));
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_NONE);
+ root->SetTouchEventHandlerRegion(gfx::Rect());
EXPECT_FALSE(host_impl_->DoTouchEventsBlockScrollAt(gfx::Point(10, 30)));
- child->SetScrollBlocksOn(SCROLL_BLOCKS_ON_START_TOUCH);
+ child->SetTouchEventHandlerRegion(gfx::Rect(0, 0, 50, 50));
EXPECT_TRUE(host_impl_->DoTouchEventsBlockScrollAt(gfx::Point(10, 30)));
}
-TEST_F(LayerTreeHostImplTest, ScrollBlocksOnScrollEventHandlers) {
- SetupScrollAndContentsLayers(gfx::Size(100, 100));
- host_impl_->SetViewportSize(gfx::Size(50, 50));
- DrawFrame();
- LayerImpl* root = host_impl_->active_tree()->root_layer();
-
- // With registered scroll handlers, scrolls don't generally have to go
- // to the main thread.
- root->SetHaveScrollEventHandlers(true);
- InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
- BeginState(gfx::Point()).get(), InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
-
- // Even the default scroll blocks on mode doesn't require this.
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_WHEEL_EVENT |
- SCROLL_BLOCKS_ON_START_TOUCH);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
-
- // But the page can opt in to blocking on scroll event handlers.
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_SCROLL_EVENT);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-
- // GESTURE and WHEEL scrolls behave identically in this regard.
- status = host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
- InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-
- // And if the handlers go away, scrolls can again be processed on impl
- // (despite the scroll-blocks-on mode).
- root->SetHaveScrollEventHandlers(false);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point()).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
-}
-
-TEST_F(LayerTreeHostImplTest, ScrollBlocksOnLayerTopology) {
- host_impl_->SetViewportSize(gfx::Size(50, 50));
-
- // Create a normal scrollable root layer
- LayerImpl* root_scroll = SetupScrollAndContentsLayers(gfx::Size(100, 100));
- LayerImpl* root_child = root_scroll->children()[0].get();
- LayerImpl* root = host_impl_->active_tree()->root_layer();
- DrawFrame();
-
- // Create two child scrollable layers
- LayerImpl* child1 = 0;
- {
- scoped_ptr<LayerImpl> scrollable_child_clip_1 =
- LayerImpl::Create(host_impl_->active_tree(), 6);
- scoped_ptr<LayerImpl> scrollable_child_1 = CreateScrollableLayer(
- 7, gfx::Size(10, 10), scrollable_child_clip_1.get());
- child1 = scrollable_child_1.get();
- scrollable_child_1->SetPosition(gfx::PointF(5.f, 5.f));
- scrollable_child_1->SetHaveWheelEventHandlers(true);
- scrollable_child_1->SetHaveScrollEventHandlers(true);
- scrollable_child_clip_1->AddChild(std::move(scrollable_child_1));
- root_child->AddChild(std::move(scrollable_child_clip_1));
- RebuildPropertyTrees();
- }
-
- LayerImpl* child2 = 0;
- {
- scoped_ptr<LayerImpl> scrollable_child_clip_2 =
- LayerImpl::Create(host_impl_->active_tree(), 8);
- scoped_ptr<LayerImpl> scrollable_child_2 = CreateScrollableLayer(
- 9, gfx::Size(10, 10), scrollable_child_clip_2.get());
- child2 = scrollable_child_2.get();
- scrollable_child_2->SetPosition(gfx::PointF(5.f, 20.f));
- scrollable_child_2->SetHaveWheelEventHandlers(true);
- scrollable_child_2->SetHaveScrollEventHandlers(true);
- scrollable_child_clip_2->AddChild(std::move(scrollable_child_2));
- root_child->AddChild(std::move(scrollable_child_clip_2));
- RebuildPropertyTrees();
- }
-
- InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
- BeginState(gfx::Point(10, 10)).get(), InputHandler::GESTURE);
- // Scroll-blocks-on on a layer affects scrolls that hit that layer.
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
- host_impl_->ScrollEnd(EndState().get());
-
- child1->SetScrollBlocksOn(SCROLL_BLOCKS_ON_SCROLL_EVENT);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 10)).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-
- // But not those that hit only other layers.
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
- host_impl_->ScrollEnd(EndState().get());
-
- // It's the union of bits set across the scroll ancestor chain that matters.
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
- root->SetScrollBlocksOn(SCROLL_BLOCKS_ON_WHEEL_EVENT);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain,
- status.main_thread_scrolling_reasons);
-
- host_impl_->ScrollEnd(EndState().get());
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-
- child2->SetScrollBlocksOn(SCROLL_BLOCKS_ON_SCROLL_EVENT);
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::WHEEL);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-
- status = host_impl_->ScrollBegin(BeginState(gfx::Point(10, 25)).get(),
- InputHandler::GESTURE);
- EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, status.thread);
- EXPECT_EQ(MainThreadScrollingReason::kEventHandlers,
- status.main_thread_scrolling_reasons);
-}
-
TEST_F(LayerTreeHostImplTest, FlingOnlyWhenScrollingTouchscreen) {
SetupScrollAndContentsLayers(gfx::Size(100, 100));
host_impl_->SetViewportSize(gfx::Size(50, 50));
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest_scroll.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698