Sync servo stuff.
Categories
(Core :: CSS Parsing and Computation, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: emilio, Assigned: emilio)
References
(Blocks 1 open bug)
Details
Attachments
(20 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 | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Assignee | ||
Comment 1•5 years ago
|
||
This refactor is preparation for implementing a specification
compliant transitions and animations processing model.
These data structures hold all the animation information about a single
node. Since adding, updating, and modifying animations for a single node
are all interdependent, it makes sense to start encapsulating animation
data and functionality into a single data structure. This also opens up
the possibility for easier concurrency in the future by more easily
allowing per-node mutexes.
Assignee | ||
Comment 2•5 years ago
|
||
When doing a restyle, we should apply animations and transitions to the
new style so that it is reflected in getComputedStyle()
and the new
style information properly cascades. This is the first part of properly
ticking animations and transitions.
This causes a couple new animations tests failures (along with many new
passes), but we currently don't have support for properly handling
animations after they have completed, so this isn't totally unexpected.
Depends on D78184
Assignee | ||
Comment 3•5 years ago
|
||
update_style_for_animation
previously handled both canceling defunct
animations and also updating style to reflect current animation state.
This change splits those two concerns because we want to start handling
replaced or canceled animations and finished animations in two different
places.
This is a refactor, so ideally it shouldn't change any behavior.
Depends on D78185
Assignee | ||
Comment 4•5 years ago
|
||
This is triggered when an animation finishes. This is a high priority
because it allows us to start rooting nodes with animations in the
script thread.
This doesn't yet cause a lot of tests to pass because they rely on the
existence of Document.getAnimations()
and the presence of
animationstart
and animationiteration` events.
Depends on D78186
Assignee | ||
Comment 5•5 years ago
|
||
This change corrects synchronization issues with animations, by
reworking the animation processing model to do a quick restyle and
incremental layout when ticking animations.
While this change adds overhead to animation ticks, the idea is that
this will be the fallback when synchronous behavior is required to
fulfill specification requirements. In the optimistic case, many
animations could be updated and applied off-the-main-thread and then
resynchronized when style information is queried by script.
Fixes #13865.
Depends on D78187
Assignee | ||
Comment 6•5 years ago
|
||
This is a small step toward fixing #19242. The main idea is that the
clock for animations should advance as the event loop ticks. We
accomplish this by moving the clock from layout and naming it the
"animation timeline" which is the spec language. This should fix
flakiness with animations and transitions tests where a reflow could
move animations forward while script was running.
This change also starts to break out transition and animation events
into their own data structure, because it's quite likely that the next
step in fixing #19242 is to no longer send these events through a
channel.
Depends on D78188
Assignee | ||
Comment 7•5 years ago
|
||
This change splits the list of animations and transitions, which are
almost always handled differently. It also renames
ElementAnimationState
to ElementAnimationSet
and establishes an
AnimationState
for every transition and animation. This allows us to
stop continually reallocating lists every time a transition or animation
needs to be canceled.
Fixes #14419.
Depends on D78189
Assignee | ||
Comment 8•5 years ago
|
||
This implementation is more-or-less on par with the one from layout_2013
and in some cases better. There are still some cases where we don't
return the correct "resolved value," but this is enough to test
animations and transitions.
Depends on D78190
Assignee | ||
Comment 9•5 years ago
|
||
This is preparation for sharing this code with layout_2020 and
implementing selective off-the-main-thread animations.
We still look for nodes not in the flow tree in the layout thread.
Depends on D78191
Assignee | ||
Comment 10•5 years ago
|
||
This removes an extra layer of abstraction and allows Servo to share
more code with Gecko. In addition, we will need to handle raw
AnimationValue
structs soon in order to fully implement "faster
reversing of interrupted transitions."
Depends on D78192
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D78193
Assignee | ||
Comment 12•5 years ago
|
||
Fixes #26460.
Depends on D78194
Assignee | ||
Comment 13•5 years ago
|
||
Depends on D78195
Assignee | ||
Comment 14•5 years ago
|
||
Depends on D78196
Assignee | ||
Comment 15•5 years ago
|
||
Depends on D78198
Assignee | ||
Comment 16•5 years ago
|
||
Depends on D78199
Assignee | ||
Comment 17•5 years ago
|
||
Depends on D78200
Assignee | ||
Comment 18•5 years ago
|
||
Depends on D78201
Assignee | ||
Comment 19•5 years ago
|
||
The size of LLVM IR for the style
crate is reduced by ~1.5% (27k lines out of 1.8M)
CC https://github.com/servo/servo/issues/26713
Depends on D78202
Assignee | ||
Comment 20•5 years ago
|
||
Depends on D78203
Comment 21•5 years ago
|
||
Comment 22•5 years ago
|
||
Backed out changeset bde27b38c9c5 (bug 1643201) for causing Valgrind failures and build bustages
Log:
https://hg.mozilla.org/integration/autoland/rev/b2e08545da6d006cb47690dd2531d0b219f05e42
Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=d39b5b23b9e7fc06f33ff4511a48fee3e117ea83
Backout:
https://hg.mozilla.org/integration/autoland/rev/45f4b812781ae37a0b7f334706c9e969ef6e245c
Assignee | ||
Comment 23•5 years ago
|
||
Yeah, that one is expected because apparently we don't yet require a new enough rustc.
Comment 24•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/bdb02303566d
https://hg.mozilla.org/mozilla-central/rev/6afd89eee82b
https://hg.mozilla.org/mozilla-central/rev/7937d276db3e
https://hg.mozilla.org/mozilla-central/rev/1779bf62260b
https://hg.mozilla.org/mozilla-central/rev/c4b33abc1b98
https://hg.mozilla.org/mozilla-central/rev/ac13071264c4
https://hg.mozilla.org/mozilla-central/rev/e8e92526100a
https://hg.mozilla.org/mozilla-central/rev/96fbb7b812da
https://hg.mozilla.org/mozilla-central/rev/e907368ef285
https://hg.mozilla.org/mozilla-central/rev/99aa4226e81a
https://hg.mozilla.org/mozilla-central/rev/46918ab447af
https://hg.mozilla.org/mozilla-central/rev/47f49e90072d
https://hg.mozilla.org/mozilla-central/rev/5d9d36ffbe79
https://hg.mozilla.org/mozilla-central/rev/bba2644b07f9
https://hg.mozilla.org/mozilla-central/rev/d9fdb200ad7d
https://hg.mozilla.org/mozilla-central/rev/281a323cde5f
https://hg.mozilla.org/mozilla-central/rev/12ed642c5d13
https://hg.mozilla.org/mozilla-central/rev/8e720ce58686
https://hg.mozilla.org/mozilla-central/rev/2aff0731b7a8
Assignee | ||
Comment 25•4 years ago
|
||
Comment on attachment 9154043 [details]
Bug 1643201 - Cherry-pick some servo changes to derive_common.
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: Build fix for new rust compiler versions.
- User impact if declined: none
- Fix Landed on Version: 79
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Build-only code change.
- String or UUID changes made by this patch: none
Comment 26•4 years ago
|
||
Comment on attachment 9154043 [details]
Bug 1643201 - Cherry-pick some servo changes to derive_common.
approved for 78.4esr
Comment 27•4 years ago
|
||
bugherder uplift |
Comment 28•4 years ago
|
||
Comment on attachment 9154043 [details]
Bug 1643201 - Cherry-pick some servo changes to derive_common.
I'm going to clear both the status and uplift flag for this, only one patch made it to esr78.
Updated•4 years ago
|
Comment 29•4 years ago
|
||
can confirm that 78.4.0rc2 doesnt build with rust 1.47.0.
Comment 30•4 years ago
|
||
Having also problem with Thunderbird 78.4 (same with 78.3).
Description
•