[webkit-changes] [WebKit/WebKit] e8e6ce: [threaded-animation-resolution] refactor code indi...
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...
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...
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...
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...
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...
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`...
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...
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...
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...
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...
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 ...
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` ...
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:...
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...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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/...
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 ...
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...
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...
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
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...
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...
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 ...
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...
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...
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 ...
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...
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
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
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...
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
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...
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...
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...
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...
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
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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
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...
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`...
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...
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
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/...
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...
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...
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
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...
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...
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...
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...
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 ...
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...
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...
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...
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
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
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` ...
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...
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...
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...
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...
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...
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
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
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-...
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...
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...
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...
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...
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...
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...
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