[webkit-changes] [WebKit/WebKit] e8e6ce: [threaded-animation-resolution] refactor code indi...

2024-02-01 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e8e6ceec1f12b02e96b0a2119934234a0049
  
https://github.com/WebKit/WebKit/commit/e8e6ceec1f12b02e96b0a2119934234a0049
  Author: Antoine Quint 
  Date:   2024-02-01 (Thu, 01 Feb 2024)

  Changed paths:
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/platform/graphics/filters/FilterOperations.cpp
M Source/WebCore/platform/graphics/filters/FilterOperations.h

  Log Message:
  ---
  [threaded-animation-resolution] refactor code indicating whether two filter 
lists can be interpolated to be accessible outside of CSSPropertyAnimation
https://bugs.webkit.org/show_bug.cgi?id=268534

Reviewed by Simon Fraser.

As part of the threaded animation resolution work (bug 250970), we will need to 
be able to identify
cases where `filter` values cannot be interpolated because it will be both 
difficult to implement
animation of mis-matching filter lists using the Core Animation API and also 
because it doesn't
make much sense to run an animation in the UIProcess for values that will not 
continuously change.

The logic that determines whether two `filter` values can be interpolated is 
private to `CSSPropertyAnimation`
as it stands. This change exposes it on `FilterOperations` directly which will 
allow `AcceleratedEffectStack`
as well as its remote counterpart to reason about whether a `filter` animation 
ought to be accelerated.

* Source/WebCore/animation/CSSPropertyAnimation.cpp:
* Source/WebCore/platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::canInterpolate const):
* Source/WebCore/platform/graphics/filters/FilterOperations.h:

Canonical link: https://commits.webkit.org/273932@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 08bde5: [threaded-animation-resolution] ensure we stop ani...

2024-02-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 08bde5f5ce3b0b65440c2f629c9349a900f1b992
  
https://github.com/WebKit/WebKit/commit/08bde5f5ce3b0b65440c2f629c9349a900f1b992
  Author: Antoine Quint 
  Date:   2024-02-04 (Sun, 04 Feb 2024)

  Changed paths:
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm

  Log Message:
  ---
  [threaded-animation-resolution] ensure we stop animation-related tasks when 
an animated node is removed
https://bugs.webkit.org/show_bug.cgi?id=268717
rdar://122278779

Reviewed by Simon Fraser.

It is possible a `RemoteLayerTreeNode` will be removed while it is registered 
with
`RemoteScrollingCoordinatorProxyIOS` as an animated node in 
`m_animatedNodeLayerIDs`.
We need to ensure than when a node is removed from the remote layer tree, any
notion of it being animated is cleared by calling 
`animationsWereRemovedFromNode()`
in `RemoteLayerTreeHost::layerWillBeRemoved()`.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):

Canonical link: https://commits.webkit.org/274086@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c31a03: [threaded-animation-resolution] add support for bl...

2024-02-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c31a0356b67ea73b401b95a0062ea2d393003de9
  
https://github.com/WebKit/WebKit/commit/c31a0356b67ea73b401b95a0062ea2d393003de9
  Author: Antoine Quint 
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
M Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm

  Log Message:
  ---
  [threaded-animation-resolution] add support for blending `opacity` values
https://bugs.webkit.org/show_bug.cgi?id=268738
rdar://122304627

Reviewed by Simon Fraser.

In order to add support for blending `opacity` values we make 
`AcceleratedEffect`
adopt the `KeyframeInterpolation::interpolateKeyframes()` method and its various
callbacks to deal with `AcceleratedEffect::Keyframe` values. We wrap this into
the new `AcceleratedEffect::apply()` method which is called from 
`RemoteAcceleratedEffectStack`
in the `computeValues()` method.

We compute the blended values in three different places in 
`RemoteAcceleratedEffectStack`.

When we resolve effects on the main thread (macOS) we have an 
`initEffectsFromScrollingThread()`
method to initialize the `CAPresentationModifier` objects which will apply the 
blended
values, and then on subsequent display updates we call 
`applyEffectsFromScrollingThread()`.

When we resolve effects on the scrolling thread (iOS) there is no 
initialization step
required and the single `applyEffectsFromScrollingThread()` method suffices.

Future patches will add support for the other transform-related and 
filter-related
accelerated properties.

* Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):
(WebCore::AcceleratedEffect::apply):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromScrollingThread):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromScrollingThread const):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromMainThread const):
(WebKit::RemoteAcceleratedEffectStack::computeValues const):
(WebKit::RemoteAcceleratedEffectStack::clear):

Canonical link: https://commits.webkit.org/274102@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 57ded7: [threaded-animation-resolution] initEffectsFromScr...

2024-02-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 57ded7c8d22ad9a5ff25d2c2aecce63d9118d966
  
https://github.com/WebKit/WebKit/commit/57ded7c8d22ad9a5ff25d2c2aecce63d9118d966
  Author: Antoine Quint 
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm

  Log Message:
  ---
  [threaded-animation-resolution] initEffectsFromScrollingThread should be 
called initEffectsFromMainThread on RemoteAcceleratedEffectStack
https://bugs.webkit.org/show_bug.cgi?id=268803
rdar://122365275

Reviewed by Simon Fraser.

When blending for `opacity` values was added in 274102@main, the 
`RemoteAcceleratedEffectStack::initEffectsFromMainThread()`
method was renamed to `initEffectsFromScrollingThread(). This was an error 
since presentation modifiers are indeed installed
on the main thread, and merely updated on the scrolling thread.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromMainThread):
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromScrollingThread): Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274134@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0eec24: [iOS] run keyboard scrolling animations at a highe...

2024-02-07 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0eec24ac3eff44a5d415e3617d1cf5abe5c5d496
  
https://github.com/WebKit/WebKit/commit/0eec24ac3eff44a5d415e3617d1cf5abe5c5d496
  Author: Antoine Quint 
  Date:   2024-02-07 (Wed, 07 Feb 2024)

  Changed paths:
M Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h
A Source/WebKit/Platform/cocoa/CAFrameRateRangeUtilities.h
M Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm

  Log Message:
  ---
  [iOS] run keyboard scrolling animations at a higher frame rate when possible
https://bugs.webkit.org/show_bug.cgi?id=268850
rdar://122323815

Reviewed by Simon Fraser.

In 273122@main we opted into higher frame rate animations when performed by 
Core Animation on
qualifying hardware. We now do the same with scrolling animations resulting 
from interacting
with the keyboard (such as pressing the space bar) by setting similar 
properties on the
`CADisplayLink` created by `WKKeyboardScrollingAnimator`. Because we now have 
two different
places where we opt into a higher frame rate, we distinguish between the two 
cases by using
a different `CAHighFrameRateReason` value.

* Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h:
* Source/WebKit/Platform/cocoa/CAFrameRateRangeUtilities.h: Added.
(WebKit::highFrameRateRange):
* Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator startDisplayLinkIfNeeded]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::createAnimation):
(highFrameRateRange): Deleted.

Canonical link: https://commits.webkit.org/274234@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5a4bed: `RenderBox::requiresLayer()` should share code wit...

2024-02-07 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5a4bed0757cb568219e492c6ee45dd80e24fefe7
  
https://github.com/WebKit/WebKit/commit/5a4bed0757cb568219e492c6ee45dd80e24fefe7
  Author: Antoine Quint 
  Date:   2024-02-07 (Wed, 07 Feb 2024)

  Changed paths:
M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  ---
  `RenderBox::requiresLayer()` should share code with superclass
https://bugs.webkit.org/show_bug.cgi?id=268937
rdar://122490562

Reviewed by Simon Fraser.

The `RenderBox::requiresLayer()` method duplicates code found in its superclass.
We now call `RenderBoxModelObject::requiresLayer()` instead.

* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::requiresLayer const):

Canonical link: https://commits.webkit.org/274270@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 4f259d: [threaded-animation-resolution] only set `opacity`...

2024-02-12 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4f259dc1446ec3ebd687fe2fc588b56e7b21af4d
  
https://github.com/WebKit/WebKit/commit/4f259dc1446ec3ebd687fe2fc588b56e7b21af4d
  Author: Antoine Quint 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm

  Log Message:
  ---
  [threaded-animation-resolution] only set `opacity` values if the effect stack 
requires it
https://bugs.webkit.org/show_bug.cgi?id=269146

Reviewed by Simon Fraser.

We added support for blending the `opacity` property with threaded animation 
resolution enabled with 274102@main.
However, we would set the blended opacity regardless of whether the effect 
stack targets that property. We now
check whether `opacity` is indeed targeted before doing any work to set it.

* Source/WebCore/platform/animation/AcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::setEffects):
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromMainThread):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromScrollingThread const):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromMainThread const):

Canonical link: https://commits.webkit.org/274478@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a22a2b: [threaded-animation-resolution] add support for bl...

2024-02-12 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a22a2bc8c50a344b844e5bec2372f4752e703529
  
https://github.com/WebKit/WebKit/commit/a22a2bc8c50a344b844e5bec2372f4752e703529
  Author: Antoine Quint 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
M Source/WebCore/animation/WebAnimationTypes.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebCore/platform/animation/AcceleratedEffectValues.cpp
M Source/WebCore/platform/animation/AcceleratedEffectValues.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm

  Log Message:
  ---
  [threaded-animation-resolution] add support for blending `transform` values
https://bugs.webkit.org/show_bug.cgi?id=269226

Reviewed by Simon Fraser.

We've added the general system to blend accelerated properties with 274102@main.
We now add support for blending the transform-related properties affecting the
`CALayer.transform` property. To do this, we need to provide the 
`RemoteAcceleratedEffectStack`
with the bounds of the targeted layer. Note that we don't yet account for the
various properties defined by CSS Motion Path, but only account for the CSS
properties `transform`, `translate`, `scale` and `rotate`.

* Source/WebCore/animation/WebAnimationTypes.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):
(WebCore::AcceleratedEffect::apply):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
* Source/WebCore/platform/animation/AcceleratedEffectValues.cpp:
(WebCore::AcceleratedEffectValues::computedTransformationMatrix const):
* Source/WebCore/platform/animation/AcceleratedEffectValues.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::create):
(WebKit::RemoteAcceleratedEffectStack::RemoteAcceleratedEffectStack):
(WebKit::RemoteAcceleratedEffectStack::setEffects):
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromMainThread):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromScrollingThread const):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromMainThread const):
(WebKit::RemoteAcceleratedEffectStack::computeValues const):
(WebKit::RemoteAcceleratedEffectStack::clear):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274487@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6ec40a: [threaded-animation-resolution] add support for bl...

2024-02-12 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6ec40ab0f4a4f643e498e6bcdedd0b2a20f2291f
  
https://github.com/WebKit/WebKit/commit/6ec40ab0f4a4f643e498e6bcdedd0b2a20f2291f
  Author: Antoine Quint 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
M Source/WebCore/platform/graphics/ca/PlatformCAFilters.h
M Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm

  Log Message:
  ---
  [threaded-animation-resolution] add support for blending `filter` values
https://bugs.webkit.org/show_bug.cgi?id=269236

Reviewed by Simon Fraser.

We've added support for blending `opacity` with 274102@main and `transform`
with 274487@main. The last group of properties to support is those affecting
in the `CALayer.filters` property. This requires a bit more work than the
other properties since:

- the `drop-shadow()` property maps to separate `CALayer` properties,
- we cannot just compute a single `filters` value for all the other CSS
filter functions.

To that end we use a dedicated `CAPresentationModifier` per animated filter
function. An upcoming patch will ensure that only filter lists that support
interpolation (in other words, not discrete) make it up to the UIProcess,
thus guaranteeing a shared list of primitives. The canonical list of filter
functions can thus be obtained by looking at the longest list of operations
in the provided keyframes or the base value in the case where the 0% or 100%
keyframe is not explicitly provided.

That upcoming patch will also ensure that `drop-shadow()` is the last function
used in a filter list since otherwise the order in which the `CALayer.filters`
property and the properties used to reflect the `drop-shadow()` function won't
match.

This patch was co-authored with Matt Woodrow.

* Source/WebCore/platform/graphics/ca/PlatformCAFilters.h:
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(WebCore::keyValueCountForFilter):
(WebCore::PlatformCAFilters::presentationModifierCount):
(WebCore::passthroughFilter):
(WebCore::PlatformCAFilters::presentationModifiers):
(WebCore::PlatformCAFilters::updatePresentationModifiers):
(WebCore::PlatformCAFilters::setFiltersOnLayer):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::setEffects):
(WebKit::RemoteAcceleratedEffectStack::longestFilterList const):
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromMainThread):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromScrollingThread const):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromMainThread const):
(WebKit::RemoteAcceleratedEffectStack::computeValues const):
(WebKit::RemoteAcceleratedEffectStack::clear):

Canonical link: https://commits.webkit.org/274512@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7f0ea2: [threaded-animation-resolution] webanimations/seek...

2024-02-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f0ea2560ba1232e6f32da91332921f655652296
  
https://github.com/WebKit/WebKit/commit/7f0ea2560ba1232e6f32da91332921f655652296
  Author: Antoine Quint 
  Date:   2024-02-13 (Tue, 13 Feb 2024)

  Changed paths:
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp

  Log Message:
  ---
  [threaded-animation-resolution] 
webanimations/seeking-by-changing-delay-accelerated.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=269279
rdar://122856750

Reviewed by Simon Fraser.

On macOS, the `RemoteAcceleratedStack` ownership is transferred from the target 
`RemoteLayerTreeNode` to the
`RemoteLayerTreeEventDispatcher`. So when we set new effects, including the 
case where we remove them
altogether, we cannot rely on `RemoteLayerTreeNode::m_effectStack` being set 
because the effect stack would
have been transferred. So we need to call `animationsWereRemovedFromNode()` on 
the host through to the dispatcher
and call `RemoteAcceleratedStack::clear()` from there.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):
* 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::animationsWereRemovedFromNode):

Canonical link: https://commits.webkit.org/274549@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7591a3: [threaded-animation-resolution] add support for bl...

2024-02-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7591a3073e2887f58afca2dc56e6a3878e7e9c32
  
https://github.com/WebKit/WebKit/commit/7591a3073e2887f58afca2dc56e6a3878e7e9c32
  Author: Antoine Quint 
  Date:   2024-02-13 (Tue, 13 Feb 2024)

  Changed paths:
M Source/WebCore/platform/graphics/ca/PlatformCAFilters.h
M Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm

  Log Message:
  ---
  [threaded-animation-resolution] add support for blending `filter` values
https://bugs.webkit.org/show_bug.cgi?id=269236
rdar://122842684

Reviewed by Simon Fraser.

We've added support for blending `opacity` with 274102@main and `transform`
with 274487@main. The last group of properties to support is those affecting
in the `CALayer.filters` property. This requires a bit more work than the
other properties since:

- the `drop-shadow()` property maps to separate `CALayer` properties,
- we cannot just compute a single `filters` value for all the other CSS
filter functions.

To that end we use a dedicated `CAPresentationModifier` per animated filter
function. An upcoming patch will ensure that only filter lists that support
interpolation (in other words, not discrete) make it up to the UIProcess,
thus guaranteeing a shared list of primitives. The canonical list of filter
functions can thus be obtained by looking at the longest list of operations
in the provided keyframes or the base value in the case where the 0% or 100%
keyframe is not explicitly provided.

That upcoming patch will also ensure that `drop-shadow()` is the last function
used in a filter list since otherwise the order in which the `CALayer.filters`
property and the properties used to reflect the `drop-shadow()` function won't
match.

This patch was co-authored with Matt Woodrow.

* Source/WebCore/platform/graphics/ca/PlatformCAFilters.h:
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(WebCore::keyValueCountForFilter):
(WebCore::PlatformCAFilters::presentationModifierCount):
(WebCore::passthroughFilter):
(WebCore::PlatformCAFilters::presentationModifiers):
(WebCore::PlatformCAFilters::updatePresentationModifiers):
(WebCore::PlatformCAFilters::setFiltersOnLayer):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm:
(WebKit::RemoteAcceleratedEffectStack::setEffects):
(WebKit::RemoteAcceleratedEffectStack::longestFilterList const):
(WebKit::RemoteAcceleratedEffectStack::initEffectsFromMainThread):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromScrollingThread const):
(WebKit::RemoteAcceleratedEffectStack::applyEffectsFromMainThread const):
(WebKit::RemoteAcceleratedEffectStack::computeValues const):
(WebKit::RemoteAcceleratedEffectStack::clear):

Canonical link: https://commits.webkit.org/274587@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7d701b: [threaded-animation-resolution] avoid uploading a ...

2024-02-15 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d701b17b375c819c5f97de628c712e3b1ac51ba
  
https://github.com/WebKit/WebKit/commit/7d701b17b375c819c5f97de628c712e3b1ac51ba
  Author: Antoine Quint 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

  Log Message:
  ---
  [threaded-animation-resolution] avoid uploading a new effect stack to the 
UIProcess if it remains empty
https://bugs.webkit.org/show_bug.cgi?id=269451

Reviewed by Dean Jackson.

Fix the `GraphicsLayerCA::setAcceleratedEffectsAndBaseValues()` method to 
return early if the effect stack
remains empty in order to avoid a layer property change and a subsequent upload 
to the UIProcess.

* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274754@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c78d9e: [threaded-animation-resolution] discrete `filter` ...

2024-02-15 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c78d9eaa42973f6f2bb323b620ffc261d7d58a73
  
https://github.com/WebKit/WebKit/commit/c78d9eaa42973f6f2bb323b620ffc261d7d58a73
  Author: Antoine Quint 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  ---
  [threaded-animation-resolution] discrete `filter` interpolation should not be 
accelerated
https://bugs.webkit.org/show_bug.cgi?id=269449

Reviewed by Dean Jackson.

The CSS `filter` property animates discretely if two `filter` values do not 
have a shared initial list
of filter operations, as specified in 
https://drafts.fxtf.org/filter-effects/#interpolation-of-filters.
It does not make much sense to accelerate discrete animation of any value but, 
more importantly, the
system we use to animate `filter` in the UIProcess relies on 
`CAPresentationModifier` on macOS and
requires a known list of filter operations for initial setup, which falls apart 
if we are dealing
with mis-matching filter lists. As such we must make sure we don't create 
`AcceleratedEffect` objects
that contain `filter` values that will animate discretely.

We change `AcceleratedEffect::create()` to return a `RefPtr` rather than a 
`Ref` and only return a
value after running the new validation function `validateFilters()` which will 
find all keyframe
intervals, including those relying on implicit 0% and 100% keyframes, and check 
there is no
set of filters that will yield a discrete animation. If we find such a pair of 
filters, we remove
the property from the list of animated properties for those keyframes and the 
effect itself and,
should we not have a single animated property left, return a `nullptr` value.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::Keyframe::clearProperty):
(WebCore::AcceleratedEffect::create):
(WebCore::AcceleratedEffect::validateFilters):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274755@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 19bafb: [threaded-animation-resolution] animating `filter:...

2024-02-15 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 19bafb54016f558761e4510df10069d4194b5e2c
  
https://github.com/WebKit/WebKit/commit/19bafb54016f558761e4510df10069d4194b5e2c
  Author: Antoine Quint 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
M Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm

  Log Message:
  ---
  [threaded-animation-resolution] animating `filter: drop-shadow()` crashes the 
UIProcess
https://bugs.webkit.org/show_bug.cgi?id=269453

Reviewed by Dean Jackson.

We need to increase the presentation modifier list index prior to accessing the 
next
modifier when we're dealing with a `drop-shadow()` operation, otherwise we'd 
access
the `shadowOffset` presentation modifier to set the `shadowColor`, which of 
course
would lead an incorrect result, but more importantly yields an exception because
of mismatching value types.

* Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(WebCore::PlatformCAFilters::updatePresentationModifiers):

Canonical link: https://commits.webkit.org/274759@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6e1a46: [threaded-animation-resolution] add support for CS...

2024-02-15 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6e1a4631f5a8234497d346e367a31df3a29fcd23
  
https://github.com/WebKit/WebKit/commit/6e1a4631f5a8234497d346e367a31df3a29fcd23
  Author: Antoine Quint 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/animation/WebAnimationTypes.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffectValues.cpp
M Source/WebCore/platform/animation/AcceleratedEffectValues.h
M Source/WebCore/platform/animation/AnimationUtilities.h
M Source/WebCore/rendering/MotionPath.cpp
M Source/WebCore/rendering/MotionPath.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  ---
  [threaded-animation-resolution] add support for CSS Motion Path properties
https://bugs.webkit.org/show_bug.cgi?id=269503

Reviewed by Dean Jackson.

With threaded animation resolution we can now add support for accelerated 
interpolation
of CSS Motion Path properties, the `offset` shorthand and its longhands.

To do this, we need to add two new members to `AcceleratedEffectValues`:

std::optional transformOperationData;
TransformBox transformBox;

These two new members are required to be able to call into an alternate version 
of the
`MotionPath::applyMotionPathTransform()` method which works without a 
RenderStyle, but
rather using individual properties read from RenderStyle. We also adjust the 
`AcceleratedEffectValues`
constructor to take in a renderer to be able to set up those two new members.

This also required a small refactor related to `BlendingContext` since we need 
to be
able to adjust the context for discrete interpolation in the case of the 
`offset-rotate`
property which has an ASSERT() to check we only call its blending function for 
a discrete
interpolation if the context reflects that.

* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendStandardProperty):
* Source/WebCore/animation/WebAnimationTypes.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):
(WebCore::AcceleratedEffect::apply):
(WebCore::AcceleratedEffect::animatesTransformRelatedProperty const):
* Source/WebCore/platform/animation/AcceleratedEffectValues.cpp:
(WebCore::AcceleratedEffectValues::AcceleratedEffectValues):
(WebCore::AcceleratedEffectValues::clone const):
(WebCore::AcceleratedEffectValues::computedTransformationMatrix const):
* Source/WebCore/platform/animation/AcceleratedEffectValues.h:
(WebCore::AcceleratedEffectValues::AcceleratedEffectValues):
* Source/WebCore/platform/animation/AnimationUtilities.h:
(WebCore::BlendingContext::normalizeProgress):
* Source/WebCore/rendering/MotionPath.cpp:
(WebCore::MotionPath::applyMotionPathTransform):
* Source/WebCore/rendering/MotionPath.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/274803@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] aaf861: [threaded-animation-resolution] blend `filter` and...

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aaf8614e609310a5e334b3d44f3b6d77b6ce5a95
  
https://github.com/WebKit/WebKit/commit/aaf8614e609310a5e334b3d44f3b6d77b6ce5a95
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffect.cpp

  Log Message:
  ---
  [threaded-animation-resolution] blend `filter` and `backdrodFilter`
https://bugs.webkit.org/show_bug.cgi?id=269562

Reviewed by Dean Jackson.

We added general support for blending filters in 274587@main so now we can 
actually
blend the `AcceleratedEffectValues` members that represent filters.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):

Canonical link: https://commits.webkit.org/274813@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 126e9c: [threaded-animation-resolution] don't accelerate s...

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 126e9c6fc2313c7e6232a538f382b8dbb6f3224c
  
https://github.com/WebKit/WebKit/commit/126e9c6fc2313c7e6232a538f382b8dbb6f3224c
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  ---
  [threaded-animation-resolution] don't accelerate size-dependent transform 
interpolation with if width and `height` are animated
https://bugs.webkit.org/show_bug.cgi?id=269563

Reviewed by Dean Jackson.

We fixed a case in 272022@main where animating `width` or `height` while also 
animating `translate` or `transform: translate()`
with relative values would require transform interpolation to not be 
accelerated.

We now do the same work with threaded animation resolution, which makes the 
following WPT tests pass:

- 
css/css-transforms/animation/transform-percent-with-width-and-height-separate.html:
 Added.
- css/css-transforms/animation/transform-percent-with-width-and-height.html: 
Added.
- 
css/css-transforms/animation/translate-percent-with-width-and-height-separate.html:
 Added.
- css/css-transforms/animation/translate-percent-with-width-and-height.html: 
Added.

* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::canBeAccelerated const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274815@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e7ee3a: [threaded-animation-resolution] don't accelerate t...

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e7ee3a4fe869d087dc98d27686c84c5e2343f2ee
  
https://github.com/WebKit/WebKit/commit/e7ee3a4fe869d087dc98d27686c84c5e2343f2ee
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  ---
  [threaded-animation-resolution] don't accelerate transform interpolation on 
inline renderers
https://bugs.webkit.org/show_bug.cgi?id=269568

Reviewed by Dean Jackson.

Inline renderers don't support transform-related properties so there is no need 
to accelerate
interpolation of the transform property on such targets.

Since we now have several reasons why transform-related properties cannot be 
accelerated, we now
keep an `OptionSet` that indicates the set of 
accelerated properties that
were not allowed, passing it down to the `AcceleratedEffect` and removing the 
disallowed properties
all at once, including those that are marked at disallowed during construction 
of the `AcceleratedEffect`.

Now, when we encounter an inline renderer, we add the transform-related 
properties to the list
of disallowed properties.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::create):
(WebCore::AcceleratedEffect::AcceleratedEffect):
(WebCore::AcceleratedEffect::validateFilters):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274850@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c421da: [threaded-animation-resolution] don't accelerate f...

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c421dabfa6f1f22869daa21a724ddf6f05d15061
  
https://github.com/WebKit/WebKit/commit/c421dabfa6f1f22869daa21a724ddf6f05d15061
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffect.cpp

  Log Message:
  ---
  [threaded-animation-resolution] don't accelerate filter interpolation if a 
`drop-shadow()` operation is not last
https://bugs.webkit.org/show_bug.cgi?id=269591

Reviewed by Dean Jackson.

If a `filter` value is ever set on an animated target, we can only use 
accelerated interpolation if it contains a
`drop-shadow()` operation as its last operation. The reason we need to 
implement this constraint is because a
`CALayer` specifies drop shadow as a separate group of properties compared to 
other filters and is applied last.

We rewrite our keyframe lookup code to be more straightforward although 
possibly less efficient by using two separate
loops, one to create the list of relevant values for the animated filter 
property, and one to iterate over all values.
The previous code failed to handle some cases with implicit keyframes. As we 
iterate over the filter values, we now
find the longest list of filter operations and once we're done iterating, check 
that list for a `drop-shadow()` operation
and only validate the filter if it's last or absent.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::validateFilters):

Canonical link: https://commits.webkit.org/274877@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 8f9dae: [threaded-animation-resolution] avoid scheduling s...

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8f9dae218112f4584491b2f8c573392a470378f8
  
https://github.com/WebKit/WebKit/commit/8f9dae218112f4584491b2f8c573392a470378f8
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/AcceleratedEffect.h
M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  ---
  [threaded-animation-resolution] avoid scheduling style resolution while 
accelerated animations are entirely accelerated
https://bugs.webkit.org/show_bug.cgi?id=269592

Reviewed by Dean Jackson.

A key advantage of using accelerated animations is to avoid resolving styles on 
each animation frame if all animated
properties are accelerated. We now ensure that we do this correctly for 
threaded animation resolution.

To do so, we introduce a 1:1 link between a `KeyframeEffect` and its resulting 
`AcceleratedEffect` should one qualify
to be created with all the constraints around acceleration interpolation. We 
use a `WeakPtr<>` to establish this link,
ensuring that as soon as the accelerated effect is cleared, the link is broken.

With the accelerated representation of the keyframe effect now available, we 
can return `true` under the method
`KeyframeEffect::ticksContinuouslyWhileActive()` if one exists and has no 
disallowed properties set on it.

* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::ticksContinuouslyWhileActive const):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::validateFilters):
* Source/WebCore/platform/animation/AcceleratedEffect.h:
(WebCore::AcceleratedEffect::disallowedProperties const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/274881@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 74c0aa: REGRESSION (274086@main?): ASSERTION FAILED: lock....

2024-02-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 74c0aa4209e14edf714b16d023ac838b718120f8
  
https://github.com/WebKit/WebKit/commit/74c0aa4209e14edf714b16d023ac838b718120f8
  Author: Antoine Quint 
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm

  Log Message:
  ---
  REGRESSION (274086@main?): ASSERTION FAILED: lock.isHeld() in 
animationsWereRemovedFromNode() on 
http/tests/site-isolation/iframe-process-termination-after-navigation-completed.html
https://bugs.webkit.org/show_bug.cgi?id=269251
rdar://122838302

Reviewed by Cameron McCormack.

For atomicity, the transaction handling code was made to take the lock for the 
whole transaction
in `RemoteScrollingCoordinatorProxyMac::willCommitLayerAndScrollingTrees()` in 
273391@main. Since
`RemoteLayerTreeHost::remotePageProcessCrashed()` is a pseudo-transaction, it 
should also take
the lock.

* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::remotePageProcessCrashed):

Canonical link: https://commits.webkit.org/274882@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c40939: [threaded-animation-resolution] webanimations/tran...

2024-02-22 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c409399155163c223f7bb1bca5d54e71a8724b99
  
https://github.com/WebKit/WebKit/commit/c409399155163c223f7bb1bca5d54e71a8724b99
  Author: Antoine Quint 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M Source/WebCore/animation/KeyframeEffectStack.cpp
M Source/WebCore/animation/KeyframeEffectStack.h
M Source/WebCore/rendering/RenderBoxModelObject.cpp
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerCompositor.cpp
M Source/WebCore/style/Styleable.cpp
M Source/WebCore/style/Styleable.h

  Log Message:
  ---
  [threaded-animation-resolution] 
webanimations/transform-accelerated-animation-finishes-before-removal.html is a 
failure
https://bugs.webkit.org/show_bug.cgi?id=269278
rdar://122856408

Reviewed by Dean Jackson.

We need to ensure keyframe effects that are accelerated using threaded 
animation resolution cause the target element
to remain on a layer until the effect has completed. In the case of threaded 
animation resolution, because accelerated
effects run in the UIProcess, we cannot simply rely on whether the keyframe 
effect stack has a running effect indicating
it is accelerated, because it will no longer be "running" as soon as timing in 
the WebProcess resolves to such a state.

What we want is to ensure the target element remains on a layer until after 
that state has been propagated to the UIProcess.
To do so, we now set a list of all accelerated effects on the 
`KeyframeEffectStack` when we compute the latest accelerated
effect stack in RenderLayerBacking::updateAcceleratedEffectsAndBaseValues(). 
Then the keyframe effect stack can be queried
for the presence of at least one accelerated effect using 
`KeyframeEffectStack::hasAcceleratedEffects()`. We call this new
function in two spots:

1. `RenderLayerCompositor::requiresCompositingForAnimation()`
2. `Styleable::hasRunningAcceleratedAnimations()`

The latter was formerly called 
`Styleable::runningAnimationsAreAllAccelerated()` which, while named 
accurately, was not
doing what was required, which was to identify whether at least one animation 
was being run with acceleration. This method
is called under `RenderBox::requiresLayer()` and 
`RenderInline::requiresLayer()`.

This addresses the test regression with threaded animation resolution enabled.

* Source/WebCore/animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::hasAcceleratedEffects const):
* Source/WebCore/animation/KeyframeEffectStack.h:
(WebCore::KeyframeEffectStack::setAcceleratedEffects):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::hasRunningAcceleratedAnimations const):
(WebCore::Styleable::runningAnimationsAreAllAccelerated const): Deleted.
* Source/WebCore/style/Styleable.h:

Canonical link: https://commits.webkit.org/275178@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e6c8b8: [threaded-animation-resolution] remove WEBCORE_EXP...

2024-03-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6c8b884f6bfd98006e6bb209b5e171afeda29fc
  
https://github.com/WebKit/WebKit/commit/e6c8b884f6bfd98006e6bb209b5e171afeda29fc
  Author: Antoine Quint 
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
M Source/WebCore/rendering/PathOperation.h
M Source/WebCore/rendering/style/OffsetRotation.h

  Log Message:
  ---
  [threaded-animation-resolution] remove WEBCORE_EXPORT for some blend() methods
https://bugs.webkit.org/show_bug.cgi?id=270443
rdar://124007704

Reviewed by Anne van Kesteren.

Since blending is actually performed in WebCore, we don't need WEBCORE_EXPORT 
for
blending `PathOperation` and `OffsetRotation` values.

* Source/WebCore/rendering/PathOperation.h:
* Source/WebCore/rendering/style/OffsetRotation.h:

Canonical link: https://commits.webkit.org/275634@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c8d2cf: [web-animations] WPT test css/CSS2/visufx/animatio...

2024-03-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c8d2cfa80287c3ba41802e0a1f55782dbf541cca
  
https://github.com/WebKit/WebKit/commit/c8d2cfa80287c3ba41802e0a1f55782dbf541cca
  Author: Antoine Quint 
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt
M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  ---
  [web-animations] WPT test 
css/CSS2/visufx/animation/visibility-interpolation.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=270434

Reviewed by Antti Koivisto.

Interpolation of the "visibility" property is discrete when neither of the 
values for a given
animation interval is "visible", per 
https://drafts.csswg.org/web-animations-1/#animating-visibility.

This addresses the final failures in this test.

* 
LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

Canonical link: https://commits.webkit.org/275636@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b0b984: [threaded-animation-resolution] values passed to P...

2024-03-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b0b984415bbf462799a370f259f833f3e2983a80
  
https://github.com/WebKit/WebKit/commit/b0b984415bbf462799a370f259f833f3e2983a80
  Author: Antoine Quint 
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
M Source/WebCore/platform/graphics/ca/PlatformCALayer.h
M Source/WebCore/platform/graphics/ca/PlatformCALayer.mm
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm

  Log Message:
  ---
  [threaded-animation-resolution] values passed to 
PlatformCALayer::setAcceleratedEffectsAndBaseValues() should be const-qualified
https://bugs.webkit.org/show_bug.cgi?id=270451

Reviewed by Mike Wyrzykowski.

The values parameter of PlatformCALayer::setAcceleratedEffectsAndBaseValues() 
should be const-qualified.

* Source/WebCore/platform/graphics/ca/PlatformCALayer.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayer.mm:
(WebCore::PlatformCALayer::setAcceleratedEffectsAndBaseValues):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::setAcceleratedEffectsAndBaseValues):

Canonical link: https://commits.webkit.org/275643@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 052dae: [web-animations] add missing `DECLARE/DEFINE_ALLOC...

2024-03-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 052dae3e2b9941057872aa528dbaf7e4d1700ff4
  
https://github.com/WebKit/WebKit/commit/052dae3e2b9941057872aa528dbaf7e4d1700ff4
  Author: Antoine Quint 
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  ---
  [web-animations] add missing `DECLARE/DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER` 
for `NonNormalizedDiscretePropertyWrapper`
https://bugs.webkit.org/show_bug.cgi?id=270459

Reviewed by Chris Dumez.

We forgot to add `DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER` and 
`DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER`
calls when we added `NonNormalizedDiscretePropertyWrapper` in 273742@main.

* Source/WebCore/animation/CSSPropertyAnimation.cpp:

Canonical link: https://commits.webkit.org/275644@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 381e04: [css-transitions] imported/w3c/web-platform-tests/...

2024-03-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 381e0452f7dd2db7488e23ebd21f74f9fda93c1c
  
https://github.com/WebKit/WebKit/commit/381e0452f7dd2db7488e23ebd21f74f9fda93c1c
  Author: Antoine Quint 
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
M LayoutTests/TestExpectations
A 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-transitions/properties-value-inherit-001-expected.txt
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations

  Log Message:
  ---
  [css-transitions] 
imported/w3c/web-platform-tests/css/css-transitions/properties-value-001.html 
and 
imported/w3c/web-platform-tests/css/css-transitions/properties-value-inherit-001.html
 are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=203305

Reviewed by Antti Koivisto.

These tests are no longer flaky. What's more, had they not been marked as 
flaky, bots would have caught bug 269848.

* LayoutTests/TestExpectations:
* 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-transitions/properties-value-inherit-001-expected.txt:
 Added.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:

Canonical link: https://commits.webkit.org/275699@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 308a69: [threaded-animation-resolution] explicitly obtain ...

2024-03-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 308a69c33af35975cea167db50a89e7c29fb06a4
  
https://github.com/WebKit/WebKit/commit/308a69c33af35975cea167db50a89e7c29fb06a4
  Author: Antoine Quint 
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
M Source/WebCore/platform/animation/AcceleratedEffect.cpp

  Log Message:
  ---
  [threaded-animation-resolution] explicitly obtain ref-counted properties as 
references when blending
https://bugs.webkit.org/show_bug.cgi?id=270455

Reviewed by Dean Jackson.

Several properties of `AcceleratedEffectValues` are ref-counted and we access 
those when blending in `AcceleratedEffect`.
We don't currently mark those as references, so we should make it explicit 
since we don't want to increase the ref-counting.

* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):

Canonical link: https://commits.webkit.org/275704@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c31bee: [web-animations] remove unnecessary `return` state...

2024-03-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c31beeb0aa293d11b9d23a4c6f2f70cfda461dbe
  
https://github.com/WebKit/WebKit/commit/c31beeb0aa293d11b9d23a4c6f2f70cfda461dbe
  Author: Antoine Quint 
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  ---
  [web-animations] remove unnecessary `return` statement in 
`KeyframeEffect::applyPendingAcceleratedActions()`
https://bugs.webkit.org/show_bug.cgi?id=270576
rdar://124145663

Reviewed by Dean Jackson.

* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

Canonical link: https://commits.webkit.org/275755@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9d57f1: REGRESSION (iOS 17): Animation flicker with multip...

2024-03-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9d57f1f6519a812dda9dbb476a24ce8ed73c976c
  
https://github.com/WebKit/WebKit/commit/9d57f1f6519a812dda9dbb476a24ce8ed73c976c
  Author: Antoine Quint 
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
M LayoutTests/platform/glib/TestExpectations
A 
LayoutTests/webanimations/accelerated-animation-immediate-prevetion-direction-reverse-expected.txt
A 
LayoutTests/webanimations/accelerated-animation-immediate-prevetion-direction-reverse.html
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeEffectStack.cpp

  Log Message:
  ---
  REGRESSION (iOS 17): Animation flicker with multiple accelerated animations 
and direction change
https://bugs.webkit.org/show_bug.cgi?id=263996
rdar://117815004

Reviewed by Dean Jackson.

While we have a mechanism to deal with changes in ability to accelerate effects 
based on logic ran
at the KeyframeEffect level (see `KeyframeEffect::canBeAccelerated()`) we do 
not have anything
specific in place to deal with the inability to accelerate effects at the 
GraphicsLayerCA level.

In the case of reversed animations, or any playback rate other than 1, we 
reject acceleration
in GraphicsLayerCA in the static function `animationCanBeAccelerated()`. This 
happens while
accelerated actions are applied throughout a keyframe effect stack. With the 
existing system
in place, this would result in preventing acceleration in the next animation 
frame. This bug
showed this with animations being in an incorrect state for one single frame.

We now check in `KeyframeEffectStack::applyPendingAcceleratedActions()` whether 
the application
of pending accelerated actions resulted in an effect preventing acceleration of 
the effect
stack and now immediately stop all effects in that stack.

