OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/threading/thread_task_runner_handle.h" | 9 #include "base/threading/thread_task_runner_handle.h" |
10 #include "cc/animation/animation_host.h" | 10 #include "cc/animation/animation_host.h" |
(...skipping 1646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1657 | 1657 |
1658 TEST_F(LayerTest, TestSettingMainThreadScrollingReason) { | 1658 TEST_F(LayerTest, TestSettingMainThreadScrollingReason) { |
1659 scoped_refptr<Layer> test_layer = Layer::Create(); | 1659 scoped_refptr<Layer> test_layer = Layer::Create(); |
1660 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_->SetRootLayer(test_layer)); | 1660 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_->SetRootLayer(test_layer)); |
1661 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsDrawable(true)); | 1661 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsDrawable(true)); |
1662 | 1662 |
1663 // sanity check of initial test condition | 1663 // sanity check of initial test condition |
1664 EXPECT_FALSE(test_layer->NeedsDisplayForTesting()); | 1664 EXPECT_FALSE(test_layer->NeedsDisplayForTesting()); |
1665 | 1665 |
1666 uint32_t reasons = 0, reasons_to_clear = 0, reasons_after_clearing = 0; | 1666 uint32_t reasons = 0, reasons_to_clear = 0, reasons_after_clearing = 0; |
1667 reasons |= MainThreadScrollingReason::kEventHandlers; | 1667 reasons |= MainThreadScrollingReason::kNonFastScrollableRegion; |
1668 reasons |= MainThreadScrollingReason::kContinuingMainThreadScroll; | 1668 reasons |= MainThreadScrollingReason::kContinuingMainThreadScroll; |
1669 reasons |= MainThreadScrollingReason::kScrollbarScrolling; | 1669 reasons |= MainThreadScrollingReason::kScrollbarScrolling; |
1670 | 1670 |
1671 reasons_to_clear |= MainThreadScrollingReason::kContinuingMainThreadScroll; | 1671 reasons_to_clear |= MainThreadScrollingReason::kContinuingMainThreadScroll; |
1672 reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled; | 1672 reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled; |
1673 | 1673 |
1674 reasons_after_clearing |= MainThreadScrollingReason::kEventHandlers; | 1674 reasons_after_clearing |= MainThreadScrollingReason::kNonFastScrollableRegion; |
1675 reasons_after_clearing |= MainThreadScrollingReason::kScrollbarScrolling; | 1675 reasons_after_clearing |= MainThreadScrollingReason::kScrollbarScrolling; |
1676 | 1676 |
1677 // Check that the reasons are added correctly. | 1677 // Check that the reasons are added correctly. |
1678 EXPECT_SET_NEEDS_COMMIT(1, test_layer->AddMainThreadScrollingReasons( | 1678 EXPECT_SET_NEEDS_COMMIT( |
1679 MainThreadScrollingReason::kEventHandlers)); | 1679 1, test_layer->AddMainThreadScrollingReasons( |
| 1680 MainThreadScrollingReason::kNonFastScrollableRegion)); |
1680 EXPECT_SET_NEEDS_COMMIT( | 1681 EXPECT_SET_NEEDS_COMMIT( |
1681 1, test_layer->AddMainThreadScrollingReasons( | 1682 1, test_layer->AddMainThreadScrollingReasons( |
1682 MainThreadScrollingReason::kContinuingMainThreadScroll)); | 1683 MainThreadScrollingReason::kContinuingMainThreadScroll)); |
1683 EXPECT_SET_NEEDS_COMMIT(1, | 1684 EXPECT_SET_NEEDS_COMMIT(1, |
1684 test_layer->AddMainThreadScrollingReasons( | 1685 test_layer->AddMainThreadScrollingReasons( |
1685 MainThreadScrollingReason::kScrollbarScrolling)); | 1686 MainThreadScrollingReason::kScrollbarScrolling)); |
1686 EXPECT_EQ(reasons, test_layer->main_thread_scrolling_reasons()); | 1687 EXPECT_EQ(reasons, test_layer->main_thread_scrolling_reasons()); |
1687 | 1688 |
1688 // Check that the reasons can be selectively cleared. | 1689 // Check that the reasons can be selectively cleared. |
1689 EXPECT_SET_NEEDS_COMMIT( | 1690 EXPECT_SET_NEEDS_COMMIT( |
1690 1, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear)); | 1691 1, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear)); |
1691 EXPECT_EQ(reasons_after_clearing, | 1692 EXPECT_EQ(reasons_after_clearing, |
1692 test_layer->main_thread_scrolling_reasons()); | 1693 test_layer->main_thread_scrolling_reasons()); |
1693 | 1694 |
1694 // Check that clearing non-set reasons doesn't set needs commit. | 1695 // Check that clearing non-set reasons doesn't set needs commit. |
1695 reasons_to_clear = 0; | 1696 reasons_to_clear = 0; |
1696 reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled; | 1697 reasons_to_clear |= MainThreadScrollingReason::kThreadedScrollingDisabled; |
1697 reasons_to_clear |= MainThreadScrollingReason::kNoScrollingLayer; | 1698 reasons_to_clear |= MainThreadScrollingReason::kNoScrollingLayer; |
1698 EXPECT_SET_NEEDS_COMMIT( | 1699 EXPECT_SET_NEEDS_COMMIT( |
1699 0, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear)); | 1700 0, test_layer->ClearMainThreadScrollingReasons(reasons_to_clear)); |
1700 EXPECT_EQ(reasons_after_clearing, | 1701 EXPECT_EQ(reasons_after_clearing, |
1701 test_layer->main_thread_scrolling_reasons()); | 1702 test_layer->main_thread_scrolling_reasons()); |
1702 | 1703 |
1703 // Check that adding an existing condition doesn't set needs commit. | 1704 // Check that adding an existing condition doesn't set needs commit. |
1704 EXPECT_SET_NEEDS_COMMIT(0, test_layer->AddMainThreadScrollingReasons( | 1705 EXPECT_SET_NEEDS_COMMIT( |
1705 MainThreadScrollingReason::kEventHandlers)); | 1706 0, test_layer->AddMainThreadScrollingReasons( |
| 1707 MainThreadScrollingReason::kNonFastScrollableRegion)); |
1706 } | 1708 } |
1707 | 1709 |
1708 TEST_F(LayerTest, CheckPropertyChangeCausesCorrectBehavior) { | 1710 TEST_F(LayerTest, CheckPropertyChangeCausesCorrectBehavior) { |
1709 scoped_refptr<Layer> test_layer = Layer::Create(); | 1711 scoped_refptr<Layer> test_layer = Layer::Create(); |
1710 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_->SetRootLayer(test_layer)); | 1712 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_->SetRootLayer(test_layer)); |
1711 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsDrawable(true)); | 1713 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsDrawable(true)); |
1712 | 1714 |
1713 scoped_refptr<Layer> dummy_layer1 = Layer::Create(); | 1715 scoped_refptr<Layer> dummy_layer1 = Layer::Create(); |
1714 scoped_refptr<Layer> dummy_layer2 = Layer::Create(); | 1716 scoped_refptr<Layer> dummy_layer2 = Layer::Create(); |
1715 | 1717 |
(...skipping 11 matching lines...) Expand all Loading... |
1727 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendMode(SkXfermode::kHue_Mode)); | 1729 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendMode(SkXfermode::kHue_Mode)); |
1728 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsRootForIsolatedGroup(true)); | 1730 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetIsRootForIsolatedGroup(true)); |
1729 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetContentsOpaque(true)); | 1731 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetContentsOpaque(true)); |
1730 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPosition(gfx::PointF(4.f, 9.f))); | 1732 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPosition(gfx::PointF(4.f, 9.f))); |
1731 // We can use any layer pointer here since we aren't syncing for real. | 1733 // We can use any layer pointer here since we aren't syncing for real. |
1732 EXPECT_SET_NEEDS_COMMIT(1, | 1734 EXPECT_SET_NEEDS_COMMIT(1, |
1733 test_layer->SetScrollClipLayerId(test_layer->id())); | 1735 test_layer->SetScrollClipLayerId(test_layer->id())); |
1734 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUserScrollable(true, false)); | 1736 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUserScrollable(true, false)); |
1735 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetScrollOffset( | 1737 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetScrollOffset( |
1736 gfx::ScrollOffset(10, 10))); | 1738 gfx::ScrollOffset(10, 10))); |
1737 EXPECT_SET_NEEDS_COMMIT(1, test_layer->AddMainThreadScrollingReasons( | 1739 EXPECT_SET_NEEDS_COMMIT( |
1738 MainThreadScrollingReason::kEventHandlers)); | 1740 1, test_layer->AddMainThreadScrollingReasons( |
| 1741 MainThreadScrollingReason::kNonFastScrollableRegion)); |
1739 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNonFastScrollableRegion( | 1742 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNonFastScrollableRegion( |
1740 Region(gfx::Rect(1, 1, 2, 2)))); | 1743 Region(gfx::Rect(1, 1, 2, 2)))); |
1741 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetTransform( | 1744 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetTransform( |
1742 gfx::Transform(0.0, 0.0, 0.0, 0.0, 0.0, 0.0))); | 1745 gfx::Transform(0.0, 0.0, 0.0, 0.0, 0.0, 0.0))); |
1743 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetDoubleSided(false)); | 1746 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetDoubleSided(false)); |
1744 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetTouchEventHandlerRegion( | 1747 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetTouchEventHandlerRegion( |
1745 gfx::Rect(10, 10))); | 1748 gfx::Rect(10, 10))); |
1746 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetForceRenderSurfaceForTesting(true)); | 1749 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetForceRenderSurfaceForTesting(true)); |
1747 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetHideLayerAndSubtree(true)); | 1750 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetHideLayerAndSubtree(true)); |
1748 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetElementId(ElementId(2, 0))); | 1751 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetElementId(ElementId(2, 0))); |
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2554 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties()); | 2557 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties()); |
2555 | 2558 |
2556 test_layer->PushPropertiesTo(impl_layer.get()); | 2559 test_layer->PushPropertiesTo(impl_layer.get()); |
2557 | 2560 |
2558 EXPECT_EQ(ElementId(2, 0), impl_layer->element_id()); | 2561 EXPECT_EQ(ElementId(2, 0), impl_layer->element_id()); |
2559 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties()); | 2562 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties()); |
2560 } | 2563 } |
2561 | 2564 |
2562 } // namespace | 2565 } // namespace |
2563 } // namespace cc | 2566 } // namespace cc |
OLD | NEW |