Title: [289167] trunk
Revision
289167
Author
[email protected]
Date
2022-02-06 07:17:32 -0800 (Sun, 06 Feb 2022)

Log Message

[css-logical] [css-transitions] Resolve logic properties when compiling the list of transition properties
https://bugs.webkit.org/show_bug.cgi?id=236197

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

* web-platform-tests/css/css-logical/animation-004-expected.txt:

Source/WebCore:

In r289161 we added initial support for transitions of logical properties. However, we would resolve the
transition-property in updateCSSTransitionsForStyleableAndProperty() whereas we should resolve them earlier
when compiling the list of transition-property values found in the previous style and the new style.

* style/Styleable.cpp:
(WebCore::keyframeEffectForElementAndProperty):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (289166 => 289167)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-06 12:34:45 UTC (rev 289166)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-06 15:17:32 UTC (rev 289167)
@@ -1,3 +1,14 @@
+2022-02-06  Antoine Quint  <[email protected]>
+
+        [css-logical] [css-transitions] Resolve logic properties when compiling the list of transition properties
+        https://bugs.webkit.org/show_bug.cgi?id=236197
+
+        Reviewed by Dean Jackson.
+
+        Mark WPT progressions.
+
+        * web-platform-tests/css/css-logical/animation-004-expected.txt:
+
 2022-02-05  Chris Dumez  <[email protected]>
 
         Resync web-platform-tests/dom from upstream

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-004-expected.txt (289166 => 289167)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-004-expected.txt	2022-02-06 12:34:45 UTC (rev 289166)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-004-expected.txt	2022-02-06 15:17:32 UTC (rev 289167)
@@ -7,12 +7,12 @@
 PASS Declaration order is respected amongst logical properties within declaration blocks
 PASS Physical properties and logical properties can be mixed
 PASS Declaration order is respected on each keyframe individually
-FAIL Transitions update when the writing-mode is changed assert_equals: expected "0px" but got "50px"
+PASS Transitions update when the writing-mode is changed
 PASS Filling transitions update when the writing-mode is changed
-FAIL The number of interpolating properties can be increased when the writing-mode is changed assert_equals: expected "0px" but got "50px"
-FAIL The number of interpolating properties can be decreased when the writing-mode is changed assert_equals: expected "300px" but got "275px"
+PASS The number of interpolating properties can be increased when the writing-mode is changed
+PASS The number of interpolating properties can be decreased when the writing-mode is changed
 FAIL Transitions update when the writing-mode is changed through a CSS variable assert_equals: expected "50px" but got "0px"
-FAIL Transitions update when the direction is changed assert_equals: expected "0px" but got "50px"
-FAIL Transitions from logical to physical update when the direction is changed assert_equals: expected "0px" but got "50px"
-FAIL Transitions from physical to logical update when the direction is changed assert_equals: expected "0px" but got "50px"
+PASS Transitions update when the direction is changed
+PASS Transitions from logical to physical update when the direction is changed
+PASS Transitions from physical to logical update when the direction is changed
 

Modified: trunk/Source/WebCore/ChangeLog (289166 => 289167)


--- trunk/Source/WebCore/ChangeLog	2022-02-06 12:34:45 UTC (rev 289166)
+++ trunk/Source/WebCore/ChangeLog	2022-02-06 15:17:32 UTC (rev 289167)
@@ -1,3 +1,19 @@
+2022-02-06  Antoine Quint  <[email protected]>
+
+        [css-logical] [css-transitions] Resolve logic properties when compiling the list of transition properties
+        https://bugs.webkit.org/show_bug.cgi?id=236197
+
+        Reviewed by Dean Jackson.
+
+        In r289161 we added initial support for transitions of logical properties. However, we would resolve the
+        transition-property in updateCSSTransitionsForStyleableAndProperty() whereas we should resolve them earlier
+        when compiling the list of transition-property values found in the previous style and the new style.
+
+        * style/Styleable.cpp:
+        (WebCore::keyframeEffectForElementAndProperty):
+        (WebCore::compileTransitionPropertiesInStyle):
+        (WebCore::updateCSSTransitionsForStyleableAndProperty):
+
 2022-02-03  Nikolas Zimmermann  <[email protected]>
 
         [LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()

Modified: trunk/Source/WebCore/style/Styleable.cpp (289166 => 289167)


--- trunk/Source/WebCore/style/Styleable.cpp	2022-02-06 12:34:45 UTC (rev 289166)
+++ trunk/Source/WebCore/style/Styleable.cpp	2022-02-06 15:17:32 UTC (rev 289167)
@@ -321,12 +321,12 @@
     element.cssAnimationsDidUpdate(pseudoId);
 }
 
-static KeyframeEffect* keyframeEffectForElementAndProperty(const Styleable& styleable, CSSPropertyID resolvedProperty, CSSPropertyID unresolvedProperty)
+static KeyframeEffect* keyframeEffectForElementAndProperty(const Styleable& styleable, CSSPropertyID property)
 {
     if (auto* keyframeEffectStack = styleable.keyframeEffectStack()) {
         auto effects = keyframeEffectStack->sortedEffects();
         for (const auto& effect : makeReversedRange(effects)) {
-            if (effect->animatesProperty(resolvedProperty) || (resolvedProperty != unresolvedProperty && effect->animatesProperty(unresolvedProperty)))
+            if (effect->animatesProperty(property))
                 return effect.get();
         }
     }
@@ -381,7 +381,7 @@
     for (const auto& animation : *transitions) {
         auto mode = animation->property().mode;
         if (mode == Animation::TransitionMode::SingleProperty) {
-            auto property = animation->property().id;
+            auto property = CSSProperty::resolveDirectionAwareProperty(animation->property().id, style.direction(), style.writingMode());
             if (isShorthandCSSProperty(property)) {
                 for (auto longhand : shorthandForProperty(property))
                     transitionProperties.add(longhand);
@@ -396,10 +396,7 @@
 
 static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleable, CSSPropertyID property, const RenderStyle& currentStyle, const RenderStyle& newStyle, const MonotonicTime generationTime)
 {
-    auto unresolvedProperty = property;
-    property = CSSProperty::resolveDirectionAwareProperty(property, newStyle.direction(), newStyle.writingMode());
-
-    auto* keyframeEffect = keyframeEffectForElementAndProperty(styleable, property, unresolvedProperty);
+    auto* keyframeEffect = keyframeEffectForElementAndProperty(styleable, property);
     auto* animation = keyframeEffect ? keyframeEffect->animation() : nullptr;
 
     bool isDeclarative = false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to