| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "platform/graphics/compositing/PaintArtifactCompositor.h" | 5 #include "platform/graphics/compositing/PaintArtifactCompositor.h" |
| 6 | 6 |
| 7 #include "base/test/test_simple_task_runner.h" | 7 #include "base/test/test_simple_task_runner.h" |
| 8 #include "base/threading/thread_task_runner_handle.h" | 8 #include "base/threading/thread_task_runner_handle.h" |
| 9 #include "cc/layers/layer.h" | 9 #include "cc/layers/layer.h" |
| 10 #include "cc/test/fake_compositor_frame_sink.h" | 10 #include "cc/test/fake_compositor_frame_sink.h" |
| (...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 EXPECT_EQ(gfx::Size(27, 31), scrollNode.bounds); | 562 EXPECT_EQ(gfx::Size(27, 31), scrollNode.bounds); |
| 563 EXPECT_TRUE(scrollNode.user_scrollable_horizontal); | 563 EXPECT_TRUE(scrollNode.user_scrollable_horizontal); |
| 564 EXPECT_FALSE(scrollNode.user_scrollable_vertical); | 564 EXPECT_FALSE(scrollNode.user_scrollable_vertical); |
| 565 EXPECT_EQ(1, scrollNode.parent_id); | 565 EXPECT_EQ(1, scrollNode.parent_id); |
| 566 | 566 |
| 567 const cc::TransformTree& transformTree = propertyTrees().transform_tree; | 567 const cc::TransformTree& transformTree = propertyTrees().transform_tree; |
| 568 const cc::TransformNode& transformNode = *transformTree.Node(scrollNode.tran
sform_id); | 568 const cc::TransformNode& transformNode = *transformTree.Node(scrollNode.tran
sform_id); |
| 569 EXPECT_TRUE(transformNode.local.IsIdentity()); | 569 EXPECT_TRUE(transformNode.local.IsIdentity()); |
| 570 | 570 |
| 571 EXPECT_EQ(gfx::ScrollOffset(-7, -9), scrollTree.current_scroll_offset(conten
tLayerAt(0)->id())); | 571 EXPECT_EQ(gfx::ScrollOffset(-7, -9), scrollTree.current_scroll_offset(conten
tLayerAt(0)->id())); |
| 572 |
| 573 EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, scrollNode.main_th
read_scrolling_reasons); |
| 572 } | 574 } |
| 573 | 575 |
| 574 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) | 576 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedScrollNodes) |
| 575 { | 577 { |
| 576 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(dum
myRootEffect(), 0.5); | 578 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(dum
myRootEffect(), 0.5); |
| 577 | 579 |
| 578 RefPtr<TransformPaintPropertyNode> scrollTranslationA = TransformPaintProper
tyNode::create( | 580 RefPtr<TransformPaintPropertyNode> scrollTranslationA = TransformPaintProper
tyNode::create( |
| 579 nullptr, TransformationMatrix().translate(11, 13), FloatPoint3D()); | 581 nullptr, TransformationMatrix().translate(11, 13), FloatPoint3D()); |
| 580 RefPtr<ScrollPaintPropertyNode> scrollA = ScrollPaintPropertyNode::create( | 582 RefPtr<ScrollPaintPropertyNode> scrollA = ScrollPaintPropertyNode::create( |
| 581 nullptr, scrollTranslationA, IntSize(2, 3), IntSize(5, 7), false, true); | 583 nullptr, scrollTranslationA, IntSize(2, 3), IntSize(5, 7), false, true); |
| 582 RefPtr<TransformPaintPropertyNode> scrollTranslationB = TransformPaintProper
tyNode::create( | 584 RefPtr<TransformPaintPropertyNode> scrollTranslationB = TransformPaintProper
tyNode::create( |
| 583 scrollTranslationA, TransformationMatrix().translate(37, 41), FloatPoint
3D()); | 585 scrollTranslationA, TransformationMatrix().translate(37, 41), FloatPoint
3D()); |
| 584 RefPtr<ScrollPaintPropertyNode> scrollB = ScrollPaintPropertyNode::create( | 586 RefPtr<ScrollPaintPropertyNode> scrollB = ScrollPaintPropertyNode::create( |
| 585 scrollA, scrollTranslationB, IntSize(19, 23), IntSize(29, 31), true, fal
se); | 587 scrollA, scrollTranslationB, IntSize(19, 23), IntSize(29, 31), true, fal
se); |
| 588 scrollB->setBackgroundAttachmentFixedMainThreadScrollingReason(); |
| 586 | 589 |
| 587 TestPaintArtifact artifact; | 590 TestPaintArtifact artifact; |
| 588 artifact.chunk(scrollTranslationA, nullptr, effect, scrollA) | 591 artifact.chunk(scrollTranslationA, nullptr, effect, scrollA) |
| 589 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); | 592 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); |
| 590 artifact.chunk(scrollTranslationB, nullptr, effect, scrollB) | 593 artifact.chunk(scrollTranslationB, nullptr, effect, scrollB) |
| 591 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); | 594 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); |
| 592 update(artifact.build()); | 595 update(artifact.build()); |
| 593 | 596 |
| 594 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; | 597 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; |
| 595 // Node #0 reserved for null; #1 for root render surface. | 598 // Node #0 reserved for null; #1 for root render surface. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 608 EXPECT_EQ(scrollNodeA.id, scrollNodeB.parent_id); | 611 EXPECT_EQ(scrollNodeA.id, scrollNodeB.parent_id); |
| 609 | 612 |
| 610 const cc::TransformTree& transformTree = propertyTrees().transform_tree; | 613 const cc::TransformTree& transformTree = propertyTrees().transform_tree; |
| 611 const cc::TransformNode& transformNodeA = *transformTree.Node(scrollNodeA.tr
ansform_id); | 614 const cc::TransformNode& transformNodeA = *transformTree.Node(scrollNodeA.tr
ansform_id); |
| 612 EXPECT_TRUE(transformNodeA.local.IsIdentity()); | 615 EXPECT_TRUE(transformNodeA.local.IsIdentity()); |
| 613 const cc::TransformNode& transformNodeB = *transformTree.Node(scrollNodeB.tr
ansform_id); | 616 const cc::TransformNode& transformNodeB = *transformTree.Node(scrollNodeB.tr
ansform_id); |
| 614 EXPECT_TRUE(transformNodeB.local.IsIdentity()); | 617 EXPECT_TRUE(transformNodeB.local.IsIdentity()); |
| 615 | 618 |
| 616 EXPECT_EQ(gfx::ScrollOffset(-11, -13), scrollTree.current_scroll_offset(cont
entLayerAt(0)->id())); | 619 EXPECT_EQ(gfx::ScrollOffset(-11, -13), scrollTree.current_scroll_offset(cont
entLayerAt(0)->id())); |
| 617 EXPECT_EQ(gfx::ScrollOffset(-37, -41), scrollTree.current_scroll_offset(cont
entLayerAt(1)->id())); | 620 EXPECT_EQ(gfx::ScrollOffset(-37, -41), scrollTree.current_scroll_offset(cont
entLayerAt(1)->id())); |
| 621 |
| 622 // The main thread scrolling bits from scrollNodeB should have been propagat
ed to scrollNodeA. |
| 623 EXPECT_TRUE(scrollNodeA.main_thread_scrolling_reasons & MainThreadScrollingR
eason::kHasBackgroundAttachmentFixedObjects); |
| 624 EXPECT_TRUE(scrollNodeB.main_thread_scrolling_reasons & MainThreadScrollingR
eason::kHasBackgroundAttachmentFixedObjects); |
| 618 } | 625 } |
| 619 | 626 |
| 620 } // namespace | 627 } // namespace |
| 621 } // namespace blink | 628 } // namespace blink |
| OLD | NEW |