Changeset 289216 in webkit
- Timestamp:
- Feb 7, 2022 7:10:33 AM (5 months ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/animation/DocumentTimeline.cpp (modified) (2 diffs)
-
Source/WebCore/animation/KeyframeEffect.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r289209 r289216 1 2022-02-07 Antoine Quint <graouts@webkit.org> 2 3 [css-logical] [web-animations] Add support for logical properties in JS-originated animations 4 https://bugs.webkit.org/show_bug.cgi?id=236229 5 6 Reviewed by Dean Jackson. 7 8 Mark WPT progressions. 9 10 * web-platform-tests/css/css-logical/animation-001-expected.txt: 11 * web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt: 12 * web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt: 13 1 14 2022-02-07 Ziran Sun <zsun@igalia.com> 2 15 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt
r267650 r289216 1 1 2 FAIL Logical properties can be animated using object notation assert_equals: expected "50px" but got "0px" 3 FAIL Logical properties can be animated using array notation assert_equals: expected "50px" but got "0px" 4 FAIL Logical properties are NOT stored as physical properties assert_equals: expected 2 but got 0 5 FAIL Logical properties in animations respect the writing-mode assert_equals: expected "50px" but got "0px" 6 FAIL Logical properties in animations respect the direction assert_equals: expected "50px" but got "0px" 2 PASS Logical properties can be animated using object notation 3 PASS Logical properties can be animated using array notation 4 PASS Logical properties are NOT stored as physical properties 5 PASS Logical properties in animations respect the writing-mode 6 PASS Logical properties in animations respect the direction 7 7 PASS Physical properties win over logical properties in object notation 8 8 PASS Physical properties win over logical properties in array notation 9 9 PASS Physical properties with variables win over logical properties 10 FAIL Logical shorthands follow the usual prioritization based on number of component longhands assert_equals: expected " 100px" but got "0px"10 FAIL Logical shorthands follow the usual prioritization based on number of component longhands assert_equals: expected "200px" but got "0px" 11 11 FAIL Physical longhands win over logical shorthands assert_equals: expected "100px" but got "0px" 12 FAIL Logical longhands win over physical shorthands assert_equals: expected "100px" but got "200px" 12 PASS Logical longhands win over physical shorthands 13 13 PASS Physical shorthands win over logical shorthands 14 14 PASS Physical shorthands using variables win over logical shorthands 15 FAIL Physical properties and logical properties can be mixed assert_equals: expected "250px" but got "300px" 15 PASS Physical properties and logical properties can be mixed 16 16 FAIL Physical shorthands and logical shorthands can be mixed assert_equals: expected "250px" but got "150px" 17 17 PASS Physical properties win over logical properties even when some keyframes only have logical properties 18 18 FAIL Animations update when the writing-mode is changed assert_equals: expected "50px" but got "0px" 19 19 FAIL Filling animations update when the writing-mode is changed assert_equals: expected "100px" but got "0px" 20 FAIL Animations with implicit from values update when the writing-mode is changed assert_equals: expected "2 50px" but got "200px"20 FAIL Animations with implicit from values update when the writing-mode is changed assert_equals: expected "200px" but got "100px" 21 21 FAIL Animations with overlapping physical and logical properties update when the writing-mode is changed assert_equals: expected "50px" but got "0px" 22 22 FAIL Animations update when the writing-mode is changed through a CSS variable assert_equals: expected "50px" but got "0px" 23 FAIL Animations update when the direction is changed assert_equals: expected " 50px" but got "0px"23 FAIL Animations update when the direction is changed assert_equals: expected "0px" but got "50px" 24 24 FAIL Logical shorthand with variable references animates correctly assert_equals: expected "250px" but got "auto" 25 25 PASS writing-mode is not animatable -
trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt
r287917 r289216 3 3 PASS Commits styles for an animation that has been removed 4 4 PASS Commits shorthand styles 5 FAIL Commits logical properties assert_equals: expected "20px" but got "10px" 6 FAIL Commits logical properties as physical properties assert_equals: expected "20px" but got "10px" 5 PASS Commits logical properties 6 PASS Commits logical properties as physical properties 7 7 PASS Commits values calculated mid-interval 8 8 PASS Commits variable references as their computed values -
trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
r267649 r289216 18 18 PASS Removes an animation when another animation uses a shorthand 19 19 PASS Removes an animation that uses a shorthand 20 FAIL Removes an animation by another animation using logical properties assert_equals: expected "removed" but got "active" 20 PASS Removes an animation by another animation using logical properties 21 21 PASS Removes an animation using logical properties 22 FAIL Removes an animation by another animation using logical properties after updating the context assert_equals: expected " active" but got "removed"22 FAIL Removes an animation by another animation using logical properties after updating the context assert_equals: expected "removed" but got "active" 23 23 PASS Removes an animation after updating another animation's effect's target 24 24 PASS Removes an animation after updating its effect's target -
trunk/Source/WebCore/ChangeLog
r289215 r289216 1 2022-02-07 Antoine Quint <graouts@webkit.org> 2 3 [css-logical] [web-animations] Add support for logical properties in JS-originated animations 4 https://bugs.webkit.org/show_bug.cgi?id=236229 5 6 Reviewed by Dean Jackson. 7 8 We need to resolve logical properties when parsing keyframes provided by the Web Animations bindings 9 and when considering whether an animation can be removed based on properties found on the effect stack. 10 11 * animation/DocumentTimeline.cpp: 12 (WebCore::DocumentTimeline::animationCanBeRemoved): 13 * animation/KeyframeEffect.cpp: 14 (WebCore::processKeyframeLikeObject): 15 1 16 2022-02-07 Antoine Quint <graouts@webkit.org> 2 17 -
trunk/Source/WebCore/animation/DocumentTimeline.cpp
r289212 r289216 236 236 return false; 237 237 238 HashSet<CSSPropertyID> propertiesToMatch = keyframeEffect->animatedProperties(); 238 ASSERT(target->renderer()); 239 auto& style = target->renderer()->style(); 240 241 HashSet<CSSPropertyID> propertiesToMatch; 242 for (auto cssProperty : keyframeEffect->animatedProperties()) 243 propertiesToMatch.add(CSSProperty::resolveDirectionAwareProperty(cssProperty, style.direction(), style.writingMode())); 239 244 240 245 Vector<RefPtr<WebAnimation>> animations; … … 254 259 if (is<KeyframeEffect>(effectWithHigherCompositeOrder)) { 255 260 auto* keyframeEffectWithHigherCompositeOrder = downcast<KeyframeEffect>(effectWithHigherCompositeOrder); 256 for (auto cssPropertyId : keyframeEffectWithHigherCompositeOrder->animatedProperties()) { 257 if (propertiesToMatch.remove(cssPropertyId) && propertiesToMatch.isEmpty()) 261 for (auto cssProperty : keyframeEffectWithHigherCompositeOrder->animatedProperties()) { 262 auto resolvedProperty = CSSProperty::resolveDirectionAwareProperty(cssProperty, style.direction(), style.writingMode()); 263 if (propertiesToMatch.remove(resolvedProperty) && propertiesToMatch.isEmpty()) 258 264 break; 259 265 } -
trunk/Source/WebCore/animation/KeyframeEffect.cpp
r289211 r289216 228 228 // properties, or which are in input properties and conform to the <custom-property-name> production. 229 229 Vector<JSC::Identifier> animationProperties; 230 size_t numberOfProperties = inputProperties.size(); 231 for (size_t i = 0; i < numberOfProperties; ++i) { 232 if (CSSPropertyAnimation::isPropertyAnimatable(IDLAttributeNameToAnimationPropertyName(inputProperties[i].string()))) 233 animationProperties.append(inputProperties[i]); 230 for (auto& inputProperty : inputProperties) { 231 auto cssProperty = IDLAttributeNameToAnimationPropertyName(inputProperty.string()); 232 auto resolvedCSSProperty = CSSProperty::resolveDirectionAwareProperty(cssProperty, RenderStyle::initialDirection(), RenderStyle::initialWritingMode()); 233 if (CSSPropertyAnimation::isPropertyAnimatable(resolvedCSSProperty)) 234 animationProperties.append(inputProperty); 234 235 } 235 236
Note: See TracChangeset
for help on using the changeset viewer.