Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[web-animations-1] [scroll-animations-1] Support automatic duration scroll animations #4862 #4890

Closed
wants to merge 15 commits into from

Conversation

flackr
Copy link
Contributor

@flackr flackr commented Mar 20, 2020

Change the implicit handling of auto duration animations to use the duration of the supplied timeline, giving ScrollTimeline an implicit duration of 100s corresponding to 100% of their progress.

I think this is about the minimum that could be done to support the use case in #4862 and also doesn't significantly complicate web animations. While I like the idea of supporting arbitrary percentages specified in the future, it's easy to see how the specified duration 'auto' implicitly maps to 100% of the duration.

The only change to existing behavior is that no supplied animation duration would result in an infinite duration (from the DocumentTimeline) rather than 0 duration as defined today.

…croll-animations

Change the implicit handling of auto duration animations to use the
duration of the supplied timeline, giving ScrollTimeline an implicit
duration of 100s corresponding to 100% of their progress.
@flackr flackr requested a review from birtles March 20, 2020 19:39
};
</pre>

A <dfn>scroll timeline</dfn> is an {{AnimationTimeline}} whose time values are determined
not by wall-clock time, but by the progress of scrolling in a [=scroll container=].
The {{AnimationTimeline/duration}} of a <a>scroll timeline</a> is 100s to provide
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be nice if this were still a percentage but the definition of time values already suggests the correspondence to milliseconds is weak.

@flackr flackr requested a review from majido March 23, 2020 16:45
Copy link
Contributor

@majido majido left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks very reasonable to me. I am surprised how little change it required.

The only change to existing behavior is that no supplied animation duration would result in an infinite duration (from the DocumentTimeline) rather than 0 duration as defined today.

What is the web-compat impact of this?

@flackr
Copy link
Contributor Author

flackr commented Apr 3, 2020

This looks very reasonable to me. I am surprised how little change it required.

The only change to existing behavior is that no supplied animation duration would result in an infinite duration (from the DocumentTimeline) rather than 0 duration as defined today.

What is the web-compat impact of this?

It's actually very minimal, and could be removed if we felt necessary. Previously the value auto for EffectTiming duration would be treated as 0, and with this proposal as is, it would now be infinite. This means if you didn't specify a duration for an animation it would hold its 0 value forever instead of having no effect. I would expect that 'auto' duration animations are extremely rare as it's not currently a meaningful value.

As I was suggesting, we could make an exemption that auto for infinite duration timelines still resolves to 0, which would make it completely backwards compatible with the existing web surface.

Comment on lines 4424 to 4425
the {{EffectTiming}} interface. A percentage value is represented as its
double value (i.e. 100% returns 1.0).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this lose information? i.e. it doesn't roundtrip and it's not possible to tell whether 1.0 represents a percent or a millisecond time?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's expected that getComputedTiming can lose information though, right? I thought we had settled on the progress being a double in the [0-1] range in our previous discussions.

Comment on lines 4598 to 4602
If the <a lt="timeline duration">duration</dfn> of the Animation's
<a>timeline</a> is a percentage, a non <code>auto</code> duration will
be treated as 0. Future levels of this specification are expected to
introduce support for scaling duration, iterations and start/end delays
to fill a percentage timeline duration.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably should update the paragraph before this, and then describe the syntax for percentages (and how they are encoded as strings).

Also, it seems like the duration of a timeline can't be a percentage?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, my thinking was that internally we would recognize that the timeline duration is a percentage even though the value by inspection would be 1.0 (consistent with getComputedStyle). However, I'm guessing the issue is that if it's not represented in the WebIDL return value we can't recognize this.

Some options:

  • Define and use a subclass of AnimationTimeline (i.e. ProgressTimeline) and check the instance type to determine which behavior to apply.
  • Use a string value for duration

Any other ideas? Any recommendations?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh good point. I think it's probably helpful to ask what we want getTiming() and getComputedTiming() to return when we later introduce effects that are a percentage of their parent group's time (or ancestor timeline if we introduced fixed duration document timelines for example).

I think in that case we might want something like:

  • getTiming().duration to return CSSNumberish, i.e. a double in the case of a fixed time (for compatibility) or a CSSNumberValue to represent a percentage.
  • getComputedTiming().duration to return a number which is either the resolved duration in ms (in part for compatibility, and in part so we can determine the actual duration for complex group effects) or a value between [0, 1] or [0, 100] to represent a percentage of an auto duration timeline.