The newly added test would reliably fail prior to this patch.

* LayoutTests/platform/glib/TestExpectations:
* 
LayoutTests/webanimations/accelerated-animation-immediate-prevetion-direction-reverse-expected.txt:
 Added.
* 
LayoutTests/webanimations/accelerated-animation-immediate-prevetion-direction-reverse.html:
 Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::effectStackNoLongerAllowsAccelerationDuringAcceleratedActionApplication):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::applyPendingAcceleratedActions const):

Canonical link: https://commits.webkit.org/275773@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 319ecb: :empty selector with animation not working properly

2024-03-08 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 319ecb9c28e377b3bd11e6cbd878008f84e87bb7
  
https://github.com/WebKit/WebKit/commit/319ecb9c28e377b3bd11e6cbd878008f84e87bb7
  Author: Antoine Quint 
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation.html
M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  ---
  :empty selector with animation not working properly
https://bugs.webkit.org/show_bug.cgi?id=269051
rdar://122838142

Reviewed by Antti Koivisto.

If an element is targeted by an animation, it may cause style updates with an 
`AnimationOnly` resolution type.
When `Style::TreeResolver::resolveElement()` is called for that element, 
`resetStyleRelations()` is called on
that element first under `Style::TreeResolver::resolveComposedTree()` while 
iterating through the composed tree.

If an `:empty` pseudo-class rule matches that element, that call to 
`resetStyleRelations()` will remove the
`StyleAffectedByEmpty` flag on that element, but it will not be recomputed 
under `resolveElement()` because when
`styleForStyleable()` is called the `AnimationOnly` resolution type will mean 
that we clone the cached last style
resolution style to return the `ResolvedStyle` value, clear of any relations.

We now avoid calling `resetStyleRelations()` if the resolution type is 
`AnimationOnly`, ensuring that relations
are preserved throughout animation updates.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/empty-pseudo-class-with-animation.html:
 Added.
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveComposedTree):

Canonical link: https://commits.webkit.org/275832@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e9e959: [web-animations] composed keyframe animation behav...

2024-03-09 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e9e959922d195e8daa40a74c08f00fe06a615206
  
https://github.com/WebKit/WebKit/commit/e9e959922d195e8daa40a74c08f00fe06a615206
  Author: Antoine Quint 
  Date:   2024-03-09 (Sat, 09 Mar 2024)

  Changed paths:
M LayoutTests/platform/glib/TestExpectations
M 
LayoutTests/webanimations/accelerated-animations-and-composite-expected.txt
M LayoutTests/webanimations/accelerated-animations-and-composite.html
A 
LayoutTests/webanimations/accelerated-animations-and-implicit-keyframes-expected.txt
A 
LayoutTests/webanimations/accelerated-animations-and-implicit-keyframes.html
M Source/WebCore/animation/BlendingKeyframes.cpp
M Source/WebCore/animation/BlendingKeyframes.h
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeEffectStack.cpp

  Log Message:
  ---
  [web-animations] composed keyframe animation behaves differently in Webkit 
than Firefox and Chrome
https://bugs.webkit.org/show_bug.cgi?id=269858
rdar://123777133

Reviewed by Dean Jackson.

The reported broken content for this bug used two animations targeting an 
accelerated property (`transform`)
and using an implicit keyframe in both cases. When we encounter an accelerated 
animation with an implicit
keyframe, we resolve the implicit keyframes using the underlying style.

In this case, this breaks the content because the underlying style should be 
used only for the first of the
two `transform` animations, and the second animation ought to use the output of 
the first animation to use as
its underlying value. Since that values will change for each animation frame, 
we have to not run accelerated
animations in this particular instance.

So we now analyze the effect stack in 
`KeyframeEffectStack::allowsAcceleration()` for a case where an effect
targets an accelerated property using an implicit keyframe when an effect lower 
down the stack is already
animating that property. If we find this to be the case, we disable 
acceleration throughout the stack.

Note that with threaded animation resolution, we are able to run this same 
scenario in the animation thread
because we correctly resolve an effect stack with implicit keyframes no matter 
the configuration. The code
path modified by this patch is not exercised when threaded animation resolution 
is enabled.

We add a new test devoted to testing implicit keyframes for accelerated 
properties and modify the existing
test for the `composite` property and acceleration to not contain implicit 
keyframes.

* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/webanimations/accelerated-animations-and-composite-expected.txt:
* LayoutTests/webanimations/accelerated-animations-and-composite.html:
* 
LayoutTests/webanimations/accelerated-animations-and-implicit-keyframes-expected.txt:
 Added.
* LayoutTests/webanimations/accelerated-animations-and-implicit-keyframes.html: 
Added.
* Source/WebCore/animation/BlendingKeyframes.cpp:
(WebCore::BlendingKeyframes::hasImplicitKeyframeForProperty const):
(WebCore::BlendingKeyframes::analyzeKeyframe):
* Source/WebCore/animation/BlendingKeyframes.h:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setBlendingKeyframes):
(WebCore::KeyframeEffect::analyzeAcceleratedProperties):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::allowsAcceleration const):

Canonical link: https://commits.webkit.org/275887@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e31e17: REGRESSION (273266@main?): [ macOS wk2 ] transitio...

2024-03-17 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e31e176abdf06a28a561b01eb4fa0eaa179d3aee
  
https://github.com/WebKit/WebKit/commit/e31e176abdf06a28a561b01eb4fa0eaa179d3aee
  Author: Antoine Quint 
  Date:   2024-03-17 (Sun, 17 Mar 2024)

  Changed paths:
M LayoutTests/platform/mac-wk2/TestExpectations
R LayoutTests/transitions/flex-transitions-expected.txt
R LayoutTests/transitions/flex-transitions.html

  Log Message:
  ---
  REGRESSION (273266@main?): [ macOS wk2 ] transitions/flex-transitions.html is 
a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=268406
rdar://121954966

Reviewed by Dean Jackson.

We can remove this test since it's entirely superseded by WPT tests under
the `imported/w3c/web-platform-tests/css/css-flexbox/animation` directory.

* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/transitions/flex-transitions-expected.txt: Removed.
* LayoutTests/transitions/flex-transitions.html: Removed.

Canonical link: https://commits.webkit.org/276249@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 64ea9d: [web-animations] pause animation scheduling while ...

2024-03-20 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 64ea9d3d29ee05ce871c26618b8d340a5a578d28
  
https://github.com/WebKit/WebKit/commit/64ea9d3d29ee05ce871c26618b8d340a5a578d28
  Author: Antoine Quint 
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
M Source/WebCore/animation/DocumentTimeline.cpp
M Source/WebCore/animation/DocumentTimeline.h
M Source/WebCore/animation/WebAnimation.h
M Source/WebCore/animation/WebAnimationTypes.h
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/Styleable.cpp
M Source/WebCore/style/Styleable.h

  Log Message:
  ---
  [web-animations] pause animation scheduling while style-originated animations 
are being updated
https://bugs.webkit.org/show_bug.cgi?id=271311

Reviewed by Dean Jackson.

When we will be adding animation support for the `display` property (see bug 
267762) we will
need to resolve animations even when the underlying style has `display: none` 
to see whether
animations yield a different value. In that process, we may create 
style-originated animations
that will ultimately be canceled once we're certain `display: none` is still 
set. As it stands,
the creation of a style-originated animation will immediately lead to animation 
scheduling and
possibly be observable through Web content by the dispatch of animation events.

As such, in preparation for supporting the animation of the `display` property, 
we now pause
animation scheduling while we consider new style-originated animations. We now 
store new animations
that we create in a list as we start the 
`Style::TreeResolver::createAnimatedElementUpdate()`
process and once it completes, provided that list is not empty, we notify the 
`DocumentTimeline`
to schedule animation resolution in a single operation.

The purpose of using a list rather than just a boolean flag to signal 
style-originated animation
creation is that, as mentioned above, we will need to silently cancel those 
newly created animations
should the animated style have `display: none`.

* Source/WebCore/animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animationTimingDidChange):
(WebCore::DocumentTimeline::styleOriginatedAnimationsWereCreated):
* Source/WebCore/animation/DocumentTimeline.h:
* Source/WebCore/animation/WebAnimation.h:
(WebCore::WebAnimation::isEffectInvalidationSuspended const):
(WebCore::WebAnimation::isEffectInvalidationSuspended): Deleted.
* Source/WebCore/animation/WebAnimationTypes.h:
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::updateCSSTransitionsForStyleableAndProperty):
(WebCore::Styleable::updateCSSTransitions const):
* Source/WebCore/style/Styleable.h:

Canonical link: https://commits.webkit.org/276414@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 28a06f: [web-animations] add support for canceling style-o...

2024-03-21 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 28a06fc72f32a1ccbb5a3a09924253efb4a5469e
  
https://github.com/WebKit/WebKit/commit/28a06fc72f32a1ccbb5a3a09924253efb4a5469e
  Author: Antoine Quint 
  Date:   2024-03-21 (Thu, 21 Mar 2024)

  Changed paths:
M Source/WebCore/animation/StyleOriginatedAnimation.cpp
M Source/WebCore/animation/StyleOriginatedAnimation.h
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/animation/WebAnimation.h
M Source/WebCore/style/Styleable.cpp
M Source/WebCore/style/Styleable.h

  Log Message:
  ---
  [web-animations] add support for canceling style-originated animations 
silently
https://bugs.webkit.org/show_bug.cgi?id=271365

Reviewed by Antti Koivisto.

When we will be adding animation support for the `display` property (see bug 
267762) we will
need to resolve animations even when the underlying style has `display: none` 
to see whether
animations yield a different value. In that process, we may create 
style-originated animations
that will ultimately be canceled once we're certain `display: none` is still 
set.

In 276414@main we created a list of style-originated animations created during 
a style update.

We now add support for canceling that group of style-originated animations in a 
way that is not
script observable, or "silently" in Web Animations parlance.

Once we get to add animation support for the `display` property proper, we will 
add a call to
`StyleOriginatedAnimation::cancelFromStyle()` with the list of newly-created 
style-originated
animations that require silent cancelation.

* Source/WebCore/animation/StyleOriginatedAnimation.cpp:
(WebCore::StyleOriginatedAnimation::cancel):
(WebCore::StyleOriginatedAnimation::cancelFromStyle):
* Source/WebCore/animation/StyleOriginatedAnimation.h:
* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::cancel):
* Source/WebCore/animation/WebAnimation.h:
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::cancelStyleOriginatedAnimations const):
* Source/WebCore/style/Styleable.h:
(WebCore::Styleable::cancelStyleOriginatedAnimations):

Canonical link: https://commits.webkit.org/276453@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 531dc1: [web-animations] make the `display` property anima...

2024-03-21 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 531dc1cbbb66a57f3f8a0dfd97add5f2e1ed4a5c
  
https://github.com/WebKit/WebKit/commit/531dc1cbbb66a57f3f8a0dfd97add5f2e1ed4a5c
  Author: Antoine Quint 
  Date:   2024-03-21 (Thu, 21 Mar 2024)

  Changed paths:
M 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/rendering/style/RenderStyle.cpp

  Log Message:
  ---
  [web-animations] make the `display` property animatable
https://bugs.webkit.org/show_bug.cgi?id=271372

Reviewed by Tim Nguyen.

As part of the work to add interpolation support for the `display` property 
(see bug 267762) we need
to make that property animatable. We add basic support with a new wrapper in 
CSSPropertyAnimation.cpp,
but more work will be needed to deal with the more tricky aspects of `display: 
none` values encountered
before and after applying animations during style resolution.

It is expected that the WPT test 
`css/css-display/animations/display-interpolation.html` now has FAIL
results since this test is not aware of `display` being an animatable property. 
That test is superseded
by `css/css-display/animations/display-interpolation.tentative.html` but both 
tests currently co-exist
in the WPT suite so we retain both of them.

Likewise, we alter the WPT test 
`web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html`
to no longer assume the `display` property is not animatable.

Finally, the test 
`imported/blink/fast/css-generated-content/pseudo-animation-display.html` now 
fails.
That test also fails in Chrome [0] after they've added animation support for 
the `display` property, but our
failures aren't the same. I've filed an issue with the CSS WG [1] to discuss 
this and ensure we get WPT coverage.

[0] 
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/TestExpectations;l=3487;bpv=1;bpt=1
[1] https://github.com/w3c/csswg-drafts/issues/10111

* 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::conservativelyCollectChangedAnimatableProperties const):

Canonical link: https://commits.webkit.org/276464@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6778ef: [web-animations] account for `display` animations ...

2024-03-21 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6778ef1c00cecfa2d9a145d371db33d01fd3a388
  
https://github.com/WebKit/WebKit/commit/6778ef1c00cecfa2d9a145d371db33d01fd3a388
  Author: Antoine Quint 
  Date:   2024-03-21 (Thu, 21 Mar 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/display.tentative-expected.txt
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/StyleUpdate.h
M Source/WebCore/style/Styleable.cpp

  Log Message:
  ---
  [web-animations] account for `display` animations when resolving style
https://bugs.webkit.org/show_bug.cgi?id=271386

Reviewed by Antti Koivisto.

While we added animation support for the `display` property in bug 271372 / 
276464@main, we are
not yet fully accounting for the possibility that the `display` property is 
animated when resolving
styles in Style::TreeResolver.

There are some subtleties there since, historically, transitions could not be 
started on an element
with `display: none` and setting `display: none` on an element with running 
style-originated animations
would cancel those animations.

In this patch we now call `createAnimatedElementUpdate()` under 
`Style::TreeResolver::resolveElement()`
even when the non-animated style has `display: none`. Within 
`createAnimatedElementUpdate()`, we now
keep track of the non-animated `display` value prior to updating animations, 
and when we're done compare
this value to its animated counterpart to determine whether animations affected 
`display`.

If after updating animations `display: none` is set and that value was not 
affected by animations, we
cancel any animation created in the process silently (see bug 271365 / 
276453@main) such that Web content
may not observe that those animations ever were created.

We also make sure to keep track of whether `display` was affected by updating 
animations as a new member
of the `ElementUpdate` struct such that when updating renderers in 
`RenderTreeUpdater::updateElementRenderer()`
we only cancel style-originated animations with a `display: none` style if that 
that `display` value did not
come from an animation. Otherwise, style-originated animations setting 
`display: none` would cancel themselves.

These changes allow us to pass the remainder of the WPT test coverage for 
animating `display`.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/display.tentative-expected.txt:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::ticksContinuouslyWhileActive const):
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::affectsRenderedSubtree):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
* Source/WebCore/style/StyleUpdate.h:
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::Styleable::updateCSSTransitions const):

Canonical link: https://commits.webkit.org/276531@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b8a264: [web-animations] imported/blink/fast/css-generated...

2024-03-22 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b8a264c14a4a53ba960db617db37dd97496811fc
  
https://github.com/WebKit/WebKit/commit/b8a264c14a4a53ba960db617db37dd97496811fc
  Author: Antoine Quint 
  Date:   2024-03-22 (Fri, 22 Mar 2024)

  Changed paths:
R 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display-expected.txt
R 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel-pseudo.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel-pseudo.tentative.html
M Source/WebCore/rendering/style/RenderStyle.h
M Source/WebCore/rendering/style/RenderStyleInlines.h
M Source/WebCore/rendering/style/RenderStyleSetters.h
M Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp
M Source/WebCore/rendering/style/StyleMiscNonInheritedData.h
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/StyleUpdate.h

  Log Message:
  ---
  [web-animations] 
imported/blink/fast/css-generated-content/pseudo-animation-display.html is a 
failure
https://bugs.webkit.org/show_bug.cgi?id=271375
rdar://125156782

Reviewed by Antti Koivisto.

Pseudo-elements represented by a `PseudoElement`, namely `::before` and 
`::after`, are torn down if
a `display: none` style is set. An exception to that rule is if such a 
pseudo-element is targeted
by a script-originated `Animation` object.

Now that the `display` property can be animated, it is possible that a 
`PseudoElement` is targeted
by an animation that will set `display: none`. So we now ensure that we no 
longer tear down such
`PseudoElement` objects.

To achieve this, first we move the `animationsAffectedDisplay` bit from 
`ElementUpdate` to `RenderStyle`,
renaming it as `hasDisplayAffectedByAnimations`, such that it is accessible 
throughout the style update
since pseudo-element style updates don't have access to the `ElementUpdate` 
yielded for that specific
pseudo-element, on the one yielded for their owner element.

Second, we also add a new static function 
`elementHasDisplayAnimationForPseudoId()` we we use within
`RenderTreeUpdater::GeneratedContent::updatePseudoElement()` to introduce 
another case where we don't
tear down `PseudoElement` objects if `display: none` is set: the case where 
such a pseudo-element is
targeted by an animation affecting the `display` property.

Finally, we can remove the now-outdated 
`imported/blink/fast/css-generated-content/pseudo-animation-display.html`
test and replace it with a new WPT test. That test is marked as tentative 
because I filed a CSS WG issue
(https://github.com/w3c/csswg-drafts/issues/10111) about whether the approach 
taken here is correct.

* 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display-expected.txt:
 Removed.
* 
LayoutTests/imported/blink/fast/css-generated-content/pseudo-animation-display.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel-pseudo.tentative-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel-pseudo.tentative.html:
 Added.
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::hasDisplayAffectedByAnimations const):
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::setHasDisplayAffectedByAnimations):
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp:
(WebCore::StyleMiscNonInheritedData::StyleMiscNonInheritedData):
(WebCore::StyleMiscNonInheritedData::operator== const):
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.h:
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
* Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::keyframeEffectStackForElementAndPseudoId):
(WebCore::elementIsTargetedByKeyframeEffectRequiringPseudoElement):
(WebCore::elementHasDisplayAnimationForPseudoId):
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
* Source/WebCore/style/StyleUpdate.h:

Canonical link: https://commits.webkit.org/276568@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 8c7683: [web-animations] update WPT import for web-animations

2024-04-03 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8c76831f0cd0eb86c40b9ef7940b86c31f8ecc2f
  
https://github.com/WebKit/WebKit/commit/8c76831f0cd0eb86c40b9ef7940b86c31f8ecc2f
  Author: Antoine Quint 
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/property-list.js
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/resources/side-effects-common.js
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/resources/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-current-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-current-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-current.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-in-effect-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-in-effect-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-in-effect.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-none-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-none-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/side-effects-of-animations-none.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/crashtests/color-mix-crashtest.html
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/crashtests/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/progress.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/progress.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/scroll-timeline-progress.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/scroll-timeline-progress.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/style-change-events.html
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/background-position-responsive-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/background-position-responsive.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/box-shadow-responsive-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/box-shadow-responsive.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/neutral-keyframe-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/neutral-keyframe-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/neutral-keyframe.html
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/responsive-test.js
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/toggle-animated-iframe-visibility.html
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/width-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/width.html
M LayoutTests/imported/w3c/web-platform-tests/web-animations/testcommon.js
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types

[webkit-changes] [WebKit/WebKit] fe617b: [css] update WPT import for css/support

2024-04-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fe617b32b76d6e3356759beccdfc77f994a8cf3a
  
https://github.com/WebKit/WebKit/commit/fe617b32b76d6e3356759beccdfc77f994a8cf3a
  Author: Antoine Quint 
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
M 
LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/compositing/isolation/animation/isolation-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/align-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/column-gap-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/justify-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/row-gap-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/transition-properties-not-animatable-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-source-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/discrete-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-break/animation/break-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/animation/color-scheme-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/animation/forced-color-adjust-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-content/content-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/animation/discrete-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-size-adjust-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/discrete-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/alignment-baseline-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/dominant-baseline-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/initial-letter-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-inline/baseline-source/baseline-source-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/animations/list-style-image-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/css-lists-no-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/float-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-shape-expected.txt
M 
LayoutTests

