Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(746)

Unified Diff: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp

Issue 2608543002: Store compositor element id in paint properties for animated objects. (Closed)
Patch Set: Hide create-dom-node method. Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698