Changeset 268874 in webkit
- Timestamp:
- Oct 22, 2020, 11:26:31 AM (6 years ago)
- Location:
- branches/safari-611.1.4-branch
- Files:
-
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/mac/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/win/TestExpectations (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (modified) (4 diffs)
-
Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-611.1.4-branch/LayoutTests/ChangeLog
r268873 r268874 1 2020-10-22 Alan Coon <alancoon@apple.com> 2 3 Revert r268746. rdar://problem/70578639 4 1 5 2020-10-22 Alan Coon <alancoon@apple.com> 2 6 -
branches/safari-611.1.4-branch/LayoutTests/TestExpectations
r268754 r268874 4519 4519 fast/layoutformattingcontext/ [ ImageOnlyFailure ] 4520 4520 webkit.org/b/217054 fast/layoutformattingcontext/horizontal-sizing-with-trailing-letter-spacing.html [ Skip ] 4521 4522 webkit.org/b/217851 transitions/interrupted-transition-hardware.html [ Pass Failure ] 4523 webkit.org/b/217851 webanimations/accelerated-transform-related-animation-property-order.html [ Pass Failure ] 4524 webkit.org/b/217851 webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html [ Pass Failure ] 4525 webkit.org/b/217851 webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html [ Pass Failure ] 4526 webkit.org/b/217851 webanimations/accelerated-translate-animation-with-transform.html [ Pass Failure ] 4527 webkit.org/b/217851 webanimations/accelerated-translate-animation.html [ Pass Failure ] -
branches/safari-611.1.4-branch/LayoutTests/platform/mac/TestExpectations
r268754 r268874 2247 2247 webkit.org/b/217620 inspector/audit/basic-async.htm [ Pass Timeout ] 2248 2248 2249 2250 # These are failing on Mojave due to an error in the way CA animations are applied. 2251 # https://bugs.webkit.org/show_bug.cgi?id=217842 2252 [ Mojave ] transitions/interrupted-transition-hardware.html [ Pass Failure ] 2253 [ Mojave ] webanimations/accelerated-transform-related-animation-property-order.html [ Pass Failure ] 2254 [ Mojave ] webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html [ Pass Failure ] 2255 [ Mojave ] webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html [ Pass Failure ] 2256 [ Mojave ] webanimations/accelerated-translate-animation-with-transform.html [ Pass Failure ] 2257 [ Mojave ] webanimations/accelerated-translate-animation.html [ Pass Failure ] -
branches/safari-611.1.4-branch/LayoutTests/platform/win/TestExpectations
r268754 r268874 4587 4587 webkit.org/b/217812 transforms/2d/translate-change-composited.html [ Skip ] 4588 4588 webkit.org/b/217812 transforms/2d/rotate-composited.html [ Skip ] 4589 webkit.org/b/217812 webanimations/accelerated-transform-related-animation-property-order.html [ Skip ]4590 webkit.org/b/217812 webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html [ Skip ]4591 webkit.org/b/217812 webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html [ Skip ]4592 webkit.org/b/217812 webanimations/accelerated-translate-animation-with-transform.html [ Skip ]4593 webkit.org/b/217812 webanimations/accelerated-translate-animation.html [ Skip ] -
branches/safari-611.1.4-branch/Source/WebCore/ChangeLog
r268873 r268874 1 2020-10-22 Alan Coon <alancoon@apple.com> 2 3 Revert r268746. rdar://problem/70578639 4 1 5 2020-10-22 Alan Coon <alancoon@apple.com> 2 6 -
branches/safari-611.1.4-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r268873 r268874 2862 2862 void GraphicsLayerCA::updateAnimations() 2863 2863 { 2864 auto baseTransformAnimationBeginTime = 1_s;2865 auto currentTime = Seconds(CACurrentMediaTime());2866 auto updateBeginTimes = [&](LayerPropertyAnimation& animation)2867 {2868 if (animation.m_pendingRemoval)2869 return;2870 2871 // In case we have an offset, and we haven't set an explicit begin time previously,2872 // we need to record the beginTime now.2873 if (animation.m_timeOffset && !animation.m_beginTime)2874 animation.m_beginTime = currentTime;2875 2876 // Now check if we have a resolved begin time and ensure the begin time we'll use for2877 // base transform animations matches the smallest known begin time to guarantee that2878 // such animations can combine with other explicit transform animations correctly.2879 if (auto computedBeginTime = animation.computedBeginTime())2880 baseTransformAnimationBeginTime = std::min(baseTransformAnimationBeginTime, *computedBeginTime);2881 };2882 2883 2864 enum class Additive { Yes, No }; 2884 2865 auto addAnimation = [&](LayerPropertyAnimation& animation, Additive additive = Additive::Yes) { … … 2910 2891 // To ensure the base value transform is applied along with all the interpolating animations, we set it to have started 2911 2892 // as early as possible, which combined with the infinite duration ensures it's current for any given CA media time. 2912 animation.m_beginTime = baseTransformAnimationBeginTime;2893 animation.m_beginTime = Seconds::fromNanoseconds(1); 2913 2894 2914 2895 // Additivity will depend on the source of the matrix, if it was explicitly provided as an identity matrix, it … … 2920 2901 }; 2921 2902 2922 // Iterate through all animations to update each animation's begin time, if necessary, 2923 // compute the base transform animation begin times and remove all running CA animations. 2903 // Remove all running CA animations. 2924 2904 for (auto& animation : m_animations) { 2925 updateBeginTimes(animation);2926 2905 if (animation.m_playState == PlayState::Playing || animation.m_playState == PlayState::Paused) 2927 2906 removeCAAnimationFromLayer(animation); … … 3043 3022 auto& caAnim = *animation.m_animation; 3044 3023 3045 if (auto beginTime = animation.computedBeginTime()) 3046 caAnim.setBeginTime(beginTime->seconds()); 3024 if (animation.m_timeOffset) { 3025 // In case we have an offset, we need to record the beginTime now since we have to pass in an explicit 3026 // value in the first place. 3027 if (!animation.m_beginTime) 3028 animation.m_beginTime = Seconds(CACurrentMediaTime()); 3029 caAnim.setBeginTime((animation.m_beginTime - animation.m_timeOffset).seconds()); 3030 } else if (animation.m_beginTime) { 3031 // If we already have a begin time, then we already started in the past and must ensure we use that same 3032 // begin time. Any other case will get use the CA transaction's time as its begin time and will be recorded 3033 // in platformCALayerAnimationStarted(). 3034 caAnim.setBeginTime(animation.m_beginTime.seconds()); 3035 } 3047 3036 3048 3037 String animationID = animation.animationIdentifier(); -
branches/safari-611.1.4-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
r268754 r268874 31 31 #include "PlatformCALayerClient.h" 32 32 #include <wtf/HashMap.h> 33 #include <wtf/Optional.h>34 33 #include <wtf/RetainPtr.h> 35 34 #include <wtf/text/StringHash.h> … … 464 463 465 464 String animationIdentifier() const { return makeString(m_name, '_', static_cast<unsigned>(m_property), '_', m_index, '_', m_subIndex); } 466 Optional<Seconds> computedBeginTime() const467 {468 if (m_beginTime)469 return m_beginTime - m_timeOffset;470 return WTF::nullopt;471 }472 465 473 466 RefPtr<PlatformCAAnimation> m_animation;
Note:
See TracChangeset
for help on using the changeset viewer.