| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
// https://drafts.csswg.org/scroll-animations-1/#timeline-name-scope`timeline-scope`?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
`timeline-scope`?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
3 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:
```
The name of the file: third_party/blink/renderer/core/animation/deferred_timeline.h
Insertions: 1, Deletions: 1.
@@ -22,7 +22,7 @@
// their state from) are later attached by the animation update of a descendant
// element (see CSSAnimations::CalculateTimelineAttachmentUpdate()).
//
-// https://drafts.csswg.org/scroll-animations-1/#timeline-name-scope
+// https://drafts.csswg.org/scroll-animations-1/#timeline-scope
class CORE_EXPORT DeferredTimeline : public ScrollSnapshotTimeline {
public:
explicit DeferredTimeline(Document*);
```
[scroll-animations] Create DeferredTimelines lazily
The timeline-scope property currently accepts a list of names,
and each such name results in a DeferredTimeline being eagerly created
on the relevant element. This approach does not work for
timeline-scope:all; eagerly creating all possible timelines
on an element isn't viable.
Instead, each element now holds a CSSDeferredTimelineMap, which
logically contains all possible DeferredTimelines by default
(but doesn't really), and timeline-scope merely *filters* the subset
of DeferredTimelines that are reachable.
When looking for a DeferredTimeline to attach to in the ancestor chain
(CalculateTimelineAttachmentUpdate()), the act of looking for it will
now *create* it (if needed) behind the scenes---provided that
the lookup matches the specified filter. This makes it obvious how
to implement 'all': just use a CSSDeferredTimelineMap with no filter.
Note that CSSDeferredTimelineMap holds DeferredTimelines internally
using weak references. This means that "unused" DeferredTimelines will
disappear from the CSSDeferredTimelineMap during GC. This is assumed
to be fine; a non-retained DeferredTimeline implies that no scroll/view
timeline is attached to it, *and* that no animations are playing on it.
Note also that DeferredTimelines cannot be held (directly) by JS,
and they are generally not exposed through APIs; see DeferredTimeline::
ExposedTimeline().
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |