Chromium Code Reviews| 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 |