⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 268874 in webkit


Ignore:
Timestamp:
Oct 22, 2020, 11:26:31 AM (6 years ago)
Author:
Alan Coon
Message:

Revert r268746. rdar://problem/70578639

Location:
branches/safari-611.1.4-branch
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-611.1.4-branch/LayoutTests/ChangeLog

    r268873 r268874  
     12020-10-22  Alan Coon  <alancoon@apple.com>
     2
     3        Revert r268746. rdar://problem/70578639
     4
    152020-10-22  Alan Coon  <alancoon@apple.com>
    26
  • branches/safari-611.1.4-branch/LayoutTests/TestExpectations

    r268754 r268874  
    45194519fast/layoutformattingcontext/ [ ImageOnlyFailure ]
    45204520webkit.org/b/217054 fast/layoutformattingcontext/horizontal-sizing-with-trailing-letter-spacing.html [ Skip ]
     4521
     4522webkit.org/b/217851 transitions/interrupted-transition-hardware.html [ Pass Failure ]
     4523webkit.org/b/217851 webanimations/accelerated-transform-related-animation-property-order.html [ Pass Failure ]
     4524webkit.org/b/217851 webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html [ Pass Failure ]
     4525webkit.org/b/217851 webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html [ Pass Failure ]
     4526webkit.org/b/217851 webanimations/accelerated-translate-animation-with-transform.html [ Pass Failure ]
     4527webkit.org/b/217851 webanimations/accelerated-translate-animation.html [ Pass Failure ]
  • branches/safari-611.1.4-branch/LayoutTests/platform/mac/TestExpectations

    r268754 r268874  
    22472247webkit.org/b/217620 inspector/audit/basic-async.htm [ Pass Timeout ]
    22482248
     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  
    45874587webkit.org/b/217812 transforms/2d/translate-change-composited.html [ Skip ]
    45884588webkit.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  
     12020-10-22  Alan Coon  <alancoon@apple.com>
     2
     3        Revert r268746. rdar://problem/70578639
     4
    152020-10-22  Alan Coon  <alancoon@apple.com>
    26
  • branches/safari-611.1.4-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

    r268873 r268874  
    28622862void GraphicsLayerCA::updateAnimations()
    28632863{
    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 for
    2877         // base transform animations matches the smallest known begin time to guarantee that
    2878         // such animations can combine with other explicit transform animations correctly.
    2879         if (auto computedBeginTime = animation.computedBeginTime())
    2880             baseTransformAnimationBeginTime = std::min(baseTransformAnimationBeginTime, *computedBeginTime);
    2881     };
    2882 
    28832864    enum class Additive { Yes, No };
    28842865    auto addAnimation = [&](LayerPropertyAnimation& animation, Additive additive = Additive::Yes) {
     
    29102891        // To ensure the base value transform is applied along with all the interpolating animations, we set it to have started
    29112892        // 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);
    29132894
    29142895        // Additivity will depend on the source of the matrix, if it was explicitly provided as an identity matrix, it
     
    29202901    };
    29212902
    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.
    29242904    for (auto& animation : m_animations) {
    2925         updateBeginTimes(animation);
    29262905        if (animation.m_playState == PlayState::Playing || animation.m_playState == PlayState::Paused)
    29272906            removeCAAnimationFromLayer(animation);
     
    30433022    auto& caAnim = *animation.m_animation;
    30443023
    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    }
    30473036
    30483037    String animationID = animation.animationIdentifier();
  • branches/safari-611.1.4-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h

    r268754 r268874  
    3131#include "PlatformCALayerClient.h"
    3232#include <wtf/HashMap.h>
    33 #include <wtf/Optional.h>
    3433#include <wtf/RetainPtr.h>
    3534#include <wtf/text/StringHash.h>
     
    464463
    465464        String animationIdentifier() const { return makeString(m_name, '_', static_cast<unsigned>(m_property), '_', m_index, '_', m_subIndex); }
    466         Optional<Seconds> computedBeginTime() const
    467         {
    468             if (m_beginTime)
    469                 return m_beginTime - m_timeOffset;
    470             return WTF::nullopt;
    471         }
    472465
    473466        RefPtr<PlatformCAAnimation> m_animation;
Note: See TracChangeset for help on using the changeset viewer.