Closed Bug 1646811 Opened 7 months ago Closed 7 months ago

Sync servo stuff.

Categories

(Core :: CSS Parsing and Computation, defect)

defect

Tracking

()

RESOLVED FIXED
mozilla79
Tracking Status
firefox79 --- fixed

People

(Reporter: emilio, Assigned: emilio)

Details

Attachments

(19 files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
No description provided.

Depends on D80231

Instead of recalculating the animation style every tick of an animation,
cache the computed values when animations change. In addition to being
more efficient, this will allow us to return animation rules as property
declarations because we don't need to consult the final style to produce
them.

Depends on D80232

This begins to address #26625 by properly applying CSS variables during
keyframe computation and no longer using apply_declarations. Instead,
walk the declarations, combining them into IntermediateComputedKeyframe,
maintaining declarations that modify CSS custom properties. Then compute
a set of AnimationValues for each keyframe and use those to produce
interpolated animation values.

Depends on D80233

Instead of applying animations and transitions to styled elements,
include them in the cascade. This allows them to interact properly with
things like font-size and !important rules.

Depends on D80234

When animations and transitions change don't always re-resolve node
style, just replace the animation and transition rules and re-cascade.

Depends on D80236

This will be used in order to hold animations for pseudo elements in the
DocumentAnimationSet. Also no longer store the OpaqueNode in the
animation and transition data structures. This is already part of the
DocumentAnimationSet key.

Depends on D80241

This change extends the DocumentAnimationSet to hold animations for
pseudo-elements. Since pseudo-elements in Servo are not in the DOM like
in Gecko, they need to be handled a bit carefully in stylo. When a
pseudo-element has an animation, recascade the style. Finally, this
change passes the pseudo-element string properly to animation events.

Fixes: #10316

Depends on D80242

These two structs are very similar, so we can combine them.

Depends on D80243

Depends on D80245

No good reason to have this IMO, and helps remove some #[cfg] blocks.

Depends on D80246

Depends on D80248

Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d7a1aeb69518
servo: Gate layout 2020 flex implementation behind a pref.
https://hg.mozilla.org/integration/autoland/rev/1743d20e0d02
Enable `order` in layout-2020.
https://hg.mozilla.org/integration/autoland/rev/400228984077
servo: Cache animation computed values when animations change.
https://hg.mozilla.org/integration/autoland/rev/f6e4935b184b
servo: Better computation of animation keyframes.
https://hg.mozilla.org/integration/autoland/rev/bdbb1eb6acf1
servo: Include animations and transitions in the cascade.
https://hg.mozilla.org/integration/autoland/rev/08aa02d53ba5
servo: Enable parsing of `flex-*` properties for layout-2020.
https://hg.mozilla.org/integration/autoland/rev/023935dbbdd6
servo: animations: Don't always re-resolve the node style.
https://hg.mozilla.org/integration/autoland/rev/366e36da6a7a
servo: Implement CanvasRenderingContext2D.font property.
https://hg.mozilla.org/integration/autoland/rev/086c24ae5689
servo: Enable textAlign, textBaseline and direction attributes for canvas.
https://hg.mozilla.org/integration/autoland/rev/82715114ac5b
servo: Derive Serialize and Deserialize traits for font styles.
https://hg.mozilla.org/integration/autoland/rev/cb3a0bb7571a
servo: Implement visibility for layout_2020.
https://hg.mozilla.org/integration/autoland/rev/04f8394b23bb
servo: Add DocumentAnimationSet and AnimationSetKey.
https://hg.mozilla.org/integration/autoland/rev/0da5430c2b2e
servo: Add animation and transition support for pseudo-elements.
https://hg.mozilla.org/integration/autoland/rev/e6d0a75ce395
servo: Combine AnimationAndTransitionDeclarations and AnimationRules.
https://hg.mozilla.org/integration/autoland/rev/61bedf23521b
Sync some comment changes from servo.
https://hg.mozilla.org/integration/autoland/rev/0023edce297c
Fix servo build.
https://hg.mozilla.org/integration/autoland/rev/0c86a4e35a8e
servo: Remove the dependency on font-kit from style.
https://hg.mozilla.org/integration/autoland/rev/a3dfa01e1721
Remove some unused extern crate declarations now that style is in rust 2018.
https://hg.mozilla.org/integration/autoland/rev/206011a5cc20
Fix gecko build.
You need to log in before you can comment on or make changes to this bug.