What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this, if we do the same for the timeline duration then we can know when a defined duration on the timeline is a time (where time-based values in the animations don't need to be dropped) or a percentage (where we convert time based animations to their respective proportions). I'll work on making this change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually we already specify that the return value from getTiming() must be auto if the duration is specified as auto so we should be returning the string 'auto' from getTiming which will round trip. I still like the idea of using CSSNumberish for the timeline duration though so that we clearly know whether the duration is time-based or progress (percentage) based.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could consider returning CSSNumberish from computed timing - that would sidestep the issue of converting the percentages to a double value. It will mean changing a lot of values to be CSSNumberish, but this might be cleaner in the long run. WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure. Once we are able to use percentages that resolve to times (e.g. duration is 50% of my parent group) I wonder if it would be useful to have getComputedTiming() return the actual number of seconds it resolves to? In which case, should percentages that resolve against scroll timelines resolve to pixels?

Unfortunately getComputedStyle doesn't give an entirely clear precedent here since it sometimes resolves percentages (e.g. for width and height) but otherwise doesn't. I guess the intention is that it should always return percentages. So maybe we should return CSSNumberish instead?

It would be interesting to know if anyone else has an opinion on this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure. Once we are able to use percentages that resolve to times (e.g. duration is 50% of my parent group) I wonder if it would be useful to have getComputedTiming() return the actual number of seconds it resolves to?

I could see this being useful, and might be worth doing.

In which case, should percentages that resolve against scroll timelines resolve to pixels?

This depends on what you consider to be the underlying value of the ScrollTimeline right? It could be pixels but it could also only operate in percentage of scroll or percentage of duration?

Unfortunately getComputedStyle doesn't give an entirely clear precedent here since it sometimes resolves percentages (e.g. for width and height) but otherwise doesn't. I guess the intention is that it should always return percentages. So maybe we should return CSSNumberish instead?

I think returning CSSNumberish and keeping percentages in the computed timing makes sense. One thing that I believe supports this is this note from css-cascade (emphasis mine):

Note: In general, the computed value resolves the specified value as far as possible without laying out the document or performing other expensive or hard-to-parallelize operations, such as resolving network requests or retrieving values other than from the element and its parent.

cc/ @andruud

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving percentages intact sounds entirely reasonable.

Although depending on layout in this case is probably less painful than normal, given the snapshotting described in Avoiding cycles with layout, which means we can resolve the percentages against whatever is known from the previous snapshot?

returning CSSNumberish

Note that (from brief inspection of css-typed-om & Blink): there seems to be an "understanding" that a return value of CSSNumberish means you always get a CSSNumericValue. So readonly CSSNumberish attributes would probably ideally be CSSNumericValue attributes. So since this would be the first deviation from this (I think), we should probably specify under which circumstances we can expect a raw double.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that (from brief inspection of css-typed-om & Blink): there seems to be an "understanding" that a return value of CSSNumberish means you always get a CSSNumericValue. So readonly CSSNumberish attributes would probably ideally be CSSNumericValue attributes. So since this would be the first deviation from this (I think), we should probably specify under which circumstances we can expect a raw double.

That sounds reasonable. If we were designing this from scratch I think we would always return a CSSNumericValue and it is only compatibility constraints that mean we sometimes need to return an actual number.

Copy link
Contributor Author

@flackr flackr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still have to implement the automatic scaling of pure time-based animations and there's an open question on what the best resolution is for allowing timeline duration to be recognized as a percentage.

Comment on lines 4424 to 4425
the {{EffectTiming}} interface. A percentage value is represented as its
double value (i.e. 100% returns 1.0).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's expected that getComputedTiming can lose information though, right? I thought we had settled on the progress being a double in the [0-1] range in our previous discussions.

Comment on lines 4598 to 4602
If the <a lt="timeline duration">duration</dfn> of the Animation's
<a>timeline</a> is a percentage, a non <code>auto</code> duration will
be treated as 0. Future levels of this specification are expected to
introduce support for scaling duration, iterations and start/end delays
to fill a percentage timeline duration.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, my thinking was that internally we would recognize that the timeline duration is a percentage even though the value by inspection would be 1.0 (consistent with getComputedStyle). However, I'm guessing the issue is that if it's not represented in the WebIDL return value we can't recognize this.

Some options:

  • Define and use a subclass of AnimationTimeline (i.e. ProgressTimeline) and check the instance type to determine which behavior to apply.
  • Use a string value for duration

Any other ideas? Any recommendations?

Copy link
Contributor Author

@flackr flackr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added the procedure for converting purely time-based animations to progress based and converted the timeline duration to a CSSNumberish so that we can in the future tell a progress based finite timeline from a time based one.

In this level of this specification, the string value <code>auto</code>
is treated as the value zero for the purpose of timing model calculations
If the <a lt="timeline duration">duration</dfn> of the Animation's
<a>timeline</a> is a percentage, a non <code>auto</code> duration will
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you just required the duration to be a percentage, do you need to mention non-auto?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just required the timeline duration to be a percentage, however the non-auto duration refers to the animation duration.

1. Compute [=start delay=] and [=end delay=] to 0, as it is not possible
to mix time and proportions. Future versions may allow these properties
to be assigned percentages.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need "otherwise" close? The rest of the bullets are applied when iteration duration is not "auto".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, done.

<code>|start delay| / |total time|</code>.

1. Compute [=iteration duration=] to be the result of evaluating
<code>|iteration duration| / |total time|</code>.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to divide by iteration count.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's correct as is, e.g. with start delay 2, iteration count 5, iteration duration 1, end delay 3:
total time is 2 + 5 * 1 + 3 = 10
iteration duration is calculated as 1 / 10 = 10%


1. Compute [=end delay=] to be the result of evaluating
<code>|end delay| / |total time|</code>.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this calculation the resulted values sum to 1. However when iteration duration is "auto", the timing values sum to timeline.duration. I think for consistency and correctness the values in both cases should sum to timeline.duration.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, it's possible timeline duration will not always be 100% and we should match that here. Done.

@flackr
Copy link
Contributor Author

flackr commented Jan 7, 2021

@birtles I've moved all of the web-animations-1 changes to deltas in web-animations-2. @JTensai is currently prototyping this in chromium and I think has not run into any issues. Happy to wait until we have a working implementation to land this but just wanted to confirm that this addresses the main concerns.

Copy link
Contributor

@birtles birtles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Rob, I'm really sorry. I wrote a long comment here because I think as we add this to level 2 we need to work out how it integrates with groups.

Add:

> The <dfn lt="timeline duration">duration</a> of a timeline gives the
> maximum value a timeline may generate for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: for its current time?

Comment on lines +152 to +154
> [=timeline current time|current time=]. This is used to calculate the
> [=iteration duration=] when the string <code>auto</code> is specified such that
> the animation fills the available time.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few thoughts here:

  • Firstly, this is part of the model description, as opposed to the API, so we generally try to phrase things in terms of the concepts rather than the specific interface types. (I'm not sure if that's a good idea after all, but that's the state of affairs at the moment.)
  • Secondly, I think we need to say where the auto value is specified -- in this case I think we are talking about the target effect of an animation association with the timeline. However...
  • Thirdly, in level 2 of the spec, auto is also used to allow groups to have a duration calculated based on the lengths of their children. At the model level, auto means "use the intrinsic iteration duration".

So, I think this sentence should probably be something like:

This is used in calculating the intrinsic iteration duration of the target effect of animations associated with the timeline.

Which brings us to something I think you might not want to hear: I think we probably need to specify how these different cases interact.

I wonder if can do something like the following:

  1. Redefine the intrinsic iteration duration as being either a number or a percentage/proportion or possibly a calc expression of both.

  2. Define the intrinsic iteration duration of keyframe effects (or all animation effects that don't supply their own definition for intrinsic iteration duration) as being 100% (instead of 0s).

  3. Rework the definition of the intrinsic iteration duration of group effects to similarly produce either a number or proportion or potentially a calc() if we allow that.

    In a sense, these steps produce a bottom-up initial calculation of the target effect's intrinsic iteration duration.

  4. (Optionally define the timeline duration of a document timeline as being zero instead of null since I think that might make the spec simpler if there's no particular need for null.)

  5. Define a "resolve computed intervals" procedure where we start with the target effect of an animation, and resolve its duration, start delay, and end delay based on the particular combination of its:

    • Timeline duration
    • Specified iteration duration or intrinsic iteration duration
    • Specified start delay and end delay

    This would be similar to the conversion procedure defined in this spec. In the simple case, nothing would be need to be resolved as everything would already be in milliseconds. Similarly, when we have everything in percentages, there would be nothing to do.

    In other cases, where we have a millisecond duration timeline (e.g. DocumentTimeline with its 0ms duration) and proportion times, we would resolve the proportions to milliseconds. (This would allow a KeyframeEffect with an auto duration to continue producing a resolved duration of 0s.)

    In yet other cases where we have a percentage timeline and millisecond times, we would convert the milliseconds to percentages as we have in the conversion algorithm in this spec.

    Then of course, there are the odd cases where we have a mix we don't support and where we need to use some sensible behavior. I think it's worth at least thinking about how we could support calc(50% + 2s).

  6. Recursively apply this behavior to the target effect's child effects.

I'm really sorry. I know you wanted to keep this patch as simple as possible just to get this working for scroll timelines, but I think we need to work out how this integrates with group effects.

On the positive side, if the above approach works, we'll have solved percentage based timing in general and made something really useful, I think.

I think it would also extend naturally to other use cases like KeyframeEffects where the keyframe offsets are specified in milliseconds. We would simply plug those values into the calculation of the intrinsic iteration duration of the keyframe effect and the rest would just work.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should clarify step 6:

  1. Recursively apply this behavior to the target effect's child effects.

I don't think we'd need to actually write an algorithm to recursively visit the children. Instead we could just write a definition for computed iteration duration, computed start delay etc. in terms of their parent time source's intrinsic iteration duration and then we'd naturally get the recursive behavior (i.e. the bottom-up followed by top-down traversal).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Brian,
I've jumped in to assist Rob on the spec work and have a new pull request (#6337), which hopefully addresses the outstanding issues.

Some of the key changes:

  • intrinsic iteration duration updated to be either a percent or time. In the case of a progress based timeline, the percent is simply 100% / iteration_count. Note that in the future, if start and end delay are updated to allow percentages, the intrinsic iteration duration becomes (100% - start - end) / iteration_count. Once start and end percentages are supported, we will need to be able to handle start + end > 100%, which would otherwise result in a negative intrinsic iteration duration. This should be fairly easy to handle. Just raising the issue now so that we don't lose track of it.
  • Updated to procedure for calculating the intrinsic iteration duration to support group/sequence effects as well as progress based timelines.

Note that mixing times and percentages opens up some awkward edge cases that are not easily addressed (examples below). Ultimately, we can easily convert form entirely time based to percentage based. The inverse is only possible if knowing the effect end time. For now, I was planning to stick with Rob's suggestion of start and end being set to 0 if the timeline is progress based.

Currently the iteration duration can be a time or 'auto'. In the future, we could extend to time 'auto' or percent. I would prefer to defer introducing percentages outside of 'auto' to avoid complications that would be introduced until all of the details can be worked out. The value for effect end time depends on iteration duration, which in turn could be the intrinsic iteration duration if 'auto'. The intrinsic iteration duration in turn can depend on effect end time.

Let's start with a few cases that would work, and them move to the ugly cases:

Case 1:

.anim {
animation: parallax 1s 0.25s scroll-timeline;
}
.anim2 {
Animation: parallax 2s scroll-timeline;
}

Here everything is time based, so the conversion to percentages for use with a progress based scroll timeline is trivial.

anim: iteration duration = 100% * (1s / 1.5s) = 66.67%, start delay = end delay = 100% * 0.25s / 1.5s = 16.67%
anim2: iteration duration = 100%, start delay = end delay = 0%

Case 2:

.anim {
animation-name: parallax;
animation-delay: 20%; /* once supported as a percent */
Animation-timeline: scroll-timeline;
}

intrinsic iteration duration = 100% - 20% = 80% = iteration duration

Case 3:

.anim {
animation-name: parallax;
animation-duration: 1s;
animation-delay: 20%;
}

Now we would need to be prepared to a bit more work to resolve the timing by collecting times and percentages.

end time = 1s + 20% = 100% ==> 1s = 80% ==> 1.2.s = 100%.

Note: at this stage we can get inconsistent timings (e.g. 0s animation + delay != 100%).

Case 4:

.anim {
animation-name: parallax;
animation-duration: 75%;
animation-delay: 1s;
}

Similar approach to case 3.

end time = 75% + 1s = 100% ==> 1s = 25% ==> 4s = 100%.

Case 5:

.anim {
animation-name: parallax;
animation-delay: 2s;
Animation-iteration-count: 2;
}

Now for an ugly case.

end time = 2*(intrinsic iteration duration) + 2s = 100%
==> 2*((100% - 2s))/2 + 2s = 100%
==> 100% = 100%

Here the intrinsic iteration duration is arbitrary. It may make sense to use the minimum solution (0s/0%) in this case. I welcome further discussion in this area, but would prefer to defer allowing mixing of percentages and times to a followup pull request. I believe have a pretty solid base, which can be extended in a way that won't require backpedaling.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Kevin,

Thank you so much for following up on this. Unfortunately I'm going to be quite busy for the next few days. Do you mind if I get back to you on this after that? Please feel to ping me if I'm taking too long or if you have any particular time constraints.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No rush.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your patience on this. I've finally reviewed #6337 and it looks good.

Responding to your comment,

Case 1:

.anim {
animation: parallax 1s 0.25s scroll-timeline;
}
.anim2 {
Animation: parallax 2s scroll-timeline;
}

Here everything is time based, so the conversion to percentages for use with a progress based scroll timeline is trivial.

anim: iteration duration = 100% * (1s / 1.5s) = 66.67%, start delay = end delay = 100% * 0.25s / 1.5s = 16.67%
anim2: iteration duration = 100%, start delay = end delay = 0%

I'm curious why start and end delay end up being made the same. Shouldn't the 0.25s from the animation declaration be mapped to start delay only?

Overall though it's looking great. I'm a bit uncomfortable about having combinations of content that don't work now but which we expect to work in future.

It would be good to add another PR at some point filling out those cases. I'd even be to say, for example, when an animation is directly or indirectly associated with a progress-based timeline, if it uses a combination of percentages and times, we just ignore the times (i.e. use their default values) if need be. At least that's consistent, I guess.

Maybe that's roughly equivalent to what you have, though. From what I tell though, with #6337 if you specified duration 5s, start delay 5%, end delay 2s, we'd end up ignoring both start delay and end delay as opposed to simply ignoring the time-based end delay.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops...yes case 1 should be a 1.25s animation which then maps to 100% so that the iteration duration and start delay can be converted to percentages.

Base automatically changed from master to main February 2, 2021 19:45
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Mar 25, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Mar 26, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Mar 29, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Apr 6, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Apr 6, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Apr 14, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Apr 15, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: I6ace6a8c8a94c117754b5c5fb632b7a85088726e
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 9, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 10, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 10, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 11, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 16, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 21, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
@flackr
Copy link
Contributor Author

flackr commented Jun 23, 2021

Closing as this has been continued in #6337

@flackr flackr closed this Jun 23, 2021
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 23, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2925975
Reviewed-by: Kevin Ellis <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Jordan Taylor <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895253}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Jun 23, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2925975
Reviewed-by: Kevin Ellis <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Jordan Taylor <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895253}
pull bot pushed a commit to Mu-L/chromium that referenced this pull request Jun 24, 2021
Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2925975
Reviewed-by: Kevin Ellis <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Jordan Taylor <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895253}
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Jun 27, 2021
…do not provide a time_range, a=testonly

Automatic update from web-platform-tests
Added support for scroll timelines that do not provide a time_range

Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2925975
Reviewed-by: Kevin Ellis <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Jordan Taylor <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895253}

--

wpt-commits: dd79e0c4132d7b749309998152342b1e21f7983e
wpt-pr: 29295
jamienicol pushed a commit to jamienicol/gecko that referenced this pull request Jul 16, 2021
…do not provide a time_range, a=testonly

Automatic update from web-platform-tests
Added support for scroll timelines that do not provide a time_range

Integrated progress based scroll timelines with animations and
effects. Effect timing model updated to handle both time based
timelines and progress based timelines

Spec change this CL is based on:
w3c/csswg-drafts#4890

Bug: 1140602

Change-Id: If4bc889f8fdcc1ebe393f41b8788f6bd1ddec051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2925975
Reviewed-by: Kevin Ellis <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Commit-Queue: Jordan Taylor <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895253}

--

wpt-commits: dd79e0c4132d7b749309998152342b1e21f7983e
wpt-pr: 29295
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants