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); |
586 | 588 scrollB->addMainThreadScrollingReasons(MainThreadScrollingReason::kHasBackgr oundAttachmentFixedObjects); |
587 TestPaintArtifact artifact; | 589 TestPaintArtifact artifact; |
588 artifact.chunk(scrollTranslationA, nullptr, effect, scrollA) | 590 artifact.chunk(scrollTranslationA, nullptr, effect, scrollA) |
589 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); | 591 .rectDrawing(FloatRect(7, 11, 13, 17), Color::white); |
590 artifact.chunk(scrollTranslationB, nullptr, effect, scrollB) | 592 artifact.chunk(scrollTranslationB, nullptr, effect, scrollB) |
591 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); | 593 .rectDrawing(FloatRect(1, 2, 3, 5), Color::white); |
592 update(artifact.build()); | 594 update(artifact.build()); |
593 | 595 |
594 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; | 596 const cc::ScrollTree& scrollTree = propertyTrees().scroll_tree; |
595 // Node #0 reserved for null; #1 for root render surface. | 597 // Node #0 reserved for null; #1 for root render surface. |
596 ASSERT_EQ(4u, scrollTree.size()); | 598 ASSERT_EQ(4u, scrollTree.size()); |
(...skipping 11 matching lines...) Expand all Loading... | |
608 EXPECT_EQ(scrollNodeA.id, scrollNodeB.parent_id); | 610 EXPECT_EQ(scrollNodeA.id, scrollNodeB.parent_id); |
609 | 611 |
610 const cc::TransformTree& transformTree = propertyTrees().transform_tree; | 612 const cc::TransformTree& transformTree = propertyTrees().transform_tree; |
611 const cc::TransformNode& transformNodeA = *transformTree.Node(scrollNodeA.tr ansform_id); | 613 const cc::TransformNode& transformNodeA = *transformTree.Node(scrollNodeA.tr ansform_id); |
612 EXPECT_TRUE(transformNodeA.local.IsIdentity()); | 614 EXPECT_TRUE(transformNodeA.local.IsIdentity()); |
613 const cc::TransformNode& transformNodeB = *transformTree.Node(scrollNodeB.tr ansform_id); | 615 const cc::TransformNode& transformNodeB = *transformTree.Node(scrollNodeB.tr ansform_id); |
614 EXPECT_TRUE(transformNodeB.local.IsIdentity()); | 616 EXPECT_TRUE(transformNodeB.local.IsIdentity()); |
615 | 617 |
616 EXPECT_EQ(gfx::ScrollOffset(-11, -13), scrollTree.current_scroll_offset(cont entLayerAt(0)->id())); | 618 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())); | 619 EXPECT_EQ(gfx::ScrollOffset(-37, -41), scrollTree.current_scroll_offset(cont entLayerAt(1)->id())); |
620 | |
621 // The main thread scrolling bits from scrollNodeB should have been propagat ed to scrollNodeA. | |
pdr.
2016/09/19 21:36:45
The CQ failed because of this test. This was writt
| |
622 EXPECT_TRUE(scrollNodeA.main_thread_scrolling_reasons & MainThreadScrollingR eason::kHasBackgroundAttachmentFixedObjects); | |
623 EXPECT_TRUE(scrollNodeB.main_thread_scrolling_reasons & MainThreadScrollingR eason::kHasBackgroundAttachmentFixedObjects); | |
618 } | 624 } |
619 | 625 |
620 } // namespace | 626 } // namespace |
621 } // namespace blink | 627 } // namespace blink |
OLD | NEW |