| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 | 32 |
| 33 #include <memory> | 33 #include <memory> |
| 34 #include "core/animation/AnimationClock.h" | 34 #include "core/animation/AnimationClock.h" |
| 35 #include "core/animation/AnimationTimeline.h" | 35 #include "core/animation/AnimationTimeline.h" |
| 36 #include "core/animation/CompositorPendingAnimations.h" | 36 #include "core/animation/CompositorPendingAnimations.h" |
| 37 #include "core/animation/ElementAnimations.h" | 37 #include "core/animation/ElementAnimations.h" |
| 38 #include "core/animation/KeyframeEffect.h" | 38 #include "core/animation/KeyframeEffect.h" |
| 39 #include "core/dom/DOMNodeIds.h" | 39 #include "core/dom/DOMNodeIds.h" |
| 40 #include "core/dom/Document.h" | 40 #include "core/dom/Document.h" |
| 41 #include "core/dom/QualifiedName.h" | 41 #include "core/dom/QualifiedName.h" |
| 42 #include "core/layout/LayoutTestHelper.h" |
| 43 #include "core/paint/PaintLayer.h" |
| 42 #include "core/testing/DummyPageHolder.h" | 44 #include "core/testing/DummyPageHolder.h" |
| 43 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" | 45 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" |
| 44 #include "platform/weborigin/KURL.h" | 46 #include "platform/weborigin/KURL.h" |
| 45 #include "testing/gtest/include/gtest/gtest.h" | 47 #include "testing/gtest/include/gtest/gtest.h" |
| 46 | 48 |
| 47 namespace blink { | 49 namespace blink { |
| 48 | 50 |
| 49 class AnimationAnimationTest : public ::testing::Test { | 51 class AnimationAnimationTest : public RenderingTest { |
| 50 protected: | 52 public: |
| 53 AnimationAnimationTest() |
| 54 : RenderingTest(SingleChildLocalFrameClient::Create()) {} |
| 55 |
| 51 void SetUp() override { | 56 void SetUp() override { |
| 57 RenderingTest::SetUp(); |
| 52 SetUpWithoutStartingTimeline(); | 58 SetUpWithoutStartingTimeline(); |
| 53 StartTimeline(); | 59 StartTimeline(); |
| 54 } | 60 } |
| 55 | 61 |
| 56 void SetUpWithoutStartingTimeline() { | 62 void SetUpWithoutStartingTimeline() { |
| 57 page_holder = DummyPageHolder::Create(); | 63 page_holder = DummyPageHolder::Create(); |
| 58 document = &page_holder->GetDocument(); | 64 document = &page_holder->GetDocument(); |
| 59 document->GetAnimationClock().ResetTimeForTesting(); | 65 document->GetAnimationClock().ResetTimeForTesting(); |
| 60 timeline = AnimationTimeline::Create(document.Get()); | 66 timeline = AnimationTimeline::Create(document.Get()); |
| 61 timeline->ResetForTesting(); | 67 timeline->ResetForTesting(); |
| (...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 EXPECT_TRUE(std::isnan(animation->startTime())); | 790 EXPECT_TRUE(std::isnan(animation->startTime())); |
| 785 animation->pause(); | 791 animation->pause(); |
| 786 EXPECT_EQ(Animation::kPending, animation->PlayStateInternal()); | 792 EXPECT_EQ(Animation::kPending, animation->PlayStateInternal()); |
| 787 EXPECT_EQ(0, animation->currentTime()); | 793 EXPECT_EQ(0, animation->currentTime()); |
| 788 EXPECT_TRUE(std::isnan(animation->startTime())); | 794 EXPECT_TRUE(std::isnan(animation->startTime())); |
| 789 } | 795 } |
| 790 | 796 |
| 791 TEST_F(AnimationAnimationTest, NoCompositeWithoutCompositedElementId) { | 797 TEST_F(AnimationAnimationTest, NoCompositeWithoutCompositedElementId) { |
| 792 ScopedSlimmingPaintV2ForTest enable_s_pv2(true); | 798 ScopedSlimmingPaintV2ForTest enable_s_pv2(true); |
| 793 | 799 |
| 794 Persistent<Element> element_composited = document->createElement("foo"); | 800 SetBodyInnerHTML( |
| 795 Persistent<Element> element_not_composited = document->createElement("bar"); | 801 "<div id='foo' style='position: relative'></div>" |
| 802 "<div id='bar' style='position: relative'></div>"); |
| 803 |
| 804 LayoutObject* object_composited = GetLayoutObjectByElementId("foo"); |
| 805 LayoutObject* object_not_composited = GetLayoutObjectByElementId("bar"); |
| 796 | 806 |
| 797 Optional<CompositorElementIdSet> composited_element_ids = | 807 Optional<CompositorElementIdSet> composited_element_ids = |
| 798 CompositorElementIdSet(); | 808 CompositorElementIdSet(); |
| 799 CompositorElementId expected_compositor_element_id = | 809 CompositorElementId expected_compositor_element_id = |
| 800 CompositorElementIdFromDOMNodeId( | 810 CompositorElementIdFromPaintLayerId( |
| 801 DOMNodeIds::IdForNode(element_composited), | 811 ToLayoutBoxModelObject(object_composited)->Layer()->UniqueId(), |
| 802 CompositorElementIdNamespace::kPrimary); | 812 CompositorElementIdNamespace::kPrimary); |
| 803 composited_element_ids->insert(expected_compositor_element_id); | 813 composited_element_ids->insert(expected_compositor_element_id); |
| 804 | 814 |
| 805 Timing timing; | 815 Timing timing; |
| 806 timing.iteration_duration = 30; | 816 timing.iteration_duration = 30; |
| 807 timing.playback_rate = 1; | 817 timing.playback_rate = 1; |
| 808 KeyframeEffect* keyframe_effect_composited = | 818 KeyframeEffect* keyframe_effect_composited = KeyframeEffect::Create( |
| 809 KeyframeEffect::Create(element_composited.Get(), nullptr, timing); | 819 ToElement(object_composited->GetNode()), nullptr, timing); |
| 810 Animation* animation_composited = timeline->Play(keyframe_effect_composited); | 820 Animation* animation_composited = timeline->Play(keyframe_effect_composited); |
| 811 KeyframeEffect* keyframe_effect_not_composited = | 821 KeyframeEffect* keyframe_effect_not_composited = KeyframeEffect::Create( |
| 812 KeyframeEffect::Create(element_not_composited.Get(), nullptr, timing); | 822 ToElement(object_not_composited->GetNode()), nullptr, timing); |
| 813 Animation* animation_not_composited = | 823 Animation* animation_not_composited = |
| 814 timeline->Play(keyframe_effect_not_composited); | 824 timeline->Play(keyframe_effect_not_composited); |
| 815 | 825 |
| 816 SimulateFrame(0, composited_element_ids); | 826 SimulateFrame(0, composited_element_ids); |
| 817 EXPECT_TRUE(animation_composited->CanStartAnimationOnCompositor( | 827 EXPECT_TRUE(animation_composited->CanStartAnimationOnCompositor( |
| 818 composited_element_ids)); | 828 composited_element_ids)); |
| 819 EXPECT_FALSE(animation_not_composited->CanStartAnimationOnCompositor( | 829 EXPECT_FALSE(animation_not_composited->CanStartAnimationOnCompositor( |
| 820 composited_element_ids)); | 830 composited_element_ids)); |
| 821 } | 831 } |
| 822 | 832 |
| 823 } // namespace blink | 833 } // namespace blink |
| OLD | NEW |