Bug 1341372 - Part 6: Trigger transitions.

1. We need to call get_after_change_style, which is the computed styles
   without transition rules, while process_animations.
2. If we have after-change style, we may replace the new computed values with
   after-change style, according to whether we really need to update
   transitions.
3. There are some cases we don't update transitions, so we need to early
   return. might_needs_transitions_update() will check it first and it
   will filter out most common cases.
4. needs_transitions_update() will check each property and existing running
   transitions to make sure we really don't need to update transitions.
   The logic of this function is similar with that of
   nsTransitionManager::DoUpdateTransitions().

MozReview-Commit-ID: 2ccdPjgrxKz
This commit is contained in:
Boris Chiou 2017-04-17 14:32:41 +08:00
parent 2399cde504
commit eb8db7b892
6 changed files with 315 additions and 16 deletions

View file

@ -653,6 +653,25 @@ extern "C" {
aPseudoTagOrNull: *mut nsIAtom)
-> bool;
}
extern "C" {
pub fn Gecko_ElementTransitions_Length(aElement: RawGeckoElementBorrowed,
aPseudoTagOrNull: *mut nsIAtom)
-> usize;
}
extern "C" {
pub fn Gecko_ElementTransitions_PropertyAt(aElement:
RawGeckoElementBorrowed,
aPseudoTagOrNull: *mut nsIAtom,
aIndex: usize)
-> nsCSSPropertyID;
}
extern "C" {
pub fn Gecko_ElementTransitions_EndValueAt(aElement:
RawGeckoElementBorrowed,
aPseudoTagOrNull: *mut nsIAtom,
aIndex: usize)
-> RawServoAnimationValueBorrowedOrNull;
}
extern "C" {
pub fn Gecko_GetProgressFromComputedTiming(aComputedTiming:
RawGeckoComputedTimingBorrowed)