| Index: cc/layers/layer_unittest.cc
|
| diff --git a/cc/layers/layer_unittest.cc b/cc/layers/layer_unittest.cc
|
| index afc6c359397f36004d90ecb1cd7390ba5b6116e6..a36a7bfd13768362ad351108a7b155c0cb1c7ec2 100644
|
| --- a/cc/layers/layer_unittest.cc
|
| +++ b/cc/layers/layer_unittest.cc
|
| @@ -928,6 +928,57 @@ TEST_F(LayerTest, CheckSetNeedsDisplayCausesCorrectBehavior) {
|
| EXPECT_TRUE(test_layer->NeedsDisplayForTesting());
|
| }
|
|
|
| +TEST_F(LayerTest, TestSettingMainThreadScrollingReason) {
|
| + scoped_refptr<Layer> test_layer = Layer::Create(layer_settings_);
|
| + EXPECT_SET_NEEDS_FULL_TREE_SYNC(1,
|
| + layer_tree_host_->SetRootLayer(test_layer));
|
| + EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsDrawable(true));
|
| +
|
| + // sanity check of initial test condition
|
| + EXPECT_FALSE(test_layer->NeedsDisplayForTesting());
|
| +
|
| + uint32_t reasons = 0, reasons_to_clear = 0, reasons_after_clearing = 0;
|
| + reasons |= MainThreadScrollingReason::kEventHandlers;
|
| + reasons |= MainThreadScrollingReason::kContinuingMainThreadScroll;
|
| + reasons |= MainThreadScrollingReason::kScrollbarScrolling;
|
| +
|
| + reasons_to_clear |= MainThreadScrollingReason::kContinuingMainThreadScroll;
|
| + reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled;
|
| +
|
| + reasons_after_clearing |= MainThreadScrollingReason::kEventHandlers;
|
| + reasons_after_clearing |= MainThreadScrollingReason::kScrollbarScrolling;
|
| +
|
| + // Check that the reasons are added correctly.
|
| + EXPECT_SET_NEEDS_COMMIT(1, test_layer->AddMainThreadScrollingReasons(
|
| + MainThreadScrollingReason::kEventHandlers));
|
| + EXPECT_SET_NEEDS_COMMIT(
|
| + 1, test_layer->AddMainThreadScrollingReasons(
|
| + MainThreadScrollingReason::kContinuingMainThreadScroll));
|
| + EXPECT_SET_NEEDS_COMMIT(1,
|
| + test_layer->AddMainThreadScrollingReasons(
|
| + MainThreadScrollingReason::kScrollbarScrolling));
|
| + EXPECT_EQ(reasons, test_layer->main_thread_scrolling_reasons());
|
| +
|
| + // Check that the reasons can be selectively cleared.
|
| + EXPECT_SET_NEEDS_COMMIT(
|
| + 1, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear));
|
| + EXPECT_EQ(reasons_after_clearing,
|
| + test_layer->main_thread_scrolling_reasons());
|
| +
|
| + // Check that clearing non-set reasons doesn't set needs commit.
|
| + reasons_to_clear = 0;
|
| + reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled;
|
| + reasons_to_clear |= MainThreadScrollingReason::kNoScrollingLayer;
|
| + EXPECT_SET_NEEDS_COMMIT(
|
| + 0, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear));
|
| + EXPECT_EQ(reasons_after_clearing,
|
| + test_layer->main_thread_scrolling_reasons());
|
| +
|
| + // Check that adding an existing condition doesn't set needs commit.
|
| + EXPECT_SET_NEEDS_COMMIT(0, test_layer->AddMainThreadScrollingReasons(
|
| + MainThreadScrollingReason::kEventHandlers));
|
| +}
|
| +
|
| TEST_F(LayerTest, CheckPropertyChangeCausesCorrectBehavior) {
|
| scoped_refptr<Layer> test_layer = Layer::Create(layer_settings_);
|
| EXPECT_SET_NEEDS_FULL_TREE_SYNC(
|
|
|