| Index: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
|
| index 46aa009d3efcf81c733cedfb97e8921e2435eef4..e7480ff8e45d51b1c885b130f2ae0d64ee6d60c2 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp
|
| @@ -57,6 +57,11 @@ LayoutPoint PaintPropertyTreeBuilderTest::paintOffset(
|
| return object->paintProperties()->localBorderBoxProperties()->paintOffset;
|
| }
|
|
|
| +const ObjectPaintProperties*
|
| +PaintPropertyTreeBuilderTest::paintPropertiesForElement(const char* name) {
|
| + return document().getElementById(name)->layoutObject()->paintProperties();
|
| +}
|
| +
|
| void PaintPropertyTreeBuilderTest::SetUp() {
|
| Settings::setMockScrollbarsEnabled(true);
|
|
|
| @@ -421,60 +426,24 @@ TEST_P(PaintPropertyTreeBuilderTest, Perspective3DTransformedDescendant) {
|
|
|
| TEST_P(PaintPropertyTreeBuilderTest,
|
| TransformNodeWithActiveAnimationHasDirectCompositingReason) {
|
| - setBodyInnerHTML(
|
| - "<style>"
|
| - "@keyframes test {"
|
| - " 0% { transform: translate(1em, 1em) } "
|
| - " 100% { transform: translate(2em, 2em) } "
|
| - "} "
|
| - ".animate { "
|
| - " animation-name: test; "
|
| - " animation-duration: 1s "
|
| - "}"
|
| - "</style>"
|
| - "<div id='target' class='animate'></div>");
|
| - Element* target = document().getElementById("target");
|
| - const ObjectPaintProperties* properties =
|
| - target->layoutObject()->paintProperties();
|
| - EXPECT_TRUE(properties->transform()->hasDirectCompositingReasons());
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -const char* kSimpleOpacityExampleHTML =
|
| - "<style>"
|
| - "div {"
|
| - " width: 100px;"
|
| - " height: 100px;"
|
| - " background-color: red;"
|
| - " animation-name: example;"
|
| - " animation-duration: 4s;"
|
| - "}"
|
| - "@keyframes example {"
|
| - " from { opacity: 0.0;}"
|
| - " to { opacity: 1.0;}"
|
| - "}"
|
| - "</style>"
|
| - "<div id='target'></div>";
|
| -
|
| -} // namespace
|
| + loadTestData("transform-animation.html");
|
| + EXPECT_TRUE(paintPropertiesForElement("target")
|
| + ->transform()
|
| + ->hasDirectCompositingReasons());
|
| +}
|
|
|
| TEST_P(PaintPropertyTreeBuilderTest,
|
| OpacityAnimationDoesNotCreateTransformNode) {
|
| - setBodyInnerHTML(kSimpleOpacityExampleHTML);
|
| - Element* target = document().getElementById("target");
|
| - const ObjectPaintProperties* properties =
|
| - target->layoutObject()->paintProperties();
|
| - EXPECT_EQ(nullptr, properties->transform());
|
| + loadTestData("opacity-animation.html");
|
| + EXPECT_EQ(nullptr, paintPropertiesForElement("target")->transform());
|
| }
|
|
|
| TEST_P(PaintPropertyTreeBuilderTest,
|
| EffectNodeWithActiveAnimationHasDirectCompositingReason) {
|
| - setBodyInnerHTML(kSimpleOpacityExampleHTML);
|
| - Element* target = document().getElementById("target");
|
| - const ObjectPaintProperties* properties =
|
| - target->layoutObject()->paintProperties();
|
| - EXPECT_TRUE(properties->effect()->hasDirectCompositingReasons());
|
| + loadTestData("opacity-animation.html");
|
| + EXPECT_TRUE(paintPropertiesForElement("target")
|
| + ->effect()
|
| + ->hasDirectCompositingReasons());
|
| }
|
|
|
| TEST_P(PaintPropertyTreeBuilderTest, WillChangeTransform) {
|
| @@ -3194,4 +3163,37 @@ TEST_P(PaintPropertyTreeBuilderTest, ChangePositionUpdateDescendantProperties) {
|
| ->propertyTreeState.clip());
|
| }
|
|
|
| +TEST_P(PaintPropertyTreeBuilderTest,
|
| + TransformNodeNotAnimatedHasNoCompositorElementId) {
|
| + setBodyInnerHTML("<div id='target' style='transform: translateX(2em)'></div");
|
| + const ObjectPaintProperties* properties = paintPropertiesForElement("target");
|
| + EXPECT_TRUE(properties->transform());
|
| + EXPECT_EQ(CompositorElementId(),
|
| + properties->transform()->compositorElementId());
|
| +}
|
| +
|
| +TEST_P(PaintPropertyTreeBuilderTest,
|
| + EffectNodeNotAnimatedHasNoCompositorElementId) {
|
| + setBodyInnerHTML("<div id='target' style='opacity: 0.5'></div");
|
| + const ObjectPaintProperties* properties = paintPropertiesForElement("target");
|
| + EXPECT_TRUE(properties->effect());
|
| + EXPECT_EQ(CompositorElementId(), properties->effect()->compositorElementId());
|
| +}
|
| +
|
| +TEST_P(PaintPropertyTreeBuilderTest,
|
| + TransformNodeAnimatedHasCompositorElementId) {
|
| + loadTestData("transform-animation.html");
|
| + const ObjectPaintProperties* properties = paintPropertiesForElement("target");
|
| + EXPECT_TRUE(properties->transform());
|
| + EXPECT_NE(CompositorElementId(),
|
| + properties->transform()->compositorElementId());
|
| +}
|
| +
|
| +TEST_P(PaintPropertyTreeBuilderTest, EffectNodeAnimatedHasCompositorElementId) {
|
| + loadTestData("opacity-animation.html");
|
| + const ObjectPaintProperties* properties = paintPropertiesForElement("target");
|
| + EXPECT_TRUE(properties->effect());
|
| + EXPECT_NE(CompositorElementId(), properties->effect()->compositorElementId());
|
| +}
|
| +
|
| } // namespace blink
|
|
|