| 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 |