Skip to content
Branch: fill-animation
Commits on Apr 17, 2019
  1. Bug D - Add ability to keep owning references to certain FillAnimatio…

    birtles committed Apr 17, 2019
    …ns from FillAnimationRegistry
  2. Bug D - Compact the FillAnimationRegistry periodically

    birtles committed Apr 17, 2019
    Otherwise we will potentially accumulate a bunch of dangling weak
    pointers or canceled FillAnimations.
    Since we only generate FillAnimations when content calls getAnimations,
    it should be sufficient to only tidy up there as well.
  3. Bug D - Add a FillAnimationRegistry so we can return the same FillAni…

    birtles committed Apr 17, 2019
    …mation object each time
  4. Bug C - Add a chrome-only method for getting the number of source eff…

    birtles committed Apr 17, 2019
    …ects represented by a FillAnimation
    We will use this in the next patch to write automated tests that confirm
    that animation effects are coalesced as anticipated.
  5. Bug C - Don't combine effects if there may be an interleaving animation

    birtles committed Apr 17, 2019
    This uses the linked list infrastructure introduced in the previous
    patch in this series.
  6. Bug C - Track the global animation list using a linked list

    birtles committed Apr 17, 2019
    This is so that we will be able to determine if two effects are eligible
    for combining. If there exists some other animation that occurs in
    between the two effects' associated animations in the global animation
    list, even if it is idle, or does not currently target the same element,
    we still should not combine the effects since it's possible that this
    interleaving animation could be modified in a way that means we need to
    separate out the effects again.
    Hopefully this will also be useful if we later introduce an API for
    mutating the composite order of animations (e.g.
  7. Bug C - Make consumers of KeyframeEffect::mProperties handle the case…

    birtles committed Apr 17, 2019
    … when there are multiple AnimationProperty objects per CSS property
  8. Bug C - Don't register FillAnimations with the timeline

    birtles committed Apr 17, 2019
    They don't need ticks and registering them with the timeline would
    prevent them from garbage-collecting them meaning we can never collapse
    internal CompactFillEffects.
Commits on Apr 11, 2019
  1. Bug B - Extract ToOwningAnimationTarget to a separate file

    birtles committed Apr 11, 2019
    This is so we can use it when creating FillEffects too.
  2. Bug B - Extract KeyframeEffectComparator

    birtles committed Apr 11, 2019
    We will need this in order to produce FillAnimations during calls to
    GetAnimations() such that the FillAnimations respect the composite order
    of the effects they represent.
  3. Bug B - Update Web Animations' web-platform-tests so they don't fail …

    birtles committed Apr 11, 2019
    …when FillAnimations are introduced
    A couple of tests assume getAnimations() returns the original Animation
    objects but after we introduce FillAnimations, that will no longer be
    true so we need to update a couple of tests accordingly.
  4. Bug B - Add FFI for interacting with Servo's AnimationValueMap from G…

    birtles committed Apr 11, 2019
    We need this in order to extract the computed animated values to return
    in from FillEffect's getKeyframes() method.
  5. Bug B - Add an iterator to nsCSSPropertyIDSet

    birtles committed Apr 11, 2019
    nsCSSPropertyIDSet has methods to facilitate iterating but no convenient
    means of doing so. This patch adds that.
  6. Bug B - Add a means for getting the set of properties animated by a K…

    birtles committed Apr 11, 2019
    We will use this to determine what properties to computed for the
    keyframes returned from a FillEffect.
Commits on Apr 9, 2019
  1. Bug B - Factor out a means of composing a partial effect stack

    birtles committed Apr 9, 2019
    We will use this to produce the keyframes for a FillEffect since they
    should represent the computed value of each property at the
    corresponding point in the effect stack.
  2. Bug B - Implement FillEffect::GetProperties

    birtles committed Apr 9, 2019
    This is just the combination of the properties of all source effects.
    We don't do any sorting of these properties. Furthermore, the result of
    calling this will expose whether or not effects have been combined
    internally.  However, those limitations that seem acceptable for now
    since this is not Web-facing. We can refine the result of this function
    later according to the needs of DevTools (or do any sorting and
    simplification on the DevTools side) if needed.
  3. Bug B - Avoid recursive canceling

    birtles committed Apr 9, 2019
    As per the code comment in this patch, this change is not strictly
    necessary but is rather an optimization and defensive step.
  4. Bug B - When canceling a FillAnimation via its CompactFillEffect, don…

    birtles committed Apr 9, 2019
    …'t also cancel _all_ its source effects
    Consider the following code:
      const animA = div.animate(...);
      const fillAnimA = div.getAnimations()[0];
      const animB = div.animate(...);
      const fillAnimAB = div.getAnimations()[0];
    Here |animA| is a source animation for both |fillAnimA| and
    Without this change, canceling |animA| would cancel both FillAnimations
    but also cancel |animB| (which it clearly should not do).
    This test (and others like it) are included in a later patch in this
  5. Bug B - Make CompactFillEffects and FillEffects cancel each other

    birtles committed Apr 9, 2019
    For example if the user cancels a FillAnimation, this needs to cancel
    any CompactFillEffects it represents since it is these
    CompactFillEffects that actually influence style.
    Likewise, if a CompactFillEffect is canceled via a linked effect, that
    is, via the original Animation from which is was created, then any
    FillAnimations that refer to the CompactFillEffect will need to be
    canceled as well.
    This second case will be further refined in the next patch in this
    series so that it does not subsequently trigger the first case too.
  6. Bug B - Allow CompactFillEffects and FillEffects to cross-reference o…

    birtles committed Apr 9, 2019
    …ne another
    This is needed so that they can cancel one another and so that we can
    determine when a CompactFillEffect is no-longer-referenced and can be
    combined with other CompactFillEffects.
You can’t perform that action at this time.