[webkit-changes] [WebKit/WebKit] c57ac8: [css-transitions] update WPT import for css-transi...

2024-04-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c57ac8243f5ade220fdcc698b977a7fb68eb4d04
  
https://github.com/WebKit/WebKit/commit/c57ac8243f5ade220fdcc698b977a7fb68eb4d04
  Author: Antoine Quint 
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/delete-image-set.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-computed.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-valid.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-rule-none.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/support/helper.js
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log

  Log Message:
  ---
  [css-transitions] update WPT import for css-transitions
https://bugs.webkit.org/show_bug.cgi?id=272145
rdar://125897282

Reviewed by Anne van Kesteren.

This import was performed against the WPT repository at 4019765ef5.

* LayoutTests/imported/w3c/resources/resource-files.json:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative-expected.txt:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/w3c-import.log:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/delete-image-set.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/w3c-import.log:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-computed.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-valid.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-rule-none.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/support/helper.js:
(root.supportsStartingStyle):
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log:

Canonical link: https://commits.webkit.org/277103@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 821bd0: [css-animations] update WPT import for css-animations

2024-04-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 821bd07f15ba9f701c476f496394d478ee324ec0
  
https://github.com/WebKit/WebKit/commit/821bd07f15ba9f701c476f496394d478ee324ec0
  Author: Antoine Quint 
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/add-pseudo-while-animating-001.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/cancel-update.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/pseudo-element-animation-with-marker.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-end-valid.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-start-valid.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationiteration-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationstart-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/w3c-import.log

  Log Message:
  ---
  [css-animations] update WPT import for css-animations
https://bugs.webkit.org/show_bug.cgi?id=272144
rdar://125897021

Reviewed by Anne van Kesteren.

This import was performed against the WPT repository at 4019765ef5.

* LayoutTests/imported/w3c/resources/import-expectations.json:
* LayoutTests/imported/w3c/resources/resource-files.json:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/add-pseudo-while-animating-001.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/cancel-update.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/pseudo-element-animation-with-marker.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-end-valid.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-start-valid.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationiteration-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationstart-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/w3c-import.log:
 Copied from 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log.
* LayoutTests/imported/w3c/web-platform-tests/css/css-animations/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/support/color-testcommon.js:
* 
LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js:
* LayoutTests/imported/w3c/web-platform-tests/css/support/numeric-testcommon.js:

Canonical link: https://commits.webkit.org/277105@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org

[webkit-changes] [WebKit/WebKit] 1166d9: [web-animations] web-animations/responsive/width.h...

2024-04-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1166d972ab8594ecf6202b5dfb7e4b9e674b2abe
  
https://github.com/WebKit/WebKit/commit/1166d972ab8594ecf6202b5dfb7e4b9e674b2abe
  Author: Antoine Quint 
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/width-expected.txt
M Source/WebCore/platform/Length.cpp

  Log Message:
  ---
  [web-animations] web-animations/responsive/width.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=272084

Reviewed by Antti Koivisto.

In 242527@main, a check was added to return a zero-length in cases where we 
were trying to
blending lengths with mixed types, but one used a keyword. In the case of the 
WPT test
web-animations/responsive/width.html which tested `width` blending between 
`min-content`
and a fixed value, this meant that we would always resolve a zero-width for the 
first half
such an animation, instead of returning `min-content`.

We adjust the change made in 242527@main to deal with "intrinsic" values 
specifically since
these will always yield discrete interpolation, as established by 
`canInterpolateLengths()`,
and thus we can return either the "from" or "to" value.

* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/width-expected.txt:
* Source/WebCore/platform/Length.cpp:
(WebCore::blendMixedTypes):

Canonical link: https://commits.webkit.org/277112@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b58ded: NEW TEST (277103@main): [ MacOS ] 2 tests in impor...

2024-04-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b58ded80e3678ecc9c6e31a11229b4d3f4a75e2f
  
https://github.com/WebKit/WebKit/commit/b58ded80e3678ecc9c6e31a11229b4d3f4a75e2f
  Author: Antoine Quint 
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
M LayoutTests/platform/mac/TestExpectations

  Log Message:
  ---
  NEW TEST (277103@main): [ MacOS ] 2 tests in 
imported/w3c/web-platform-tests/css are constant failure on x86 and Monterey
https://bugs.webkit.org/show_bug.cgi?id=272249
rdar://125991079

Unreviewed test gardening.

* LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/277156@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] df87a5: [web-animations] animation with a non-invertible m...

2024-06-28 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: df87a56d78cc80fa3d314ac800addc4b6b18e340
  
https://github.com/WebKit/WebKit/commit/df87a56d78cc80fa3d314ac800addc4b6b18e340
  Author: Antoine Quint 
  Date:   2024-06-28 (Fri, 28 Jun 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-007-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-007.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-no-transition-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-no-transition.html
M Source/WebCore/animation/BlendingKeyframes.cpp
M Source/WebCore/animation/BlendingKeyframes.h
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/platform/graphics/transforms/TransformOperations.cpp
M Source/WebCore/platform/graphics/transforms/TransformOperations.h

  Log Message:
  ---
  [web-animations] animation with a non-invertible matrix should not interpolate
https://bugs.webkit.org/show_bug.cgi?id=275993
rdar://130704075

Reviewed by Matt Woodrow.

We had three separate issues that would lead us to visually animate when one of 
the values in a given interval
is a non-invertible matrix:

1. The method that determines whether it's possible to interpolate between two 
`transform` values would only
account for `matrix()` values and not `matrix3d()`.

2. The `transform` property animation wrapper would not implement the 
`canInterpolate()` method and would thus
always indicate that two `transform` values could be interpolated. This caused 
CSS Transitions to run even when
the values would not a discrete interpolation.

3. Even if we correctly determined that two `transform` values should yield 
discrete interpolation, we would
delegate an accelerated animation to Core Animation and that animation's 
behavior would differ an visibly
interpolate.

In this patch, we fill all three issues.

First, we introduce a new `TransformOperations::containsNonInvertibleMatrix()` 
method which will check whether
a `matrix()` or `matrix3d()` value that is not invertible is contained in the 
list of transform operations. We
now use this function in 
`TransformOperations::shouldFallBackToDiscreteAnimation()` to address issue #1.

Then, we add a `canInterpolate()` implementation to 
`AcceleratedTransformOperationsPropertyWrapper` which calls
in the now-correct `TransformOperations::shouldFallBackToDiscreteAnimation()` 
to address issue #2.

Finally, we add a new flag on `BlendingKeyframes` to determine whether a 
keyframe contains a `transform` value
with a non-invertible matrix and we consult that flag in 
`KeyframeEffect::canBeAccelerated()` to determine whether
an animation should be delegated to Core Animation, addressing issue #3.

We add new WPT tests to check the correct interpolation behavior of `transform` 
when a non-invertible `matrix3d()`
value is used, that no CSS Transition can be started with such a value, and 
finally that no animation is visibly
run to catch the Core Animation case.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-007-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-007.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-no-transition-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-non-invertible-no-transition.html:
 Added.
* Source/WebCore/animation/BlendingKeyframes.cpp:
(WebCore::BlendingKeyframes::analyzeKeyframe):
* Source/WebCore/animation/BlendingKeyframes.h:
(WebCore::BlendingKeyframes::hasDiscreteTransformInterval const):
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::Keyf

[webkit-changes] [WebKit/WebKit] 268a01: [css-transitions] `display` transition to `none` d...

2024-06-30 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 268a017af767eade0ec58b3d1ce5965fa3136220
  
https://github.com/WebKit/WebKit/commit/268a017af767eade0ec58b3d1ce5965fa3136220
  Author: Antoine Quint 
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/CSSTransition-not-canceling.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/CSSTransition-not-canceling.tentative.html
M Source/WebCore/style/Styleable.cpp

  Log Message:
  ---
  [css-transitions] `display` transition to `none` does not work on Chrome for 
Developers blog
https://bugs.webkit.org/show_bug.cgi?id=275994

Reviewed by Tim Nguyen.

Historically, setting `display: none` on an element would cancel any running 
transition. However,
with the addition of `transition-behavior: allow-discrete` and the fact 
`display` supports discrete
animation, setting `display: none` if that value is being transitioned should 
not cancel running
transitions.

On top of that, after canceling running transitions, we'd bail out of 
considering any further transition,
so we would fail to transition the `display` value itself.

We now correctly handle this case by checking in 
`Styleable::updateCSSTransitions()` whether setting
`display: none` will yield a transition before canceling running transitions 
and bailing out of that
method.

This was not covered by existing WPT tests, as noted in 
https://github.com/web-platform-tests/wpt/issues/46753,
so we're adding a new WPT test that checks that we do not cancel running 
transitions when setting
`display: none` when `display` is getting transitioned.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/CSSTransition-not-canceling.tentative-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/CSSTransition-not-canceling.tentative.html:
 Added.
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::updateCSSTransitions const):

Canonical link: https://commits.webkit.org/280512@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9c6d47: [svg] make `d` a presentation attribute

2024-07-03 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9c6d47b82456c12d8c6a7bc9473f0f6e2de29b42
  
https://github.com/WebKit/WebKit/commit/9c6d47b82456c12d8c6a7bc9473f0f6e2de29b42
  Author: Antoine Quint 
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
M LayoutTests/TestExpectations
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt
M Source/WebCore/dom/StyledElement.cpp
M Source/WebCore/dom/StyledElement.h
M Source/WebCore/rendering/style/BasicShapes.h
M Source/WebCore/rendering/style/SVGRenderStyle.cpp
M Source/WebCore/style/StyleBuilderConverter.h
M Source/WebCore/svg/SVGElement.cpp
M Source/WebCore/svg/SVGElement.h
M Source/WebCore/svg/SVGFontFaceElement.cpp
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] make `d` a presentation attribute
https://bugs.webkit.org/show_bug.cgi?id=272509
rdar://126393877

Reviewed by Said Abou-Hallawa.

(This is the same patch as 277451@main which was reverted due to a Speedometer 
3 performance regression.
A flag has since been introduced to conditionally enable the `d` CSS property 
and this patch re-introduces
277451@main but gates the functionality behind that flag, which is still 
disabled by default. Fixing
the performance regression and enabling the flag is tracked by bug 276172.)

We now make the `d` SVG attribute map to the `d` CSS property as part of the 
presentation
attribute system by adding the required mapping under 
`SVGElement::cssPropertyIdForSVGAttributeName()`
and accounting for the path data set on the `SVGRenderStyle` in 
`pathFromPathElement()`.

We must also call `setPresentationalHintStyleIsDirty()` under 
`SVGPathElement::svgAttributeChanged()`,
matching the behavior of other SVG elements with presentation attributes.

The SVG presentation attribute system forwards the string value set on the SVG 
attribute to the
`MutableStyleProperties` object collecting the various matching CSS properties. 
But in the case
of the `d` property, path data can be large and unwieldy, so we override 
`collectPresentationalHintsForAttribute()`
on `SVGPathElement` and create a `CSSPathValue` with a copy of the (potentially 
animated)
`SVGPathByteStream` and call into a new variant of 
`StyledElement::addPropertyToPresentationalHintStyle()`
that takes in a `RefPtr&&`.

Finally, adding support for `d` as a presentation attribute revealed a mistake 
in 277297@main
where we accounted for the CSS `zoom` value when converting the `CSSPathValue`, 
but the `zoom`
property has no bearing in SVG. This broke the following tests:

* svg/zoom/page/zoom-coords-viewattr-01-b.svg
* svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html
* svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm

So we modified `BuilderConverter::convertSVGPath()` accordingly.
* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt:
* Source/WebCore/dom/StyledElement.cpp:
(WebCore::StyledElement::addPropertyToPresentationalHintStyle):
* Source/WebCore/dom/StyledElement.h:
* Source/WebCore/rendering/style/BasicShapes.h:
* Source/WebCore/rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::conservativelyCollectChangedAnimatableProperties 
const):
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertSVGPath):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
(WebCore::SVGElement::hasPresentationalHintsForAttribute const):
(WebCore::SVGElement::collectPresentationalHintsForAttribute):
(WebCore::SVGElement::svgAttributeChanged):
* Source/WebCore/svg/SVGElement.h:
* Source/WebCore/svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::attributeChanged):
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::path const):
(WebCore::SVGPathElement::collectPresentationalHintsForAttribute):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/280621@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notif

[webkit-changes] [WebKit/WebKit] fb1c6b: [svg] WPT test svg/path/property/mpath.svg is a fa...

2024-07-03 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fb1c6b94913ff523be3bc918d8179e3f912a7dcc
  
https://github.com/WebKit/WebKit/commit/fb1c6b94913ff523be3bc918d8179e3f912a7dcc
  Author: Antoine Quint 
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
M LayoutTests/TestExpectations
M Source/WebCore/rendering/svg/RenderSVGPath.cpp
M Source/WebCore/rendering/svg/RenderSVGPath.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.h
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] WPT test svg/path/property/mpath.svg is a failure
https://bugs.webkit.org/show_bug.cgi?id=272416
rdar://126398393

Reviewed by Nikolas Zimmermann.

While we have a mechanism in place to invalidate `` elements when its 
referenced
element has a change in its `d` SVG attribute value, we don't do that for the 
case where
the `d` value is set via the CSS property.

We now implement `styleDidChange()` in both the legacy and the LBSE renderer 
for SVG paths
and call into the private `SVGPathElement::invalidateMPathDependencies()` 
through the new
public method `SVGPathElement::pathDidChange()`.

* LayoutTests/TestExpectations:
* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::styleDidChange):
* Source/WebCore/rendering/svg/RenderSVGPath.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp:
(WebCore::LegacyRenderSVGPath::styleDidChange):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.h:
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::pathDidChange):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/280657@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d4bb9d: [svg] WPT test `svg/path/property/test_style_flush...

2024-07-05 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d4bb9d2c03f31fbe54cd1dc7fc27c6628567fe86
  
https://github.com/WebKit/WebKit/commit/d4bb9d2c03f31fbe54cd1dc7fc27c6628567fe86
  Author: Antoine Quint 
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] WPT test 
`svg/path/property/test_style_flush_on_dom_api_with_d_property.html` has 
failures
https://bugs.webkit.org/show_bug.cgi?id=272621
rdar://126400894

Reviewed by Nikolas Zimmermann.

Since path data can be set via style now, we must make sure that layout is 
updated when the various
`SVGGeometryElement` DOM methods are called for path-related computations, 
including `getTotalLength()`,
`getPointAtLength()` and the `SVGPathElement` method `getPathSegAtLength()`. 
This was already done
for the other `SVGGeometryElement` DOM APIs `isPointInFill()` and 
`isPointInStroke()`.

We also ensure that the `SVGPathByteStream` we use to run the necessary 
computations in those methods
is the one held on the `SVGRenderStyle` by making 
`SVGPathElement::pathByteStream()` account for it.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getTotalLength const):
(WebCore::SVGPathElement::getPointAtLength const):
(WebCore::SVGPathElement::getPathSegAtLength const):
(WebCore::SVGPathElement::pathByteStream const):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/280675@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f0209d: [svg] fix smart pointer warnings introduced in 280...

2024-07-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f0209d868259d210cb320bf204ddab8a87dbbb4c
  
https://github.com/WebKit/WebKit/commit/f0209d868259d210cb320bf204ddab8a87dbbb4c
  Author: Antoine Quint 
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
M Source/WebCore/rendering/svg/RenderSVGPath.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp

  Log Message:
  ---
  [svg] fix smart pointer warnings introduced in 280657@main
https://bugs.webkit.org/show_bug.cgi?id=276276
rdar://131201565

Reviewed by Tim Nguyen.

* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::styleDidChange):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp:
(WebCore::LegacyRenderSVGPath::styleDidChange):

Canonical link: https://commits.webkit.org/280707@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] db4bb3: [svg] fix smart pointer warnings introduced in 280...

2024-07-08 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: db4bb37b38dcfbedf24bac1d352094c240b53131
  
https://github.com/WebKit/WebKit/commit/db4bb37b38dcfbedf24bac1d352094c240b53131
  Author: Antoine Quint 
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
M Source/WebCore/svg/SVGPathElement.cpp

  Log Message:
  ---
  [svg] fix smart pointer warnings introduced in 280621@main
https://bugs.webkit.org/show_bug.cgi?id=276217
rdar://131103106

Reviewed by Charlie Wolfe.

* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::path const):
(WebCore::SVGPathElement::collectPresentationalHintsForAttribute):

Canonical link: https://commits.webkit.org/280751@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d08faf: REGRESSION (276531@main): Content flash when expan...

2024-07-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d08faf9fab62fcbe230979774bacbdc53684e816
  
https://github.com/WebKit/WebKit/commit/d08faf9fab62fcbe230979774bacbdc53684e816
  Author: Antoine Quint 
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-prevents-starting-in-subtree-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-prevents-starting-in-subtree.html
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/StyleTreeResolver.h
M Source/WebCore/style/Styleable.cpp
M Source/WebCore/style/Styleable.h

  Log Message:
  ---
  REGRESSION (276531@main): Content flash when expanding image viewer on eBay 
page
https://bugs.webkit.org/show_bug.cgi?id=275739
rdar://128178476

Reviewed by Alan Baradlay.

Listings on eBay can display a photo gallery which is contained within a 
subtree where
the `hidden` presentation attribute is toggled to show and hide the gallery. 
The `hidden`
attribute really governs whether `display: none` is applied. In that subtree, a 
forwards-filling
`opacity` CSS Animation is applied.

Prior to `276531@main`, when `Style::TreeResolver::resolveElement()` would be 
called under
`Style::TreeResolver::resolveComposedTree()` for an element with `display: 
none`, an empty
`ElementUpdate` would be returned and `resolveComposedTree()` would not process 
its children.

In `276531@main`, we modified `resolveElement()` such that this behavior would 
not only apply
to elements with a newly-set `display: none` style associated with them, 
excluding those with
a cached `display: none` style. This was done in the static function 
`affectsRenderedSubtree()`.

This meant that now, if an element within a `display: none` subtree had its 
style modified,
`resolveElement()` would be called for that entire subtree when it previously 
wouldn't have.
As a result, `createAnimatedElementUpdate()` would now be called and since this 
method had
only ever been called for elements not contained within a `display: none` 
subtree, it would
not consider that possibility and start CSS Animations in that subtree.

This is what caused the eBay regression because the forwards-filling animation 
meant to fade
the photo gallery in would be reapplied soon after the photo gallery was hidden 
after an
additional style update, and when that photo gallery would become visible 
again, the animation
was already in effect and the gallery did not have the expected computed 
`opacity` value.

To fix this, we capture a new `isInDisplayNoneTree` state on the `Parent` 
objects created as
we iterate through the composed tree in `resolveComposedTree()`. That new 
member identifies
whether that element or a parent has `display: none` set on it. Now we can pass 
that state
down to `createAnimatedElementUpdate()` and ultimately to 
`Styleable::updateCSSAnimations()`
and ultimately neglect to start new CSS Animations when the element in question 
is contained
within a `display: none` subtree.

We also removed the `affectsRenderedSubtree()` changed introduced in 
`276531@main` which simply
did not make much sense, and to ensure that elements with `display: none` that 
had their style
updated correctly updated their cached `display: none` style, we now return a 
non-empty
`ElementUpdate` and add that `ElementUpdate` to `m_update` in 
`resolveComposedTree()`.

Finally, we add a new WPT test that reduces the eBay behavior.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-prevents-starting-in-subtree-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-prevents-starting-in-subtree.html:
 Added.
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Parent::Parent):
(WebCore::Style::affectsRenderedSubtree):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoElement):
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
* Source/WebCore/style/StyleTreeResolver.h:
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
* Source/WebCore/style/Styleable.h:

Canonical link: https://commits.webkit.org/280876@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e33f42: [svg] setting `d: none` on a `` does not ove...

2024-07-16 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e33f42cd046adc916beddbf75157f692f6f22ad7
  
https://github.com/WebKit/WebKit/commit/e33f42cd046adc916beddbf75157f692f6f22ad7
  Author: Antoine Quint 
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/spaces-at-end-of-path-data-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none-expected.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none-ref.svg
A LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none.svg
M Source/WebCore/dom/StyledElement.cpp
M Source/WebCore/dom/StyledElement.h
M Source/WebCore/html/HTMLImageElement.h
M Source/WebCore/svg/SVGPathByteStream.h
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] setting `d: none` on a `` does not override the `d` SVG attribute
https://bugs.webkit.org/show_bug.cgi?id=276653

Reviewed by Nikolas Zimmermann.

If the `d` CSS property is set to `none`, the resulting `SVGRenderStyle::d()` 
value is `nullptr`.
We must account for this in `SVGPathElement::path()` and 
`SVGPathElement::pathByteStream()` and
return an empty path in the case that we don't have a `BasicShapePath` set on 
the style. In fact,
at long as the `d` CSS property is enabled, we should never return the SVG 
attribute value.

Making this code change alone yielded two test regressions:

- svg/custom/svg-curve-with-relative-coordinates.html
- svg/animations/path-animation.svg

Indeed, neither of those two tests explicitly sets the `d` SVG attribute, 
relying instead on `` or
the `pathSegList` DOM API to set the path data. The lack of a `d` SVG attribute 
means the traditional mechanism
to compile a list of presentation attributes for a `` attribute will not 
pick up the `d` property.

So we add a new method to collect additional presentational hints as was 
already done for the HTML ``
element, promoting the `collectExtraStyleForPresentationalHints()` method from 
`HTMLImageElement` to a virtual
method on `StyledElement` and making `SVGPathElement` override it. Using this 
method, we can collect the `d`
presentational hint if it hasn't already been picked up.

Finally, since the lack of accounting for `d: none` when rendering wasn't 
caught by existing tests, we add
a new WPT reftest.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/spaces-at-end-of-path-data-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none-expected.svg:
 Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none-ref.svg: 
Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-none.svg: 
Added.
* Source/WebCore/dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationalHintStyle):
* Source/WebCore/dom/StyledElement.h:
(WebCore::StyledElement::collectExtraStyleForPresentationalHints):
* Source/WebCore/html/HTMLImageElement.h:
* Source/WebCore/svg/SVGPathByteStream.h:
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::pathByteStream const):
(WebCore::SVGPathElement::path const):
(WebCore::SVGPathElement::collectPresentationalHintsForAttribute):
(WebCore::SVGPathElement::collectExtraStyleForPresentationalHints):
(WebCore::SVGPathElement::collectDPresentationalHint):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/281041@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 74dcb4: [web-animations] Physical properties should take p...

2024-08-27 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 74dcb4aac602ab55cee2d8b3f7e7b3ea263a538d
  
https://github.com/WebKit/WebKit/commit/74dcb4aac602ab55cee2d8b3f7e7b3ea263a538d
  Author: Antoine Quint 
  Date:   2024-08-27 (Tue, 27 Aug 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt
M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  ---
  [web-animations] Physical properties should take priority over logical 
properties
https://bugs.webkit.org/show_bug.cgi?id=277334
rdar://133278333

Reviewed by Antti Koivisto.

When processing the list of animated CSS properties for a keyframe provided via 
the JS API,
we must ensure that we group them in such a way that longhands win over 
shorthands and that
physical properties win over logical properties. We now divide CSS properties 
encountered
via the JS API in four distinct groups organized as follows:

1. logical shorthands
2. physical shorthands
3. logical longhands
4. physical longhands

In this list, the later properties win over the earlier properties.

This allows us to recover from 281543@main which regressed the two subtests 
that are now
PASS results again.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::processKeyframeLikeObject):

Canonical link: https://commits.webkit.org/282815@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bbf27b: [web-animations] make more logical shorthands anim...

2024-08-28 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bbf27b6fd16e812a861501de6a56137f4b9c7900
  
https://github.com/WebKit/WebKit/commit/bbf27b6fd16e812a861501de6a56137f4b9c7900
  Author: Antoine Quint 
  Date:   2024-08-28 (Wed, 28 Aug 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt
M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  ---
  [web-animations] make more logical shorthands animatable
https://bugs.webkit.org/show_bug.cgi?id=278773
rdar://134840433

Reviewed by Antti Koivisto.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

Canonical link: https://commits.webkit.org/282839@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5e9f0e: [css-animations] update CSS Animations WPT checkou...

2024-08-29 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5e9f0e1a1ab7b33ef6f8f0c240101d005ac6997e
  
https://github.com/WebKit/WebKit/commit/5e9f0e1a1ab7b33ef6f8f0c240101d005ac6997e
  Author: Antoine Quint 
  Date:   2024-08-29 (Thu, 29 Aug 2024)

  Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/imported/w3c/resources/resource-files.json
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/WEB_FEATURES.yml
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/WEB_FEATURES.yml
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-computed.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-computed.tentative.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-invalid.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-invalid.tentative.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-valid.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-valid.tentative.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-computed.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-computed.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-computed.tentative.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-invalid.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-invalid.tentative.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-valid.tentative-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-valid.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-valid.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/transition-ready-time-offscreen-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/transition-ready-time-offscreen.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/w3c-import.log

  Log Message:
  ---
  [css-animations] update CSS Animations WPT checkout to b20253e
https://bugs.webkit.org/show_bug.cgi?id=278856
rdar://134931962

Reviewed by Anne van Kesteren.

* LayoutTests/TestExpectations:
* LayoutTests/imported/w3c/resources/resource-files.json:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/WEB_FEATURES.yml:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed-expected.txt:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/jump-start-animation-before-phase.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/WEB_FEATURES.yml

[webkit-changes] [WebKit/WebKit] b78213: [css-animations] css/css-animations/jump-start-ani...

2024-08-29 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b782138edb7f3058d4a9b7a38a2439db6cd7c7bf
  
https://github.com/WebKit/WebKit/commit/b782138edb7f3058d4a9b7a38a2439db6cd7c7bf
  Author: Antoine Quint 
  Date:   2024-08-29 (Thu, 29 Aug 2024)

  Changed paths:
M LayoutTests/TestExpectations
M Source/WebCore/animation/AnimationEffect.cpp
M Source/WebCore/animation/AnimationEffectTiming.cpp
M Source/WebCore/animation/AnimationEffectTiming.h
M Source/WebCore/animation/ComputedEffectTiming.h
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeInterpolation.cpp
M Source/WebCore/animation/KeyframeInterpolation.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/animation/TimingFunction.cpp
M Source/WebCore/platform/animation/TimingFunction.h

  Log Message:
  ---
  [css-animations] css/css-animations/jump-start-animation-before-phase.html is 
a failure
https://bugs.webkit.org/show_bug.cgi?id=278855

Reviewed by Simon Fraser.

The `steps()` easing takes a "before" flag [0] that we only passed when calling
`TimingFunction::transformProgress()` when resolving the overall effect 
progress in
`AnimationEffectTiming::resolve()`.

But a `steps()` easing may be specified for a given keyframe interval, and as 
such
the `TimingFunction::transformProgress()` call site in 
`KeyframeInterpolation::interpolateKeyframes()`
needs to pass that flag in as well. We now expose that flag through 
`ResolvedEffectTiming`
and `ComputedEffectTiming` such that we may ultimately pass it over to the 
appropriate
method both in the non-accelerated codepath 
(`KeyframeEffect::setAnimatedPropertiesInStyle()`)
and the accelerated codepath (`AcceleratedEffect::apply()`).

This makes the recently-added WPT test 
`css/css-animations/jump-start-animation-before-phase.html`
pass since it used a `steps(1, jump-start)` easing in the before phase of a CSS 
Animation.

[0] https://www.w3.org/TR/css-easing-1/#before-flag

* LayoutTests/TestExpectations:
* Source/WebCore/animation/AnimationEffect.cpp:
(WebCore::AnimationEffect::getComputedTiming const):
* Source/WebCore/animation/AnimationEffectTiming.cpp:
(WebCore::AnimationEffectTiming::resolve const):
* Source/WebCore/animation/AnimationEffectTiming.h:
* Source/WebCore/animation/ComputedEffectTiming.h:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::getAnimatedStyle):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeInterpolation.cpp:
(WebCore::KeyframeInterpolation::interpolateKeyframes const):
* Source/WebCore/animation/KeyframeInterpolation.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::AcceleratedEffect::apply):
* Source/WebCore/platform/animation/TimingFunction.cpp:
(WebCore::TimingFunction::transformProgress const):
* Source/WebCore/platform/animation/TimingFunction.h:

Canonical link: https://commits.webkit.org/282933@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f87a80: [css-logical] split logical shorthand relative pri...

2024-08-30 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f87a80026fb4424c96649d7ae0fc73f18fe74480
  
https://github.com/WebKit/WebKit/commit/f87a80026fb4424c96649d7ae0fc73f18fe74480
  Author: Antoine Quint 
  Date:   2024-08-30 (Fri, 30 Aug 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/logical-shorthand-relative-prioritization-by-number-of-components.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/logical-shorthand-relative-prioritization-by-number-of-components.tentative.html

  Log Message:
  ---
  [css-logical] split logical shorthand relative prioritization animation test 
off from css/css-logical/animation-001.html as a dedicated tentative test
https://bugs.webkit.org/show_bug.cgi?id=278910
rdar://135006627

Reviewed by Anne van Kesteren.

Given the `logical` keyword for the `margin` shorthand, and other relative 
shorthands, is not stable yet,
as discussed in https://github.com/w3c/csswg-drafts/issues/1282, we split off 
the test in
`css/css-logical/animation-001.html` that relies on this feature and make a new 
test file marked `.tentative`.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animation-001.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/logical-shorthand-relative-prioritization-by-number-of-components.tentative-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/logical-shorthand-relative-prioritization-by-number-of-components.tentative.html:
 Added.

Canonical link: https://commits.webkit.org/282961@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 62c40c: [css-transitions] update CSS Transitions WPT check...

2024-09-03 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 62c40ce48382bc4a2b21dca4ef4216c129884922
  
https://github.com/WebKit/WebKit/commit/62c40ce48382bc4a2b21dca4ef4216c129884922
  Author: Antoine Quint 
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/WEB_FEATURES.yml
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/WEB_FEATURES.yml
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/reference/transition-test-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/reference/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-size-container-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-size-container.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transitions-retarget-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transitions-retarget.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log

  Log Message:
  ---
  [css-transitions] update CSS Transitions WPT checkout to a8d8c61
https://bugs.webkit.org/show_bug.cgi?id=279058
rdar://135188967

Reviewed by Anne van Kesteren.

* LayoutTests/imported/w3c/resources/resource-files.json:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/WEB_FEATURES.yml:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/WEB_FEATURES.yml:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/w3c-import.log:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/pseudo-element-transform.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/reference/transition-test-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/reference/w3c-import.log:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-size-container-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-size-container.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transitions-retarget-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transitions-retarget.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log:

Canonical link: https://commits.webkit.org/283098@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7f45cb: Transitioning Unregistered Custom Properties cause...

2024-09-03 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f45cbdcfbf577be7af7983df00fb20a55d918d6
  
https://github.com/WebKit/WebKit/commit/7f45cbdcfbf577be7af7983df00fb20a55d918d6
  Author: Antoine Quint 
  Date:   2024-09-03 (Tue, 03 Sep 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html
M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  ---
  Transitioning Unregistered Custom Properties cause a transition loop
https://bugs.webkit.org/show_bug.cgi?id=279012

Reviewed by Antti Koivisto.

There is no need to have special logic in 
`CSSPropertyAnimation::propertiesEqual()` to deal with the
various value variants held by `CSSCustomPropertyValue` since 
`CSSCustomPropertyValue::equals()`
already checks the two values have the same type and then performs the equality 
check. This will allow
variant types not previously explicitly tested by 
`CSSPropertyAnimation::propertiesEqual()` to be tested,
such as unregistered properties that have no explicit value type.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html:
 Added.
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::propertiesEqual):

Canonical link: https://commits.webkit.org/283099@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cd5cb9: [css-transitions] `getKeyframes()` returns the sam...

2024-09-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cd5cb94159722ad679077c4d11b48f9234ba65ad
  
https://github.com/WebKit/WebKit/commit/cd5cb94159722ad679077c4d11b48f9234ba65ad
  Author: Antoine Quint 
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html
M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  ---
  [css-transitions] `getKeyframes()` returns the same values for "from" and 
"to" with a custom property
https://bugs.webkit.org/show_bug.cgi?id=279514
rdar://135802510

Reviewed by Antti Koivisto.

We need to read the custom property from the keyframe's style, not the current 
computed style of the target element.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):

Canonical link: https://commits.webkit.org/283485@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ca687c: [css-transitions] `transition-behavior: allow-disc...

2024-09-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ca687c87a08016d042679fecc6536d3ec8f7175c
  
https://github.com/WebKit/WebKit/commit/ca687c87a08016d042679fecc6536d3ec8f7175c
  Author: Antoine Quint 
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html
M Source/WebCore/style/Styleable.cpp

  Log Message:
  ---
  [css-transitions] `transition-behavior: allow-discrete` may not start a 
transition for a custom property
https://bugs.webkit.org/show_bug.cgi?id=279516
rdar://135805387

Reviewed by Antti Koivisto.

When updating CSS Transitions for a target, we look at the previous style and 
the new style and compile
properties based on the `transition-property` value in both styles. If we 
encounter `all` we enter a specific
branch in `Styleable::updateCSSTransitions()` where we compile all properties 
that may have changed between
the two styles.

When we initially gather properties, any custom properties that is explicitly 
set via `transition-property` is
stored in a `transitionCustomProperties` hash.

In the case of custom properties, we have check in place to see if a given 
`StyleCustomPropertyData` object
has any animatable property to return early. This means that non-registered 
custom properties will be ignored.

But what goes wrong is that we previously would clear 
`transitionCustomProperties` if we're dealing with an `all`
case. This means that if `transition-property` was set to `all` for any of the 
styles being processed, any
non-registered custom property was ignored, even if it was explicitly set via 
`transition-property`.

We can simply remove the code that clears this hash.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html:
* Source/WebCore/style/Styleable.cpp:
(WebCore::Styleable::updateCSSTransitions const):

Canonical link: https://commits.webkit.org/283498@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a403c9: [scroll-animations] `animation-duration` should su...

2024-09-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a403c9cb7f54e41784b34adb9a3dcb8ab033dfbd
  
https://github.com/WebKit/WebKit/commit/a403c9cb7f54e41784b34adb9a3dcb8ab033dfbd
  Author: Antoine Quint 
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-duration-computed-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-events-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-range-animation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-keyframes-hidden-subject-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-keyframes-with-document-timeline-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-animation-range-update.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-keyframe-boundary-interpolation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-range-animation-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-with-transform-on-subject-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/change-animation-range-updates-play-state-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/svg-graphics-element-001-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/svg-graphics-element-002-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/svg-graphics-element-003-expected.txt
M Source/WebCore/animation/CSSAnimation.cpp
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/CSSToStyleMap.cpp
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/parser/CSSPropertyParser.cpp
M Source/WebCore/page/ios/ContentChangeObserver.cpp
M Source/WebCore/platform/animation/Animation.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp
M Source/WebCore/style/Styleable.cpp

  Log Message:
  ---
  [scroll-animations] `animation-duration` should support the `auto` value
https://bugs.webkit.org/show_bug.cgi?id=279513
rdar://135798959

Reviewed by Tim Nguyen.

We add "auto" as a new (default) value for the "animation-duration" property. 
This value maps
to "0s" in all scenarios where a scroll timeline is not involved. To represent 
the "auto" value,
we update `Animation::m_duration` to be a `MarkableDouble` and consider 
`std::nullopt` to be "auto".

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-duration-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-events-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-range-animation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-keyframes-hidden-subject-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-offset-keyframes-with-document-timeline-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-animation-range-update.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-tim

[webkit-changes] [WebKit/WebKit] 8ebc06: [css-transitions] update css/css-transitions WPT c...

2024-09-12 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8ebc06070d1307c22174db5c2dc08a22b04375a8
  
https://github.com/WebKit/WebKit/commit/8ebc06070d1307c22174db5c2dc08a22b04375a8
  Author: Antoine Quint 
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log

  Log Message:
  ---
  [css-transitions] update css/css-transitions WPT checkout to 121c2255ec
https://bugs.webkit.org/show_bug.cgi?id=279583
rdar://135860083

Reviewed by Antti Koivisto.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/custom-property-and-allow-discrete.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log:

Canonical link: https://commits.webkit.org/283550@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a08c3d: [css-animations] css/css-animations/animate-with-c...

2024-04-09 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a08c3d1966f92e32a037a51a30b99567a536cd4b
  
https://github.com/WebKit/WebKit/commit/a08c3d1966f92e32a037a51a30b99567a536cd4b
  Author: Antoine Quint 
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
M LayoutTests/css3/color/color-function-computed-style-expected.txt
M LayoutTests/css3/color/color-function-computed-style.html
M LayoutTests/css3/color/color-function-parsing-expected.txt
M LayoutTests/css3/color/color-function-parsing.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-color-mix-function-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-relative-color-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mix-out-of-gamut-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-mix-function-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-mix-function.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix-expected.txt
M LayoutTests/platform/ios/fast/forms/basic-inputs-expected.txt
M LayoutTests/platform/ios/fast/forms/basic-textareas-expected.txt
M LayoutTests/platform/ios/fast/forms/basic-textareas-quirks-expected.txt
M LayoutTests/platform/ios/fast/forms/input-appearance-disabled-expected.txt
M LayoutTests/platform/ios/fast/forms/input-disabled-color-expected.txt
M 
LayoutTests/platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt
M LayoutTests/platform/ios/fast/forms/placeholder-pseudo-style-expected.txt
M 
LayoutTests/platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt
M LayoutTests/platform/mac-ventura/fast/forms/basic-inputs-expected.txt
M 
LayoutTests/platform/mac-ventura/fast/forms/input-disabled-color-expected.txt
M 
LayoutTests/platform/mac-ventura/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt
M 
LayoutTests/platform/mac-ventura/fast/forms/placeholder-pseudo-style-expected.txt
M LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt
M LayoutTests/platform/mac/fast/forms/basic-textareas-expected.txt
M LayoutTests/platform/mac/fast/forms/basic-textareas-quirks-expected.txt
M LayoutTests/platform/mac/fast/forms/input-appearance-disabled-expected.txt
M LayoutTests/platform/mac/fast/forms/input-disabled-color-expected.txt
M 
LayoutTests/platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt
M LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt
M 
LayoutTests/platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt
M Source/WebCore/platform/graphics/ColorSerialization.cpp

  Log Message:
  ---
  [css-animations] css/css-animations/animate-with-color-mix.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=272083

Reviewed by Anne van Kesteren and Darin Adler.

The `assert_oklab_color()` function in `css/support/color-testcommon.js` 
rejected our serialization
for `oklab()` colors because they included scientific notation. Indeed, this is 
incorrect, since CSS
numbers ought not be serialized using scientific notation, as the css-color 
spec indicates [0]:

The component values are serialized in base 10; the L, a, b and C component 
values are serialized as 

And the CSSOM spec indicates the following for serialization of `` [1]:

A base-ten number using digits 0-9 (U+0030 to U+0039) in the shortest form 
possible, using “.” to
separate decimals (if any), rounding the value if necessary to not produce 
more than 6 decimals,
preceded by “-” (U+002D) if it is negative.
NOTE: scientific notation is not used.

Credit to Anne van Kesteren for pointing out the relevant spec text here and 
find the root cause
of this issue. So all we needed to do was change the way we serialized 
`oklab()` and `oklch()` colors.

This change required some rebaselining or the addition of fuzzy comparison in 
the case of the WPT
test `css/css-color/parsing/color-valid-color-mix-function.html`.

[0] https://drafts.csswg.org/css-color-4/#serializing-oklab-oklch
[1] https://drafts.csswg.org/cssom/#serializing-css-values

* LayoutTests/css3/color/color-function-computed-style-expected.txt:
* LayoutTests/css3/color/color-function-computed-style.html:
* LayoutTests/css3/color/color-function-parsing-expected.txt:
* LayoutTests/css3/color/color-function-parsing.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed

[webkit-changes] [WebKit/WebKit] 1b1ca4: [web-animations] changing the value of a transform...

2024-04-09 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1b1ca4437c16d15f3c9ef82ae0a103e71017678e
  
https://github.com/WebKit/WebKit/commit/1b1ca4437c16d15f3c9ef82ae0a103e71017678e
  Author: Antoine Quint 
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
A 
LayoutTests/webanimations/accelerated-translate-animation-underlying-value-changed-in-flight-expected.html
A 
LayoutTests/webanimations/accelerated-translate-animation-underlying-value-changed-in-flight.html
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h

  Log Message:
  ---
  [web-animations] changing the value of a transform property while that 
property is animated with an implicit keyframe does not update the animation
https://bugs.webkit.org/show_bug.cgi?id=272387

Reviewed by Dean Jackson.

Ensure we re-compute accelerated animations targeting a transform-related 
property if it uses an implicit keyframe.

* 
LayoutTests/webanimations/accelerated-translate-animation-underlying-value-changed-in-flight-expected.html:
 Added.
* 
LayoutTests/webanimations/accelerated-translate-animation-underlying-value-changed-in-flight.html:
 Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::propertiesContainTransformRelatedProperty):
(WebCore::KeyframeEffect::isRunningAcceleratedTransformRelatedAnimation const):
(WebCore::KeyframeEffect::transformRelatedPropertyDidChange):
(WebCore::KeyframeEffect::isTargetingTransformRelatedProperty const): Deleted.
* Source/WebCore/animation/KeyframeEffect.h:

Canonical link: https://commits.webkit.org/277257@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ffe128: [svg] update WPT import for svg/path/property

2024-04-09 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ffe1284b0eea55975a3c7e8278b5e112415f3b2d
  
https://github.com/WebKit/WebKit/commit/ffe1284b0eea55975a3c7e8278b5e112415f3b2d
  Author: Antoine Quint 
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/imported/w3c/resources/resource-files.json
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path-expected.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path-ref.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath-expected.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath-ref.svg
A LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/priority-expected.svg
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization.svg
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property.html
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/w3c-import.log

  Log Message:
  ---
  [svg] update WPT import for svg/path/property
https://bugs.webkit.org/show_bug.cgi?id=272414
rdar://126152918

Reviewed by Tim Nguyen.

Matching WPT revision: 149d525c8a.

* LayoutTests/imported/w3c/resources/resource-files.json:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle.svg:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path-expected.svg:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path-ref.svg:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/marker-path.svg: 
Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath-expected.svg:
 Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath-ref.svg: 
Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/path/property/mpath.svg: 
Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/priority-expected.svg:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization.svg:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property.html:
 Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/path/property/w3c-import.log:
* LayoutTests/TestExpectations:

Canonical link: https://commits.webkit.org/277289@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9757b8: [svg] add parsing and computed style support for t...

2024-04-10 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9757b8522b28f006be8992c06e37e98695e75979
  
https://github.com/WebKit/WebKit/commit/9757b8522b28f006be8992c06e37e98695e75979
  Author: Antoine Quint 
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/d-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/spaces-at-end-of-path-data-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-discrete-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/d-expected.txt
M 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/css/BasicShapeFunctions.cpp
M Source/WebCore/css/BasicShapeFunctions.h
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.h
M Source/WebCore/rendering/style/RenderStyle.h
M Source/WebCore/rendering/style/SVGRenderStyle.h
M Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp
M Source/WebCore/rendering/style/SVGRenderStyleDefs.h
M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  ---
  [svg] add parsing and computed style support for the `d` property
https://bugs.webkit.org/show_bug.cgi?id=272446

Reviewed by Ryosuke Niwa and Antti Koivisto.

The first step towards support for the `d` property (bug 234227) is parsing,
storing and serializing its value.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/d-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/spaces-at-end-of-path-data-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-discrete-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/d-expected.txt:
* 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml

[webkit-changes] [WebKit/WebKit] dd1ba3: [web-animations] add animation support for the `d`...

2024-04-10 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dd1ba3e2347f5c154bd98f5f5e4559d7ef6d081d
  
https://github.com/WebKit/WebKit/commit/dd1ba3e2347f5c154bd98f5f5e4559d7ef6d081d
  Author: Antoine Quint 
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-discrete-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/d-expected.txt
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/rendering/style/BasicShapes.h

  Log Message:
  ---
  [web-animations] add animation support for the `d` property
https://bugs.webkit.org/show_bug.cgi?id=272447

Reviewed by Antti Koivisto.

Add animation support for the `d` property. The remaining failures are 
contained within logic related to
how path data is blended and some normalization issues which will be tackled as 
follow-up changes.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-discrete-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/responsive/d-expected.txt:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* Source/WebCore/rendering/style/BasicShapes.h:

Canonical link: https://commits.webkit.org/277299@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9f5696: [svg] failures in svg/path/property/d-interpolatio...

2024-04-10 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9f56967acd268b43225aad71d19838ec6e4c
  
https://github.com/WebKit/WebKit/commit/9f56967acd268b43225aad71d19838ec6e4c
  Author: Antoine Quint 
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-004-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animate-path-animation-Mm-Aa-Z.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animate-path-animation-mM-aA-Z-inverse.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt
M Source/WebCore/svg/SVGPathBlender.cpp
M Source/WebCore/svg/SVGPathBlender.h

  Log Message:
  ---
  [svg] failures in svg/path/property/d-interpolation-relative-absolute.html
https://bugs.webkit.org/show_bug.cgi?id=272457

Reviewed by Antti Koivisto.

We failed to reset the current point when processing a "z" commands while 
blending paths.
This is specified by 
https://www.w3.org/TR/SVG2/paths.html#PathDataClosePathCommand:

"If a "closepath" is followed immediately by a "moveto", then the "moveto" 
identifies the
start point of the next subpath. If a "closepath" is followed immediately by 
any other
command, then the next subpath starts at the same initial point as the current 
subpath."

This matches the logic implemented by `SVGPathAbsoluteConverter` which also 
concerns
itself with converting between relative and absolute path commands.

* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-004-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animate-path-animation-Mm-Aa-Z.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animate-path-animation-mM-aA-Z-inverse.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt:
* Source/WebCore/svg/SVGPathBlender.cpp:
(WebCore::SVGPathBlender::blendMoveToSegment):
(WebCore::SVGPathBlender::blendAnimatedPath):
* Source/WebCore/svg/SVGPathBlender.h:

Canonical link: https://commits.webkit.org/277360@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 36ce94: [svg] clean up expectations for SVG WPT tests

2024-04-10 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 36ce94c03e4d66cd1b9f1576c79945382eaf2f3d
  
https://github.com/WebKit/WebKit/commit/36ce94c03e4d66cd1b9f1576c79945382eaf2f3d
  Author: Antoine Quint 
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
M LayoutTests/TestExpectations
R 
LayoutTests/imported/w3c/web-platform-tests/svg/painting/reftests/mask-print-expected.txt
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-monterey-wk2/TestExpectations
M LayoutTests/platform/mac/TestExpectations
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-002-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-021-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-022-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-023-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/markers-orient-001-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-context-001-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-context-002-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-order-001-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/percentage-attribute-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/percentage-expected.txt
R 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/property/priority-expected.txt

  Log Message:
  ---
  [svg] clean up expectations for SVG WPT tests
https://bugs.webkit.org/show_bug.cgi?id=272456
rdar://126206237

Unreviewed test gardening.

* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/painting/reftests/mask-print-expected.txt:
 Removed.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-monterey-wk2/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-002-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-021-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-022-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/marker-path-023-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/markers-orient-001-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-context-001-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-context-002-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/paint-order-001-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/percentage-attribute-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/painting/reftests/percentage-expected.txt:
 Removed.
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/property/priority-expected.txt:
 Removed.

Canonical link: https://commits.webkit.org/277362@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 712ee8: [svg] fix remaining failures in svg/path/property/...

2024-04-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 712ee8ac74c4a7b9a1af01ea8a5bf42a93da6f6c
  
https://github.com/WebKit/WebKit/commit/712ee8ac74c4a7b9a1af01ea8a5bf42a93da6f6c
  Author: Antoine Quint 
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt
M Source/WebCore/svg/SVGPathParser.cpp

  Log Message:
  ---
  [svg] fix remaining failures in 
svg/path/property/d-interpolation-relative-absolute.html and 
svg/path/property/d-interpolation-single.html
https://bugs.webkit.org/show_bug.cgi?id=272507

Reviewed by Antti Koivisto.

When parsing SVG path data, we mistakenly applied the normalization rules for 
the `rx` and `ry` parameters
to the arc commands no matter the parsing mode. Now we only do so when asked to 
normalize such that values
resulting from interpolation are not affected. This fixes the remaining 
failures in the interpolation tests
under the WPT `svg/path/property` directory.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-relative-absolute-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/d-interpolation-single-expected.txt:
* Source/WebCore/svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parseArcToSegment):

Canonical link: https://commits.webkit.org/277372@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0a5902: [svg] WPT test `svg/path/property/serialization.sv...

2024-04-11 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0a59024e40c4745f8182a5b7ad31fd3c6ca89cad
  
https://github.com/WebKit/WebKit/commit/0a59024e40c4745f8182a5b7ad31fd3c6ca89cad
  Author: Antoine Quint 
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization.svg

  Log Message:
  ---
  [svg] WPT test `svg/path/property/serialization.svg` fails to test computed 
style converts relative commands to  absolute commands in one subtest
https://bugs.webkit.org/show_bug.cgi?id=272517
rdar://126262327

Reviewed by Anne van Kesteren and Antti Koivisto.

The purpose of `svg/path/property/serialization.svg` is to check that relative 
commands are converted
to absolute commands when serializing through the computed style. Yet, one of 
the subtests failed to
do just that.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/serialization.svg:

Canonical link: https://commits.webkit.org/277380@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] fcaf70: [svg] WPT test svg/animations/animateMotion-keyPoi...

2024-04-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fcaf706998523701858ebe0ba15da4bcb372ddf1
  
https://github.com/WebKit/WebKit/commit/fcaf706998523701858ebe0ba15da4bcb372ddf1
  Author: Antoine Quint 
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animateMotion-keyPoints-001-expected.txt
M Source/WebCore/svg/SVGAnimationElement.cpp

  Log Message:
  ---
  [svg] WPT test svg/animations/animateMotion-keyPoints-001.html fails in 
WebKit only
https://bugs.webkit.org/show_bug.cgi?id=272602

Reviewed by Dean Jackson.

The SVG Animations spec says [0] that "the default value for the `calcMode` for 
`animateMotion`
is `paced`". Further, on this `paced` value, the spec says [1] "if `paced` is 
specified, any
`keyTimes` or `keySplines` will be ignored".

I believe that based on this, our implementation always disregarded `keyTimes` 
when resolving
animations for ``. However, 
`svg/animations/animateMotion-keyPoints-001.html`
has both `keyPoints` and `keyTimes` attributes and so WebKit ignores them. But 
the spec also
says [2] "SVG adds a `keyPoints` attribute to the `animateMotion` to provide 
precise control
of the velocity of motion path animations".

While the spec is convoluted in this area, it would make little sense to ignore 
`keyPoints`
for `` when it's been expressly added for the purpose of this 
animation type,
even though its `calcMode` is `paced` and `keyTimes` ought to be ignored. And 
in fact, Chrome
and Firefox both respect those attributes and passes this test.

So we change our implementation to use the `keyTimes` as specified via the 
attribute in
`startedActiveInterval()` to determine whether the animation is valid and then, 
in `updateAnimation()`,
call `calculatePercentFromKeyPoints()` to respect the `keyPoints` value in the 
case of an
`` element.

This will also be required to pass the WPT test `svg/path/property/mpath.svg` 
(see bug 272416)
which also uses an `` element with a `keyPoints`/`keyTimes` 
attribute combination.

[0] https://svgwg.org/specs/animations/#AnimateMotionElement
[1] https://svgwg.org/specs/animations/#CalcModeAttribute
[2] https://svgwg.org/specs/animations/#RelationshipToSMILAnimation

* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/animateMotion-keyPoints-001-expected.txt:
* Source/WebCore/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculatePercentFromKeyPoints const):
(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):

Canonical link: https://commits.webkit.org/277450@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5187e4: [svg] make `d` a presentation attribute

2024-04-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5187e475ef752de5bc38ae9570c26e03b2edbe14
  
https://github.com/WebKit/WebKit/commit/5187e475ef752de5bc38ae9570c26e03b2edbe14
  Author: Antoine Quint 
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
M LayoutTests/TestExpectations
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt
M Source/WebCore/dom/StyledElement.cpp
M Source/WebCore/dom/StyledElement.h
M Source/WebCore/rendering/style/BasicShapes.h
M Source/WebCore/rendering/style/SVGRenderStyle.cpp
M Source/WebCore/style/StyleBuilderConverter.h
M Source/WebCore/svg/SVGElement.cpp
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] make `d` a presentation attribute
https://bugs.webkit.org/show_bug.cgi?id=272509

Reviewed by Said Abou-Hallawa.

We now make the `d` SVG attribute map to the `d` CSS property as part of the 
presentation
attribute system by adding the required mapping under 
`SVGElement::cssPropertyIdForSVGAttributeName()`
and accounting for the path data set on the `SVGRenderStyle` in 
`pathFromPathElement()`.

We must also call `setPresentationalHintStyleIsDirty()` under 
`SVGPathElement::svgAttributeChanged()`,
matching the behavior of other SVG elements with presentation attributes.

The SVG presentation attribute system forwards the string value set on the SVG 
attribute to the
`MutableStyleProperties` object collecting the various matching CSS properties. 
But in the case
of the `d` property, path data can be large and unwieldy, so we override 
`collectPresentationalHintsForAttribute()`
on `SVGPathElement` and create a `CSSPathValue` with a copy of the (potentially 
animated)
`SVGPathByteStream` and call into a new variant of 
`StyledElement::addPropertyToPresentationalHintStyle()`
that takes in a `RefPtr&&`.

Finally, adding support for `d` as a presentation attribute revealed a mistake 
in 277297@main
where we accounted for the CSS `zoom` value when converting the `CSSPathValue`, 
but the `zoom`
property has no bearing in SVG. This broke the following tests:

* svg/zoom/page/zoom-coords-viewattr-01-b.svg
* svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html
* svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm

So we modified `BuilderConverter::convertSVGPath()` accordingly.

* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/getComputedStyle-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt:
* Source/WebCore/dom/StyledElement.cpp:
(WebCore::StyledElement::addPropertyToPresentationalHintStyle):
* Source/WebCore/dom/StyledElement.h:
* Source/WebCore/rendering/style/BasicShapes.h:
* Source/WebCore/rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::conservativelyCollectChangedAnimatableProperties 
const):
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertSVGPath):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::path const):
(WebCore::SVGPathElement::collectPresentationalHintsForAttribute):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/277451@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5523d8: [svg] WPT test svg/path/property/mpath.svg is a fa...

2024-04-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5523d849761542a73c18da6c2324dd88c6d8976e
  
https://github.com/WebKit/WebKit/commit/5523d849761542a73c18da6c2324dd88c6d8976e
  Author: Antoine Quint 
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
M LayoutTests/TestExpectations
M Source/WebCore/rendering/svg/RenderSVGPath.cpp
M Source/WebCore/rendering/svg/RenderSVGPath.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.h
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] WPT test svg/path/property/mpath.svg is a failure
https://bugs.webkit.org/show_bug.cgi?id=272416

Reviewed by Nikolas Zimmermann.

While we have a mechanism in place to invalidate `` elements when its 
referenced
element has a change in its `d` SVG attribute value, we don't do that for the 
case where
the `d` value is set via the CSS property.

We now implement `styleDidChange()` in both the legacy and the LBSE renderer 
for SVG paths
and call into the private `SVGPathElement::invalidateMPathDependencies()` 
through the new
public method `SVGPathElement::pathDidChange()`.

* LayoutTests/TestExpectations:
* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::styleDidChange):
* Source/WebCore/rendering/svg/RenderSVGPath.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.cpp:
(WebCore::LegacyRenderSVGPath::styleDidChange):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGPath.h:
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::pathDidChange):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/277453@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7356f4: [svg] WPT test `svg/path/property/test_style_flush...

2024-04-13 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7356f4b2ed16787880fb34b55415f3ec6569f20f
  
https://github.com/WebKit/WebKit/commit/7356f4b2ed16787880fb34b55415f3ec6569f20f
  Author: Antoine Quint 
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt
M Source/WebCore/svg/SVGPathElement.cpp
M Source/WebCore/svg/SVGPathElement.h

  Log Message:
  ---
  [svg] WPT test 
`svg/path/property/test_style_flush_on_dom_api_with_d_property.html` has 
failures
https://bugs.webkit.org/show_bug.cgi?id=272621

Reviewed by Nikolas Zimmermann.

Since path data can be set via style now, we must make sure that layout is 
updated when the various
`SVGGeometryElement` DOM methods are called for path-related computations, 
including `getTotalLength()`,
`getPointAtLength()` and the `SVGPathElement` method `getPathSegAtLength()`. 
This was already done
for the other `SVGGeometryElement` DOM APIs `isPointInFill()` and 
`isPointInStroke()`.

We also ensure that the `SVGPathByteStream` we use to run the necessary 
computations in those methods
is the one held on the `SVGRenderStyle` by making 
`SVGPathElement::pathByteStream()` account for it.

* 
LayoutTests/imported/w3c/web-platform-tests/svg/path/property/test_style_flush_on_dom_api_with_d_property-expected.txt:
* Source/WebCore/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getTotalLength const):
(WebCore::SVGPathElement::getPointAtLength const):
(WebCore::SVGPathElement::getPathSegAtLength const):
(WebCore::SVGPathElement::pathByteStream const):
* Source/WebCore/svg/SVGPathElement.h:

Canonical link: https://commits.webkit.org/277455@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 492603: [css-motion] update WPT import of css/motion/anima...

2024-04-22 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 492603712301eabf0c95bcd83eb4d0db0143a82a
  
https://github.com/WebKit/WebKit/commit/492603712301eabf0c95bcd83eb4d0db0143a82a
  Author: Antoine Quint 
  Date:   2024-04-22 (Mon, 22 Apr 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-007-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-007.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-math-functions-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-math-functions.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/ray-angle-interpolation-math-functions-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/ray-angle-interpolation-math-functions.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-path-interpolation-ref.html
R 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-with-transforms-ref.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/w3c-import.log
M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/w3c-import.log

  Log Message:
  ---
  [css-motion] update WPT import of css/motion/animation tests
https://bugs.webkit.org/show_bug.cgi?id=273054
rdar://126848099

Reviewed by Anne van Kesteren.

This matches the bfe3a92f9d revision of the WPT repository.

* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-007-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-007.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-math-functions-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-math-functions.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/ray-angle-interpolation-math-functions-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/ray-angle-interpolation-math-functions.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-path-interpolation-ref.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-with-transforms-ref.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/reftests/w3c-import.log:
* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/w3c-import.log:

Canonical link: https://commits.webkit.org/277807@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9b1d46: [view-transitions] https://simple-set-demos.glitch...

2024-04-22 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9b1d46ac8a7f149de038576205e6fbe8836b5670
  
https://github.com/WebKit/WebKit/commit/9b1d46ac8a7f149de038576205e6fbe8836b5670
  Author: Antoine Quint 
  Date:   2024-04-22 (Mon, 22 Apr 2024)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-easing/linear-timing-functions-syntax.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-easing/linear-timing-functions-syntax.tentative.html
M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

  Log Message:
  ---
  [view-transitions] https://simple-set-demos.glitch.me/bounce doesn't animate 
correctly
https://bugs.webkit.org/show_bug.cgi?id=273065
rdar://126856305

Reviewed by Tim Nguyen.

While it's not entirely clear to me what the parsing code for the `linear()` 
timing function
was attempting to do to resolve implicit input values into explicit values, the 
css-easing
spec at https://drafts.csswg.org/css-easing/#linear-easing-function-serializing 
specifies
a simple linear interpolation behavior since the last explicit value. This 
wasn't correctly
tested by WPT, so we now have a test for this.

This makes https://simple-set-demos.glitch.me/bounce work as expected since we 
not compute
the correct interpolated values during the bounce animation.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-easing/linear-timing-functions-syntax.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-easing/linear-timing-functions-syntax.tentative.html:
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLinear):

Canonical link: https://commits.webkit.org/277821@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 19c5bd: pral.com.pk - Double bounce animation compared to ...

2024-04-29 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 19c5bd914bfa1fb024e81ef201480315edd4bb7d
  
https://github.com/WebKit/WebKit/commit/19c5bd914bfa1fb024e81ef201480315edd4bb7d
  Author: Antoine Quint 
  Date:   2024-04-29 (Mon, 29 Apr 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/shadow-root-insertion-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/shadow-root-insertion.html
M Source/WebCore/dom/Element.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.h

  Log Message:
  ---
  pral.com.pk - Double bounce animation compared to other browsers
https://bugs.webkit.org/show_bug.cgi?id=273364
rdar://127188948

Reviewed by Antti Koivisto.

The site pral.com.pk has a list of images under their "ISO CERTIFICATIONS" 
section that are badges with text
rendered within the raster image. Those images run a transition when hovered. 
After a short while, the transition
is restarted, and this only happens in Safari, and only the first time a given 
image is hovered.

WebKit in Safari supports text recognition within images, performed 
asynchronously, and when text is detected
a user-agent shadow root is inserted within the  element to show 
additional UI. The addition of a shadow root
triggers a full renderer rebuild and this has the side effect of canceling all 
running style-originated animations
on that element.

This explains why the transition appears to restart, because the initial 
transition is canceled once text recognition
succeeds, and since the cursor is still over the image, a new transition 
immediately starts. Since the user-agent
shadow root remains attached, hovering over the image a second time does not 
exhibit the behavior.

We fixed a similar issue in the past with 240582@main to deal with a slot 
change while a transition is running on an
element and introduced a dedicated `TeardownType` value that distinguishes a 
full rebuild from a rebuild resulting
from a slot change.

We follow the same approach for the case where a shadow root is inserted, 
adding a new `tearDownRenderersForShadowRootInsertion()`
method which will call the same logic as `tearDownRenderersAfterSlotChange()`, 
with an inverse assertion as to whether
the provided element has a shadow root attached. This prompted some refactoring 
of `tearDownRenderers()` as well since
there is a lot of shared code with the aforementioned methods.

We test this with a new WPT test that would fail prior to this change but 
already works in Chrome and Firefox.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/shadow-root-insertion-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/shadow-root-insertion.html:
 Added.
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::addShadowRoot):
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
(WebCore::RenderTreeUpdater::tearDownRenderersForShadowRootInsertion):
(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):
* Source/WebCore/rendering/updating/RenderTreeUpdater.h:

Canonical link: https://commits.webkit.org/278156@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d1bb2b: [view-transitions] https://simple-set-demos.glitch...

2024-05-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d1bb2bd1b7a474e08ef8fb7c17d209e96c781a6f
  
https://github.com/WebKit/WebKit/commit/d1bb2bd1b7a474e08ef8fb7c17d209e96c781a6f
  Author: Antoine Quint 
  Date:   2024-05-06 (Mon, 06 May 2024)

  Changed paths:
A 
LayoutTests/webanimations/accelerated-animation-removed-permanently-when-forward-filling-expected.txt
A 
LayoutTests/webanimations/accelerated-animation-removed-permanently-when-forward-filling.html
M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  ---
  [view-transitions] https://simple-set-demos.glitch.me/dust-no-raf/ flickers 
more as animation is re-ran
https://bugs.webkit.org/show_bug.cgi?id=273649
rdar://127458540

Reviewed by Dean Jackson.

If an effect targeting an accelerated CSS property enters a phase [0] other 
than "active", for instance
when it's forward-filling, `KeyframeEffect::updateAcceleratedActions()` will 
enqueue a `Stop` accelerated
action for that animation and thus remove its matching accelerated animation on 
the next frame.

However, if an element is targeted by multiple animations for the same 
accelerated CSS property,
`KeyframeEffect::applyPendingAcceleratedActionsOrUpdateTimingProperties()` will 
process an
`UpdateProperties` accelerated action for all effects in the stack to ensure 
that they are indeed
running.

In the case of this demo, there are three forward-filling animations applied to 
the same element. A
bottom-most one targeting `transform`, then two animations targeting `opacity`. 
The first two animations
end early but the third animation runs longer and it is when that animation is 
the sole "active" animation
that we enter a state where the two mechanisms described above will 
intermittently remove the forward-filling
`opacity` animation and then re-start it in the next frame. This yields the 
visible flickering effect.

We now check that an animation is in the "active" phase before restarting it to 
ensure it is in the right
state when processing a keyframe effect stack.

[0] 
https://drafts.csswg.org/web-animations-1/#animation-effect-phases-and-states

* 
LayoutTests/webanimations/accelerated-animation-removed-permanently-when-forward-filling-expected.txt:
 Added.
* 
LayoutTests/webanimations/accelerated-animation-removed-permanently-when-forward-filling.html:
 Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::applyPendingAcceleratedActionsOrUpdateTimingProperties):

Canonical link: https://commits.webkit.org/278434@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a2fe0b: IntersectionObserver callback for a visible sentin...

2024-05-14 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a2fe0bd677be0835629265ce16d45907c52d4228
  
https://github.com/WebKit/WebKit/commit/a2fe0bd677be0835629265ce16d45907c52d4228
  Author: Antoine Quint 
  Date:   2024-05-14 (Tue, 14 May 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/intersection-observer/transform-animation-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/intersection-observer/transform-animation.html
M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  ---
  IntersectionObserver callback for a visible sentinel node within a container 
with CSS transform animations is triggered multiple times, but should only be 
triggered once
https://bugs.webkit.org/show_bug.cgi?id=273928
rdar://127804335

Reviewed by Simon Fraser.

Make sure we use RenderLayer::currentTransform() when querying the target's 
transform to ensure that it accounts
for accelerated animations. Indeed, RenderLayer::transform() will only account 
for the transform set on the
`RenderStyle` which does *not* update during the course of an accelerated 
property animation.

* 
LayoutTests/imported/w3c/web-platform-tests/intersection-observer/transform-animation-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/intersection-observer/transform-animation.html:
 Added.
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::computeVisibleRectsInContainer const):

Canonical link: https://commits.webkit.org/278763@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 596b3b: 120Hz requestAnimationFrame is not supported on iP...

2024-05-18 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 596b3b01497f3bd3b3ea653ec79ffc69d6f68b30
  
https://github.com/WebKit/WebKit/commit/596b3b01497f3bd3b3ea653ec79ffc69d6f68b30
  Author: Antoine Quint 
  Date:   2024-05-18 (Sat, 18 May 2024)

  Changed paths:
M Source/WebKit/Platform/cocoa/CAFrameRateRangeUtilities.h
M 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.mm

  Log Message:
  ---
  120Hz requestAnimationFrame is not supported on iPhone Pros, it is supported 
on iPad Pros
https://bugs.webkit.org/show_bug.cgi?id=272165
rdar://126067757

Reviewed by Simon Fraser.

In 273122@main we opted into higher frame rate animations when performed by 
Core Animation on
qualifying hardware. In 274234@main we did the same for scrolling animations 
resulting from
interacting with the keyboard (such as pressing the space bar).

We must do the same thing with the `CADisplayLink` created in 
`RemoteLayerTreeDrawingAreaProxyIOS`
which drives page rendering updates.

* Source/WebKit/Platform/cocoa/CAFrameRateRangeUtilities.h:
* 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.mm:
(-[WKDisplayLinkHandler initWithDrawingAreaProxy:]):

Canonical link: https://commits.webkit.org/278949@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 2e41b0: mask-mode breaks mask-size

2024-05-25 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2e41b0f5e31e945a4dc8ae2185e6a3183c0873af
  
https://github.com/WebKit/WebKit/commit/2e41b0f5e31e945a4dc8ae2185e6a3183c0873af
  Author: Antoine Quint 
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size.html
M LayoutTests/platform/ios/TestExpectations
M Source/WebCore/platform/graphics/BitmapImage.cpp
M Source/WebCore/platform/graphics/BitmapImage.h

  Log Message:
  ---
  mask-mode breaks mask-size
https://bugs.webkit.org/show_bug.cgi?id=264800
rdar://118396665

Reviewed by Simon Fraser.

In `BitmapImage::drawPattern()`, we should be using `createImageBuffer()` 
instead of `createAlignedImageBuffer()`
since we create the temporary `ImageBuffer` to work on the pixels of the image 
and, as such, should not be scaled
to match the `GraphicsContext` resolution.

We should use the `ImageBuffer` rect instead of tileRect when drawing to or 
from the `ImageBuffer` since the `tileRect`
is in the destination `GraphicsContext` coordinates.

Patch logic by Said Abou-Hallawa, refactoring and test by Antoine Quint.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-luminance-with-mask-size.html:
 Added.
* LayoutTests/platform/ios/TestExpectations:
* Source/WebCore/platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):
(WebCore::BitmapImage::drawLuminanceMaskPattern):
* Source/WebCore/platform/graphics/BitmapImage.h:

Canonical link: https://commits.webkit.org/279312@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c206b6: Adopt CADisplayLink on macOS 14

2024-06-04 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c206b6b473adbc878d70f41e79ec4b2dbe5dc157
  
https://github.com/WebKit/WebKit/commit/c206b6b473adbc878d70f41e79ec4b2dbe5dc157
  Author: Antoine Quint 
  Date:   2024-06-04 (Tue, 04 Jun 2024)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/platform/PlatformScreen.h
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/DisplayLink.h
R Source/WebKit/UIProcess/mac/DisplayLinkMac.cpp
A Source/WebKit/UIProcess/mac/DisplayLinkMac.mm
A Source/WebKit/UIProcess/mac/LegacyDisplayLinkMac.cpp
M Source/WebKit/UIProcess/mac/WKImmediateActionController.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  ---
  Adopt CADisplayLink on macOS 14
https://bugs.webkit.org/show_bug.cgi?id=274268
rdar://119217720

Reviewed by Simon Fraser.

The CADisplayLink API is newly available on macOS 14. We add a new 
`HAVE(CA_DISPLAY_LINK_MAC)`
directive and if it's not available, use a legacy codepath where 
`CVDisplayLink` is used instead,
in `LegacyDisplayLinkMac.cpp`, and when available use `CADisplayLink` in 
`DisplayLinkMac.mm`.

In order to preserve a similar behavior to `CVDisplayLink`, we spawn a 
dedicated thread for each
`CADisplayLink`. Note that on macOS, the creation of a `CADisplayLink` is done 
through `NSScreen`,
so we also export the `WebCore::screen()` method to be able to get the 
appropriate `NSScreen` for
a given `DisplayLink` instance.

Patch written with the help of Ben Nham.

* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h:
* Source/WebCore/platform/PlatformScreen.h:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/DisplayLink.h:
* Source/WebKit/UIProcess/mac/DisplayLinkMac.mm: Added.
(-[WKDisplayLinkHandler initWithScreen:client:]):
(-[WKDisplayLinkHandler threadWasCreated]):
(-[WKDisplayLinkHandler displayLinkFired:]):
(-[WKDisplayLinkHandler invalidate]):
(-[WKDisplayLinkHandler isRunning]):
(-[WKDisplayLinkHandler setRunning:]):
(-[WKDisplayLinkHandler nominalFramesPerSecond]):
(WebKit::DisplayLink::platformInitialize):
(WebKit::DisplayLink::platformFinalize):
(WebKit::DisplayLink::platformIsRunning const):
(WebKit::DisplayLink::platformStart):
(WebKit::DisplayLink::platformStop):
(WebKit::DisplayLink::displayLinkHandlerCallbackFired):
* Source/WebKit/UIProcess/mac/LegacyDisplayLinkMac.cpp: Renamed from 
Source/WebKit/UIProcess/mac/DisplayLinkMac.cpp.
(WebKit::DisplayLink::platformInitialize):
(WebKit::DisplayLink::platformFinalize):
(WebKit::DisplayLink::nominalFramesPerSecondFromDisplayLink):
(WebKit::DisplayLink::platformIsRunning const):
(WebKit::DisplayLink::platformStart):
(WebKit::DisplayLink::platformStop):
(WebKit::DisplayLink::displayLinkCallback):
* Source/WebKit/UIProcess/mac/WKImmediateActionController.mm:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/279701@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cf5ac8: [scroll-animations] update `ComputedEffectTiming` ...

2024-09-15 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cf5ac861157f59865809da65be40f10b33014cbe
  
https://github.com/WebKit/WebKit/commit/cf5ac861157f59865809da65be40f10b33014cbe
  Author: Antoine Quint 
  Date:   2024-09-15 (Sun, 15 Sep 2024)

  Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A Source/WebCore/animation/CSSNumberishTime.cpp
A Source/WebCore/animation/CSSNumberishTime.h
M Source/WebCore/animation/ComputedEffectTiming.h
M Source/WebCore/animation/ComputedEffectTiming.idl
M Source/WebCore/animation/ScrollTimeline.cpp
M Source/WebCore/animation/StyleOriginatedAnimation.cpp
M Source/WebCore/animation/ViewTimeline.cpp
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/animation/WebAnimationTypes.h

  Log Message:
  ---
  [scroll-animations] update `ComputedEffectTiming` to use `CSSNumberish`
https://bugs.webkit.org/show_bug.cgi?id=279727
rdar://136031059

Reviewed by Chris Dumez and Tim Nguyen.

To accommodate progress-based timelines (such as `ScrollTimeline` and 
`ViewTimeline`),
the following properties of `ComputedEffectTiming` have been updated to be 
`CSSNumberish`
(aka `double or CSSNumericValue`) to return `%` values: `localTime`, `endTime` 
and
`activeDuration`.

Before we do the work to actually compute such values, we update the IDL files 
for these
properties and back them with a new type called `CSSNumberishTime` which can 
automatically
convert from and to `CSSNumberish`. The benefit of `CSSNumberishTime` are 
twofold.

First, it removes the need to deal with `std::variant` switches and then the 
various units
which `CSSNumericValue` can represent with either "time" or "percentage" 
semantics and methods
to access such values.

Second, it supports various math operators to directly add, subtract and 
compare the time
or percentage values held by `CSSNumberishTime`. This will be critical when we 
adopt `CSSNumberish`
through more of the Web Animations API, especially with the `Animation` APIs 
which are used
throughout the Web Animations codebase currently as `Seconds`. This should make 
the move to
`CSSNumberishTime` mostly transparent for most of our code.

* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CSSNumberishTime.cpp: Added.
(WebCore::CSSNumberishTime::CSSNumberishTime):
(WebCore::CSSNumberishTime::time const):
(WebCore::CSSNumberishTime::percentage const):
(WebCore::CSSNumberishTime::isValid const):
(WebCore::CSSNumberishTime::operator+ const):
(WebCore::CSSNumberishTime::operator- const):
(WebCore::CSSNumberishTime::operator< const):
(WebCore::CSSNumberishTime::operator<= const):
(WebCore::CSSNumberishTime::operator> const):
(WebCore::CSSNumberishTime::operator>= const):
(WebCore::CSSNumberishTime::operator CSSNumberish const):
* Source/WebCore/animation/CSSNumberishTime.h: Added.
* Source/WebCore/animation/ComputedEffectTiming.h:
* Source/WebCore/animation/ComputedEffectTiming.idl:
* Source/WebCore/animation/ScrollTimeline.cpp: Fix missing header revealed by 
the addition of `CSSNumberishTime`.
* Source/WebCore/animation/StyleOriginatedAnimation.cpp:
(WebCore::StyleOriginatedAnimation::invalidateDOMEvents):
* Source/WebCore/animation/ViewTimeline.cpp: Fix missing header revealed by the 
addition of `CSSNumberishTime`.
* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::validateCSSNumberishValue const): Remove code dealing 
with `CSSNumericValue` since all of
it is performed by the `CSSNumberishTime` constructor.
* Source/WebCore/animation/WebAnimationTypes.h: Add `CSSNumberishTime.h` so 
that the Web Animations code automatically
gets access to `CSSNumberishTime.h` via this oft-included file.

Canonical link: https://commits.webkit.org/283689@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a4d016: [scroll-animations] update `AnimationPlaybackEvent...

2024-09-17 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a4d0166e64f247eb1f80a1a3d2d076009ac4b9a3
  
https://github.com/WebKit/WebKit/commit/a4d0166e64f247eb1f80a1a3d2d076009ac4b9a3
  Author: Antoine Quint 
  Date:   2024-09-17 (Tue, 17 Sep 2024)

  Changed paths:
M Source/WebCore/animation/AnimationPlaybackEvent.cpp
M Source/WebCore/animation/AnimationPlaybackEvent.h
M Source/WebCore/animation/AnimationPlaybackEvent.idl
M Source/WebCore/animation/AnimationPlaybackEventInit.h
M Source/WebCore/animation/AnimationPlaybackEventInit.idl

  Log Message:
  ---
  [scroll-animations] update `AnimationPlaybackEvent` to use `CSSNumberish`
https://bugs.webkit.org/show_bug.cgi?id=279731
rdar://136031174

Reviewed by Dean Jackson.

Adopt `CSSNumberishTime` introduced in 283689@main to represent `CSSNumberish`
time values for the `AnimationPlaybackEvent` class and the 
`AnimationPlaybackEventInit`
dictionary.

