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/trees/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 6530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6541 } | 6541 } |
6542 | 6542 |
6543 TEST_F(LayerTreeHostCommonTest, StickyPositionBottomInnerViewportDelta) { | 6543 TEST_F(LayerTreeHostCommonTest, StickyPositionBottomInnerViewportDelta) { |
6544 scoped_refptr<Layer> root = Layer::Create(); | 6544 scoped_refptr<Layer> root = Layer::Create(); |
6545 scoped_refptr<Layer> scroller = Layer::Create(); | 6545 scoped_refptr<Layer> scroller = Layer::Create(); |
6546 scoped_refptr<Layer> sticky_pos = Layer::Create(); | 6546 scoped_refptr<Layer> sticky_pos = Layer::Create(); |
6547 root->AddChild(scroller); | 6547 root->AddChild(scroller); |
6548 scroller->AddChild(sticky_pos); | 6548 scroller->AddChild(sticky_pos); |
6549 host()->SetRootLayer(root); | 6549 host()->SetRootLayer(root); |
6550 scroller->SetScrollClipLayerId(root->id()); | 6550 scroller->SetScrollClipLayerId(root->id()); |
6551 host()->RegisterViewportLayers(nullptr, root, root, nullptr, scroller, | 6551 LayerTreeHost::ViewportLayers viewport_layers; |
6552 nullptr); | 6552 viewport_layers.page_scale = root; |
| 6553 viewport_layers.inner_viewport_container = root; |
| 6554 viewport_layers.inner_viewport_scroll = scroller; |
| 6555 host()->RegisterViewportLayers(viewport_layers); |
6553 | 6556 |
6554 LayerStickyPositionConstraint sticky_position; | 6557 LayerStickyPositionConstraint sticky_position; |
6555 sticky_position.is_sticky = true; | 6558 sticky_position.is_sticky = true; |
6556 sticky_position.is_anchored_bottom = true; | 6559 sticky_position.is_anchored_bottom = true; |
6557 sticky_position.bottom_offset = 10.0f; | 6560 sticky_position.bottom_offset = 10.0f; |
6558 sticky_position.parent_relative_sticky_box_offset = gfx::Point(0, 70); | 6561 sticky_position.parent_relative_sticky_box_offset = gfx::Point(0, 70); |
6559 sticky_position.scroll_container_relative_sticky_box_rect = | 6562 sticky_position.scroll_container_relative_sticky_box_rect = |
6560 gfx::Rect(0, 70, 10, 10); | 6563 gfx::Rect(0, 70, 10, 10); |
6561 sticky_position.scroll_container_relative_containing_block_rect = | 6564 sticky_position.scroll_container_relative_containing_block_rect = |
6562 gfx::Rect(0, 60, 100, 100); | 6565 gfx::Rect(0, 60, 100, 100); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6615 scoped_refptr<Layer> outer_clip = Layer::Create(); | 6618 scoped_refptr<Layer> outer_clip = Layer::Create(); |
6616 scoped_refptr<Layer> outer_viewport = Layer::Create(); | 6619 scoped_refptr<Layer> outer_viewport = Layer::Create(); |
6617 scoped_refptr<Layer> sticky_pos = Layer::Create(); | 6620 scoped_refptr<Layer> sticky_pos = Layer::Create(); |
6618 root->AddChild(scroller); | 6621 root->AddChild(scroller); |
6619 scroller->AddChild(outer_clip); | 6622 scroller->AddChild(outer_clip); |
6620 outer_clip->AddChild(outer_viewport); | 6623 outer_clip->AddChild(outer_viewport); |
6621 outer_viewport->AddChild(sticky_pos); | 6624 outer_viewport->AddChild(sticky_pos); |
6622 host()->SetRootLayer(root); | 6625 host()->SetRootLayer(root); |
6623 scroller->SetScrollClipLayerId(root->id()); | 6626 scroller->SetScrollClipLayerId(root->id()); |
6624 outer_viewport->SetScrollClipLayerId(outer_clip->id()); | 6627 outer_viewport->SetScrollClipLayerId(outer_clip->id()); |
6625 host()->RegisterViewportLayers(nullptr, root, root, outer_clip, scroller, | 6628 LayerTreeHost::ViewportLayers viewport_layers; |
6626 outer_viewport); | 6629 viewport_layers.page_scale = root; |
| 6630 viewport_layers.inner_viewport_container = root; |
| 6631 viewport_layers.outer_viewport_container = outer_clip; |
| 6632 viewport_layers.inner_viewport_scroll = scroller; |
| 6633 viewport_layers.outer_viewport_scroll = outer_viewport; |
| 6634 host()->RegisterViewportLayers(viewport_layers); |
6627 | 6635 |
6628 LayerStickyPositionConstraint sticky_position; | 6636 LayerStickyPositionConstraint sticky_position; |
6629 sticky_position.is_sticky = true; | 6637 sticky_position.is_sticky = true; |
6630 sticky_position.is_anchored_bottom = true; | 6638 sticky_position.is_anchored_bottom = true; |
6631 sticky_position.bottom_offset = 10.0f; | 6639 sticky_position.bottom_offset = 10.0f; |
6632 sticky_position.parent_relative_sticky_box_offset = gfx::Point(0, 70); | 6640 sticky_position.parent_relative_sticky_box_offset = gfx::Point(0, 70); |
6633 sticky_position.scroll_container_relative_sticky_box_rect = | 6641 sticky_position.scroll_container_relative_sticky_box_rect = |
6634 gfx::Rect(0, 70, 10, 10); | 6642 gfx::Rect(0, 70, 10, 10); |
6635 sticky_position.scroll_container_relative_containing_block_rect = | 6643 sticky_position.scroll_container_relative_containing_block_rect = |
6636 gfx::Rect(0, 60, 100, 100); | 6644 gfx::Rect(0, 60, 100, 100); |
(...skipping 1529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8166 | 8174 |
8167 inner_viewport_scroll_layer->SetScrollClipLayerId( | 8175 inner_viewport_scroll_layer->SetScrollClipLayerId( |
8168 inner_viewport_container_layer->id()); | 8176 inner_viewport_container_layer->id()); |
8169 outer_viewport_scroll_layer->SetScrollClipLayerId( | 8177 outer_viewport_scroll_layer->SetScrollClipLayerId( |
8170 outer_viewport_container_layer->id()); | 8178 outer_viewport_container_layer->id()); |
8171 | 8179 |
8172 inner_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); | 8180 inner_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); |
8173 outer_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); | 8181 outer_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); |
8174 | 8182 |
8175 host()->SetRootLayer(root); | 8183 host()->SetRootLayer(root); |
8176 host()->RegisterViewportLayers(nullptr, root, inner_viewport_container_layer, | 8184 LayerTreeHost::ViewportLayers viewport_layers; |
8177 outer_viewport_container_layer, | 8185 viewport_layers.page_scale = root; |
8178 inner_viewport_scroll_layer, | 8186 viewport_layers.inner_viewport_container = inner_viewport_container_layer; |
8179 outer_viewport_scroll_layer); | 8187 viewport_layers.outer_viewport_container = outer_viewport_container_layer; |
| 8188 viewport_layers.inner_viewport_scroll = inner_viewport_scroll_layer; |
| 8189 viewport_layers.outer_viewport_scroll = outer_viewport_scroll_layer; |
| 8190 host()->RegisterViewportLayers(viewport_layers); |
8180 | 8191 |
8181 scoped_refptr<Layer> fixed_to_inner = Layer::Create(); | 8192 scoped_refptr<Layer> fixed_to_inner = Layer::Create(); |
8182 scoped_refptr<Layer> fixed_to_outer = Layer::Create(); | 8193 scoped_refptr<Layer> fixed_to_outer = Layer::Create(); |
8183 | 8194 |
8184 inner_viewport_scroll_layer->AddChild(fixed_to_inner); | 8195 inner_viewport_scroll_layer->AddChild(fixed_to_inner); |
8185 outer_viewport_scroll_layer->AddChild(fixed_to_outer); | 8196 outer_viewport_scroll_layer->AddChild(fixed_to_outer); |
8186 | 8197 |
8187 LayerPositionConstraint fixed_to_right; | 8198 LayerPositionConstraint fixed_to_right; |
8188 fixed_to_right.set_is_fixed_position(true); | 8199 fixed_to_right.set_is_fixed_position(true); |
8189 fixed_to_right.set_is_fixed_to_right_edge(true); | 8200 fixed_to_right.set_is_fixed_to_right_edge(true); |
(...skipping 1806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9996 MainThreadScrollingReason::kScrollbarScrolling); | 10007 MainThreadScrollingReason::kScrollbarScrolling); |
9997 | 10008 |
9998 child7->SetScrollClipLayerId(parent3->id()); | 10009 child7->SetScrollClipLayerId(parent3->id()); |
9999 | 10010 |
10000 child8->SetScrollParent(child7.get()); | 10011 child8->SetScrollParent(child7.get()); |
10001 grand_child11->SetScrollClipLayerId(parent3->id()); | 10012 grand_child11->SetScrollClipLayerId(parent3->id()); |
10002 | 10013 |
10003 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); | 10014 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); |
10004 parent5->SetBounds(gfx::Size(10, 10)); | 10015 parent5->SetBounds(gfx::Size(10, 10)); |
10005 | 10016 |
10006 host()->RegisterViewportLayers(nullptr, page_scale_layer, root1, nullptr, | 10017 LayerTreeHost::ViewportLayers viewport_layers; |
10007 parent2, nullptr); | 10018 viewport_layers.page_scale = page_scale_layer; |
| 10019 viewport_layers.inner_viewport_container = root1; |
| 10020 viewport_layers.inner_viewport_scroll = parent2; |
| 10021 host()->RegisterViewportLayers(viewport_layers); |
10008 ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root1.get()); | 10022 ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root1.get()); |
10009 | 10023 |
10010 const int kRootPropertyTreeNodeId = 0; | 10024 const int kRootPropertyTreeNodeId = 0; |
10011 | 10025 |
10012 // Property tree root | 10026 // Property tree root |
10013 ScrollTree& scroll_tree = host()->property_trees()->scroll_tree; | 10027 ScrollTree& scroll_tree = host()->property_trees()->scroll_tree; |
10014 PropertyTrees property_trees; | 10028 PropertyTrees property_trees; |
10015 property_trees.is_main_thread = true; | 10029 property_trees.is_main_thread = true; |
10016 property_trees.is_active = false; | 10030 property_trees.is_active = false; |
10017 ScrollTree& expected_scroll_tree = property_trees.scroll_tree; | 10031 ScrollTree& expected_scroll_tree = property_trees.scroll_tree; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10154 | 10168 |
10155 // Check child layer draw properties. | 10169 // Check child layer draw properties. |
10156 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect()); | 10170 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect()); |
10157 EXPECT_EQ(gfx::Transform(), child->DrawTransform()); | 10171 EXPECT_EQ(gfx::Transform(), child->DrawTransform()); |
10158 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect()); | 10172 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect()); |
10159 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect()); | 10173 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect()); |
10160 } | 10174 } |
10161 | 10175 |
10162 } // namespace | 10176 } // namespace |
10163 } // namespace cc | 10177 } // namespace cc |
OLD | NEW |