* Source/WebCore/animation/AnimationPlaybackEvent.cpp:
(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
(WebCore::AnimationPlaybackEvent::bindingsCurrentTime const):
(WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
* Source/WebCore/animation/AnimationPlaybackEvent.h:
* Source/WebCore/animation/AnimationPlaybackEvent.idl:
* Source/WebCore/animation/AnimationPlaybackEventInit.h:
* Source/WebCore/animation/AnimationPlaybackEventInit.idl:

Canonical link: https://commits.webkit.org/283770@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bfe384: [web-animations] remove the WebAnimationsComposite...

2023-10-18 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bfe384e8cb75ad6736bf9a9f812637d0e7bce2a0
  
https://github.com/WebKit/WebKit/commit/bfe384e8cb75ad6736bf9a9f812637d0e7bce2a0
  Author: Antoine Quint 
  Date:   2023-10-18 (Wed, 18 Oct 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeEffect.idl
M Source/WebCore/bindings/js/JSKeyframeEffectCustom.cpp
M Source/WebCore/css/CSSProperties.json

  Log Message:
  ---
  [web-animations] remove the WebAnimationsCompositeOperationsEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=263242

Reviewed by Antti Koivisto.

The `WebAnimationsCompositeOperationsEnabled` flag has been on by default for 
well over a year
and serves no purpose at this point.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::getKeyframes):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffect.idl:
* Source/WebCore/bindings/js/JSKeyframeEffectCustom.cpp:
(WebCore::JSKeyframeEffect::getKeyframes):
* Source/WebCore/css/CSSProperties.json:

Canonical link: https://commits.webkit.org/269452@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] add5da: REGRESSION (262875@main): animation of `rotate` pr...

2023-10-18 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: add5da728e896225eed1c51f5328897bdbf51cbf
  
https://github.com/WebKit/WebKit/commit/add5da728e896225eed1c51f5328897bdbf51cbf
  Author: Antoine Quint 
  Date:   2023-10-18 (Wed, 18 Oct 2023)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes.html
M Source/WebCore/platform/graphics/GraphicsLayer.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp
M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  ---
  REGRESSION (262875@main): animation of `rotate` property doesn't work if 
there's a `scale`
https://bugs.webkit.org/show_bug.cgi?id=260255
rdar://113999490

Reviewed by Dean Jackson.

When we fixed bug 255338 in 262875@main, we made it so that adding a 
GraphicsLayer animation with a given name
would remove any existing animation of that same name. That animation's name is 
the name of the KeyframeEffect
that yielded this GraphicsLayer animation.

However, in RenderLayerBacking::startAnimation(), effects that animate multiple 
transform-related properties will
yield one GraphicsLayer animation per property, all using the same name. As 
such, animating both the `rotate` and
`scale` properties, for instance, will add first the `rotate` animation, and 
then add the `scale` animation which
will have the unwanted effect of removing the prior `rotate` animation since 
both animations share the same name.

So we now pass an optional property name to 
`GraphicsLayerCA::removeAnimation()` such that we check both the name
and the property before removing a pre-existing animation when adding a new 
animation under
`GraphicsLayerCA::createTransformAnimationsFromKeyframes()`.

In the meantime, we make sure to pass `std::nullopt` in 
`RenderLayerBacking::animationFinished()` in order to
remove *all* animations.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-and-rotate-both-specified-on-animation-keyframes.html:
 Added.
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::removeAnimation):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::removeAnimation):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::removeAnimation):
* Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::removeAnimation):
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::animationFinished):

Canonical link: https://commits.webkit.org/269453@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9c2a7f: [web-animations] remove the WebAnimationsMutableTi...

2023-10-19 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9c2a7feebac7ceca545d08da8ed6fa731f8e2af3
  
https://github.com/WebKit/WebKit/commit/9c2a7feebac7ceca545d08da8ed6fa731f8e2af3
  Author: Antoine Quint 
  Date:   2023-10-19 (Thu, 19 Oct 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/animation/KeyframeAnimationOptions.idl
M Source/WebCore/animation/WebAnimation.idl

  Log Message:
  ---
  [web-animations] remove the WebAnimationsMutableTimelinesEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=263365

Reviewed by Antti Koivisto.

That flag has been enabled by default for well over a year (March 25, 2022) in 
248874@main.
It's outlived its purpose so we can remove it now.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/animation/KeyframeAnimationOptions.idl:
* Source/WebCore/animation/WebAnimation.idl:

Canonical link: https://commits.webkit.org/269517@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 07b011: [web-animations] linear() probably does not work w...

2023-10-20 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 07b0116f3ef9d91fa6828fe1dd52fe77c8108c04
  
https://github.com/WebKit/WebKit/commit/07b0116f3ef9d91fa6828fe1dd52fe77c8108c04
  Author: Antoine Quint 
  Date:   2023-10-20 (Fri, 20 Oct 2023)

  Changed paths:
A 
LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-6-expected.txt
A 
LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-6.html
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h

  Log Message:
  ---
  [web-animations] linear() probably does not work with transform and other 
accelerated properties
https://bugs.webkit.org/show_bug.cgi?id=260136
rdar://114084978

Reviewed by Dean Jackson.

Devin Rousso added support for the `linear()` timing function in 266195@main. 
That initial patch
did not account for the lack of a Core Animation equivalent for this timing 
function, which meant
that accelerated properties would fail to respect this timing function.

We now use the same mechanism we use for the `steps()` timing function for 
`linear()`.

* 
LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-6-expected.txt:
 Added.
* 
LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-6.html:
 Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setBlendingKeyframes):
(WebCore::isLinearTimingFunctionWithPoints):
(WebCore::KeyframeEffect::computeSomeKeyframesUseStepsOrLinearTimingFunctionWithPoints):
(WebCore::KeyframeEffect::canBeAccelerated const):
(WebCore::KeyframeEffect::animationDidChangeTimingProperties):
(WebCore::KeyframeEffect::computeSomeKeyframesUseStepsTimingFunction): Deleted.
* Source/WebCore/animation/KeyframeEffect.h:

Canonical link: https://commits.webkit.org/269594@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5d86bb: [scroll-animations] import scroll-animations WPTs

2023-10-30 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5d86bb7ffb13e2174782475ab5af8649f298c25f
  
https://github.com/WebKit/WebKit/commit/5d86bb7ffb13e2174782475ab5af8649f298c25f
  Author: Antoine Quint 
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/imported/w3c/resources/import-expectations.json
M LayoutTests/imported/w3c/resources/resource-files.json
A LayoutTests/imported/w3c/web-platform-tests/scroll-animations/META.yml
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/crashtests/invalid-animation-range.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/crashtests/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-events-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-events.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-fill-outside-range-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-fill-outside-range-test-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-fill-outside-range-test.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-inactive-outside-range-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-inactive-outside-range-test-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-inactive-outside-range-test.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-ignored-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-ignored.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-visual-test-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-visual-test-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-range-visual-test.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-shorthand-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-shorthand.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-computed-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-computed.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-deferred-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-deferred.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-multiple-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-multiple.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-none-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-none.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-parsing-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-parsing.html
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative.html
A 
LayoutTests/imported/w3c/web

[webkit-changes] [WebKit/WebKit] 2ed0a8: [css-animations] re-import css/css-animations WPTs

2023-10-30 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2ed0a830c2f7e29662cb0ce4327d34a88b046104
  
https://github.com/WebKit/WebKit/commit/2ed0a830c2f7e29662cb0ce4327d34a88b046104
  Author: Antoine Quint 
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
M LayoutTests/imported/w3c/resources/resource-files.json
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/AnimationEffect-getComputedTiming.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-composition-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-composition-keyframes-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-composition-keyframes.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-composition.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-play-state-005.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-play-state-005.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/cancel-animation-shadow-slot-invalidation.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/replace-keyframes-animating-filter-001.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-none-dont-cancel.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/inheritance-pseudo-element-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/inheritance-pseudo-element-ref.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/inheritance-pseudo-element.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/keyframes-zero-angle-crash.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/missing-values-first-keyframe-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/missing-values-first-keyframe.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/missing-values-last-keyframe-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/missing-values-last-keyframe.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-computed.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-computed.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-invalid.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-invalid.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-valid.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-end-valid.tentative.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-computed-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-computed.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-computed.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-computed.tentative.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-start-invalid.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing

[webkit-changes] [WebKit/WebKit] 40f1e1: [scroll-animations] add a runtime flag for Scroll-...

2023-11-06 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 40f1e1df84da8c69347fc95123b2a8561ec3824d
  
https://github.com/WebKit/WebKit/commit/40f1e1df84da8c69347fc95123b2a8561ec3824d
  Author: Antoine Quint 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  ---
  [scroll-animations] add a runtime flag for Scroll-driven Animations
https://bugs.webkit.org/show_bug.cgi?id=264260

Reviewed by Tim Nguyen.

Add a runtime flag for the Scroll-driven Animations spec 
(https://drafts.csswg.org/scroll-animations-1/).

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

Canonical link: https://commits.webkit.org/270282@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0e80c5: Refactor ComputedStyleExtractor into its own sourc...

2022-09-20 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0e80c5909d7e9b50f755b49080ca50dd378ba625
  
https://github.com/WebKit/WebKit/commit/0e80c5909d7e9b50f755b49080ca50dd378ba625
  Author: Antoine Quint 
  Date:   2022-09-20 (Tue, 20 Sep 2022)

  Changed paths:
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/css/CSSComputedStyleDeclaration.cpp
M Source/WebCore/css/CSSComputedStyleDeclaration.h
A Source/WebCore/css/ComputedStyleExtractor.cpp
A Source/WebCore/css/ComputedStyleExtractor.h
M Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp
M Source/WebCore/html/CustomPaintImage.cpp
M Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp
M Source/WebCore/rendering/style/RenderStyle.cpp
M Source/WebCore/svg/SVGElement.cpp
M Source/WebCore/svg/properties/SVGPropertyAnimator.h

  Log Message:
  ---
  Refactor ComputedStyleExtractor into its own source file
https://bugs.webkit.org/show_bug.cgi?id=245431

Reviewed by Antti Koivisto.

ComputedStyleExtractor has always been contained in 
CSSComputedStyleDeclaration.h but
it's a public class and deserves to be in its own source file. Besides, it's 
much of
the code previously found in CSSComputedStyleDeclaration.cpp.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter):
* Source/WebCore/animation/KeyframeEffect.cpp:
* Source/WebCore/animation/WebAnimation.cpp:
* Source/WebCore/css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
(WebCore::CSSComputedStyleDeclaration::create):
(WebCore::CSSComputedStyleDeclaration::ref):
(WebCore::CSSComputedStyleDeclaration::deref):
(WebCore::CSSComputedStyleDeclaration::cssText const):
(WebCore::CSSComputedStyleDeclaration::setCssText):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue const):
(WebCore::CSSComputedStyleDeclaration::length const):
(WebCore::valueForRepeatRule): Deleted.
(WebCore::valueForImageSliceSide): Deleted.
(WebCore::valueForNinePieceImageSlice): Deleted.
(WebCore::valueForNinePieceImageQuad): Deleted.
(WebCore::valueForNinePieceImageRepeat): Deleted.
(WebCore::valueForNinePieceImage): Deleted.
(WebCore::zoomAdjustedPixelValue): Deleted.
(WebCore::zoomAdjustedNumberValue): Deleted.
(WebCore::zoomAdjustedPixelValueForLength): Deleted.
(WebCore::valueForReflection): Deleted.
(WebCore::createPositionListForLayer): Deleted.
(WebCore::createSingleAxisPositionValueForLayer): Deleted.
(WebCore::getOffsetComputedLength): Deleted.
(WebCore::getOffsetUsedStyleRelative): Deleted.
(WebCore::getOffsetUsedStyleOutOfFlowPositioned): Deleted.
(WebCore::positionOffsetValue): Deleted.
(WebCore::ComputedStyleExtractor::currentColorOrValidColor const): Deleted.
(WebCore::percentageOrZoomAdjustedValue): Deleted.
(WebCore::autoOrZoomAdjustedValue): Deleted.
(WebCore::borderRadiusCornerValues): Deleted.
(WebCore::valueForQuotes): Deleted.
(WebCore::borderRadiusCornerValue): Deleted.
(WebCore::borderRadiusShorthandValue): Deleted.
(WebCore::sizingBox): Deleted.
(WebCore::matrixTransformValue): Deleted.
(WebCore::rendererCanBeTransformed): Deleted.
(WebCore::computedTransform): Deleted.
(WebCore::computedTranslate): Deleted.
(WebCore::computedScale): Deleted.
(WebCore::computedRotate): Deleted.
(WebCore::adjustLengthForZoom): Deleted.
(WebCore::ComputedStyleExtractor::valueForShadow): Deleted.
(WebCore::ComputedStyleExtractor::valueForFilter): Deleted.
(WebCore::specifiedValueForGridTrackBreadth): Deleted.
(WebCore::specifiedValueForGridTrackSize): Deleted.
(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector): Deleted.
(WebCore::OrderedNamedLinesCollector::isEmpty const): Deleted.
(WebCore::OrderedNamedLinesCollector::namedGridLineCount const): Deleted.
(): Deleted.
(WebCore::OrderedNamedLinesCollectorInGridLayout::OrderedNamedLinesCollectorInGridLayout):
 Deleted.
(WebCore::OrderedNamedLinesCollectorInSubgridLayout::OrderedNamedLinesCollectorInSubgridLayout):
 Deleted.
(WebCore::OrderedNamedLinesCollector::appendLines const): Deleted.
(WebCore::OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex 
const): Deleted.
(WebCore::OrderedNamedLinesCollectorInSubgridLayout::collectLineNamesForIndex 
const): Deleted.
(WebCore::addValuesForNamedGridLinesAtIndex): Deleted.
(WebCore::valueForGridTrackSizeList): Deleted.
(WebCore::populateGridTrackList): Deleted.
(WebCore::populateSubgridLineNameList): Deleted.
(WebCore::valueForGridTrackList): Deleted.
(WebCore::valueForGridPosition): Deleted.
(WebCore::createTransitionPropertyValue): Deleted.
(WebCore::valueForScrollSnapType): Deleted.
(WebCore::valueForScrollSnapAlignment): Deleted

[webkit-changes] [WebKit/WebKit] 84f06c: getComputedStyle() on transform property should re...

2022-09-22 Thread Antoine Quint
  Branch: refs/heads/bug-23924-transform-serialization
  Home:   https://github.com/WebKit/WebKit
  Commit: 84f06cef837a9312337d1a686c16d392d3c8e85e
  
https://github.com/WebKit/WebKit/commit/84f06cef837a9312337d1a686c16d392d3c8e85e
  Author: Antoine Quint 
  Date:   2022-09-22 (Thu, 22 Sep 2022)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/css/ComputedStyleExtractor.cpp

  Log Message:
  ---
  getComputedStyle() on transform property should return function list
https://bugs.webkit.org/show_bug.cgi?id=23924

Reviewed by NOBODY (OOPS!).

We should serialize the "transform" property to a series of individual 
functions to match
the individual operations found in the TransformOperations value. To determine 
when we should
be doing this, we pass a nullptr value as the renderer when calling 
valueForPropertyInStyle()
on the ComputedStyleExtractor in KeyframeEffect::getKeyframes() and 
WebAnimation::commitStyles().

Note the slight regression with first-letter and first-line tests where we now 
expose the "transform"
property not being rejected at parse-time, bug 245523 will address this.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::commitStyles):
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::computedTransform):


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ae44d0: getComputedStyle() on transform property should re...

2022-09-22 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ae44d0ca68fa6c38c22fad2efbc2dbdc45a4f581
  
https://github.com/WebKit/WebKit/commit/ae44d0ca68fa6c38c22fad2efbc2dbdc45a4f581
  Author: Antoine Quint 
  Date:   2022-09-22 (Thu, 22 Sep 2022)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/css/ComputedStyleExtractor.cpp

  Log Message:
  ---
  getComputedStyle() on transform property should return function list
https://bugs.webkit.org/show_bug.cgi?id=23924

Reviewed by Antti Koivisto.

We should serialize the "transform" property to a series of individual 
functions to match
the individual operations found in the TransformOperations value. To determine 
when we should
be doing this, we pass a nullptr value as the renderer when calling 
valueForPropertyInStyle()
on the ComputedStyleExtractor in KeyframeEffect::getKeyframes() and 
WebAnimation::commitStyles().

Note the slight regression with first-letter and first-line tests where we now 
expose the "transform"
property not being rejected at parse-time, bug 245523 will address this.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::commitStyles):
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::computedTransform):

Canonical link: https://commits.webkit.org/254760@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 1f231e: Blending between two rotateZ() transform values sh...

2022-09-23 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1f231e23b766bea941685230a80dd4eae1776573
  
https://github.com/WebKit/WebKit/commit/1f231e23b766bea941685230a80dd4eae1776573
  Author: Antoine Quint 
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/platform/graphics/transforms/RotateTransformOperation.h
M Source/WebCore/platform/graphics/transforms/TransformOperation.cpp
M Source/WebCore/platform/graphics/transforms/TransformOperation.h

  Log Message:
  ---
  Blending between two rotateZ() transform values should serialize as rotate3d()
https://bugs.webkit.org/show_bug.cgi?id=245527

Reviewed by Antti Koivisto.

We didn't have a way to differentiate a rotation provided as rotateZ() rather 
than rotate().
We now keep a distinct OperationType value for ROTATE_Z and ensure we never 
simplify to the
ROTATE type in the primitiveType() override of RotateTransformOperation.

We also fix computedTransform() to correctly use the angle rather than the 
individual axis
for the rotateX/Y/Z functions.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::computedTransform):
* Source/WebCore/platform/graphics/transforms/RotateTransformOperation.h:
* Source/WebCore/platform/graphics/transforms/TransformOperation.cpp:
* Source/WebCore/platform/graphics/transforms/TransformOperation.h:

Canonical link: https://commits.webkit.org/254782@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 1ed5a3: getKeyframes() returns equal "from" and "to" value...

2022-09-23 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ed5a302e8a063553b8fcf90d58e9bed53716c5c
  
https://github.com/WebKit/WebKit/commit/1ed5a302e8a063553b8fcf90d58e9bed53716c5c
  Author: Antoine Quint 
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes-width-and-height-transition.tentative-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes-width-and-height-transition.tentative.html

  Log Message:
  ---
  getKeyframes() returns equal "from" and "to" values for a "width" transition
https://bugs.webkit.org/show_bug.cgi?id=245179


Reviewed by Antti Koivisto.

Adding a new test that checks that the value returned by getKeyframes() for
"width" and "height" transitions between mixed length types is correct. A test
alone is sufficient since the changes that landed for bug 23924 already fixed
the problem.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes-width-and-height-transition.tentative-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes-width-and-height-transition.tentative.html:
 Added.

Canonical link: https://commits.webkit.org/254793@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ca214b: Blending between scaleZ() and scale() transforms s...

2022-09-23 Thread Antoine Quint
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ca214b3c337eb572ad9dbc36fbbb09b31fa7f7d2
  
https://github.com/WebKit/WebKit/commit/ca214b3c337eb572ad9dbc36fbbb09b31fa7f7d2
  Author: Antoine Quint 
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/platform/graphics/transforms/ScaleTransformOperation.h

  Log Message:
  ---
  Blending between scaleZ() and scale() transforms should serialize as scale3d()
https://bugs.webkit.org/show_bug.cgi?id=245570

Reviewed by Antti Koivisto.

When blending two ScaleTransformOperation objects, ensure we retain the 3d-ness 
of a scaleZ() operation,
even if its value is 1, for later serialization. Then, when serializing, don't 
drop a z=1 value and instead
always serialize a SCALE_3D type as scale3d().

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::computedTransform):
* Source/WebCore/platform/graphics/transforms/ScaleTransformOperation.h:

Canonical link: https://commits.webkit.org/254794@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


  1   2   3   4   5   >