Commit Graph

451 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
154a2e73aa Bug 1443427 - Don't flush throttled animations in Animation::FlushStyle(). r=birtles
Animation::FlushStyle() gets called only for CSS animations/transitions'
playState changes in JS or ready Promise for CSS animations.  In either case
throttled animation state, which is, to be precise, transformed position or
opacity value on the compositor, doesn't affect those results.

The first test case for CSS animations and the first test case for CSS
transitions in this patch fail without this fix.

MozReview-Commit-ID: EVym4qputL4
2018-04-11 18:01:14 +09:00
Hiroyuki Ikezoe
596b3319a9 Bug 1412716 - De-templatize functions in nsTransitionManager. r=emilio
MozReview-Commit-ID: 6u1fOrIH8PA
2018-04-10 07:03:00 +09:00
Emilio Cobos Álvarez
3284a9dda8 Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02:00
Emilio Cobos Álvarez
c48b1f646b Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez
1d4859a89a Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez
97286b35c8 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez
1f5d8de5cc Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Emilio Cobos Álvarez
d5a532f665 Bug 1447476: Remove TreeMatchContext. r=xidorn
MozReview-Commit-ID: ETK0uGXytqb
2018-03-21 17:20:59 +01:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Tom Ritter
a428113b9a Bug 1440195 Address CSS Animations r=birtles
For now, we are going to make _all_ CSS Animations related timer fuzzing
only applicable in Resist Fingerprinting Mode (addressing the last couple
that had not already been configured that way.)

We hardcode their content mix-ins as zero, but leave comments indicating
how they should behave.

MozReview-Commit-ID: KhmV7wO8Pt5
2018-03-05 15:58:46 -06:00
Cameron McCormack
f2d37b44c3 Bug 1430014 - Part 6: #ifdef out a bit more animation-related code. r=hiro
MozReview-Commit-ID: B9TaVJFak26
2018-02-01 15:04:04 +11:00
Cameron McCormack
34288f7f48 Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl
2018-02-01 15:04:04 +11:00
Cameron McCormack
02c617875f Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN
2018-02-01 15:04:04 +11:00
Hiroyuki Ikezoe
d2a02a7a1b Bug 1415780 - Let nsPresContext have AnimationEventDispatcher. r=birtles
Now we sort CSS animation/transition events by scheduled event time prior
to compositor order.

SortEvents() will be a private method in the next patch in this patch
series.

MozReview-Commit-ID: ICkOayquN0f
2018-01-27 21:17:27 +09:00
Hiroyuki Ikezoe
e71a499c3f Bug 1415780 - De-templatize AnimationEventDispatcher. r=birtles,masayuki
Now single AnimationEventDispatcher can handle both CSS animation/transition
events simultaneously.  To do this we had to change AnimationEventInfo and
TransitionEventInfo into a single struct, the struct is also named
AnimationEventInfo.

It results we can sort both CSS animation/transition events altogether.  Thus
we make sure CSS animation/transition events are sorted by scheduled event time
prior to their composite order (i.e. transitions is prior to animations).

At this moment, we don't sort both events altogether since nsAnimationManager
and nsTransitionManager has an AnimationEventDispatcher respectively.  In the
next patch we move AnimationEventDispatcher into nsPresContext, i.e. each
document has an AnimationEventDispatcher without the distinction between
CSS animations and transitions.

Note that, after this patch, we copy all members in InternalTransitionEvent and
InternalAnimationEvent in the copy-constructor of AnimationEventInfo, this
will be fixed once WidgetEvent has move-constructor and move-assignment
(bug 1433008).

MozReview-Commit-ID: 5JAh6N7C6ee
2018-01-27 21:17:27 +09:00
Cosmin Sabou
f642a7b9c4 Backed out 12 changesets (bug 1415780) for build bustages nsRefreshDriver.cpp:1606:1 and AnimationCommon.h:168:51 on a CLOSED TREE
Backed out changeset 1fa2f138319e (bug 1415780)
Backed out changeset 6bad89a17566 (bug 1415780)
Backed out changeset a88250ad7a3e (bug 1415780)
Backed out changeset 43d42ca7308f (bug 1415780)
Backed out changeset 79e980195ee8 (bug 1415780)
Backed out changeset f0cc29e7ccd7 (bug 1415780)
Backed out changeset c6567e4196f6 (bug 1415780)
Backed out changeset ae7be65f3c88 (bug 1415780)
Backed out changeset 621b9aaf4a8f (bug 1415780)
Backed out changeset e298f242ce7c (bug 1415780)
Backed out changeset 027a7ed3c948 (bug 1415780)
Backed out changeset 433a6f0d0ac3 (bug 1415780)
2018-01-27 12:47:29 +02:00
Hiroyuki Ikezoe
a154be0ff5 Bug 1415780 - Let nsPresContext have AnimationEventDispatcher. r=birtles
Now we sort CSS animation/transition events by scheduled event time prior
to compositor order.

SortEvents() will be a private method in the next patch in this patch
series.

MozReview-Commit-ID: ICkOayquN0f
2018-01-27 16:55:45 +09:00
Hiroyuki Ikezoe
4855a2658a Bug 1415780 - De-templatize AnimationEventDispatcher. r=birtles,masayuki
Now single AnimationEventDispatcher can handle both CSS animation/transition
events simultaneously.  To do this we had to change AnimationEventInfo and
TransitionEventInfo into a single struct, the struct is also named
AnimationEventInfo.

It results we can sort both CSS animation/transition events altogether.  Thus
we make sure CSS animation/transition events are sorted by scheduled event time
prior to their composite order (i.e. transitions is prior to animations).

At this moment, we don't sort both events altogether since nsAnimationManager
and nsTransitionManager has an AnimationEventDispatcher respectively.  In the
next patch we move AnimationEventDispatcher into nsPresContext, i.e. each
document has an AnimationEventDispatcher without the distinction between
CSS animations and transitions.

Note that, after this patch, we copy all members in InternalTransitionEvent and
InternalAnimationEvent in the copy-constructor of AnimationEventInfo, this
will be fixed once WidgetEvent has move-constructor and move-assignment
(bug 1433008).

MozReview-Commit-ID: 5JAh6N7C6ee
2018-01-27 16:55:44 +09:00
Hiroyuki Ikezoe
9476c59959 Bug 1430975 - Reduce elapsed time precision for transitioncancel event. r=boris
See the table for elapsed time for each transition event;
https://drafts.csswg.org/css-transitions-2/#event-dispatch

MozReview-Commit-ID: DuLip0XkwtE
2018-01-18 15:01:27 +09:00
Hiroyuki Ikezoe
1ebd1a9cf6 Bug 1430975 - Make zero duration as a static constexpr. r=boris
MozReview-Commit-ID: GX9qzgLkkNn
2018-01-18 15:01:24 +09:00
Hiroyuki Ikezoe
130a1118e5 Bug 1430975 - Don't pass a copy of StickyTimeDuration. r=boris
MozReview-Commit-ID: HlQlMB1FBRi
2018-01-17 18:05:03 +09:00
Hiroyuki Ikezoe
2864d8721f Bug 1430924 - Create animation event struct directly. r=boris
We don't need to create AnimationEventParams, we can direcly create
AnimationEventInfo array and move it to dispatcher.

MozReview-Commit-ID: BCzKGAV8VTw
2018-01-17 08:13:01 +09:00
Hiroyuki Ikezoe
157c43958d Bug 1430924 - Queue a bunch of animation events at once. r=boris
MozReview-Commit-ID: BjRjohOFA7V
2018-01-17 08:13:01 +09:00
Hiroyuki Ikezoe
e4f4e2eee4 Bug 1430924 - AnimationEventInfo and TransitionEventInfo take NonOwningAnimationTarget instead of Element and CSSPseudoElementType pair. r=boris
MozReview-Commit-ID: HYN9AWuyjem
2018-01-17 08:13:01 +09:00
Hiroyuki Ikezoe
4dbb7d7915 Bug 1420928 - Reuse computed values for transition properties repeatedly if the computed values' length is less than transition-property length. r=boris
MozReview-Commit-ID: BptxzspwoP9
2018-01-05 06:24:09 +09:00
Hiroyuki Ikezoe
e0dda36685 Bug 1420928 - Pass a const reference of nsStyleDisplay instead of a raw pointer to DoUpdateTransitions. r=birtles,boris
MozReview-Commit-ID: 91QtuEqlRYv
2018-01-05 06:24:07 +09:00
Brian Birtles
c5407a9f86 Bug 1412765 - Add Animation.pending member; r=bz,hiro
This reflects the change made to the Web Animations specification in:

  9e2053f553
  1c3415f4cc
  (I got it wrong the first time. The second commit fixes the first.)

And discussed in:

  https://github.com/w3c/web-animations/issues/196

In summary, we are splitting the "pending" play state out into a separate
boolean member so that it is possible to distinguish between "play-pending" and
"pause-pending" and because most of the time when you check for
animation.playState === 'running' you also really want to include play-pending
animations.

MozReview-Commit-ID: IJSNoZTKW2I
2017-11-21 17:10:59 +09:00
Daniel Holbert
8fea3c215f Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK
2017-10-27 10:33:53 -07:00
Emilio Cobos Álvarez
4b6d7fc287 Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley
MozReview-Commit-ID: E0mdkhU3XBz
2017-07-22 18:02:57 +02:00
Manish Goregaokar
82f2e05017 Bug 1382017 part 4 Gecko piece - Rename ServoComputedValues -> ServoComputedData; r=heycam
ServoComputedValues is confusing because ComputedValues is actually
ServoStyleContext on the C++ side.

MozReview-Commit-ID: IQNVdfREAMt
2017-07-20 21:44:02 -07:00
Emilio Cobos Álvarez
4b330993d3 Bug 1381764 - style: More ComputedValuesInner cleanup. r=Manishearth on a CLOSED TREE
MozReview-Commit-ID: 8rkAP3pMEpD
2017-07-18 16:22:33 -07:00
Manish Goregaokar
0dcf16fa0c Bug 1367904 - Part 14: stylo: Remove FFI calls for fetching style structs from ServoComputedValues; r=bholley
MozReview-Commit-ID: 2HrVZl9HZu1
2017-07-17 21:01:10 -07:00
Manish Goregaokar
86e90da5c3 Bug 1367904 - Part 10: stylo: Switch Gecko over to ServoStyleContext; r=bholley
MozReview-Commit-ID: EmopKVjEzlz
2017-07-17 21:00:46 -07:00
Hiroyuki Ikezoe
023f9872f2 Bug 1374882 - Encapsulate TimingParams's member variables. r=birtles
MozReview-Commit-ID: 1KhEdCSwpES
2017-06-22 12:12:43 +09:00
Boris Chiou
ca7a2d3001 Bug 1339690 - Part 7: Stop storing invalid property value. r=birtles
MozReview-Commit-ID: H3aRcJIk7CV
2017-06-14 11:43:47 +08:00
Brian Birtles
74051b4a93 Bug 1371518 - Use Servo backend to determine if a property is transitionable; r=hiro
This allows Gecko to use the same criteria as Servo for evaluating if a property
should be transitioned and will cause Gecko to exclude discretely animated
properties, including, in future, the 'display' property.

MozReview-Commit-ID: H2wWVo5isKS
2017-06-15 09:54:06 +09:00
Hiroyuki Ikezoe
11db326869 Bug 1367293 - Don't get parent style for GetComputedKeyframeValuesFor. r=birtles
MozReview-Commit-ID: 7WjsO7P2QGz
2017-06-02 09:38:54 +09:00
Emilio Cobos Álvarez
c4f847ffaa Bug 1355343: Take all the snapshots into account. r=bholley
I've chosen this approach mainly because there's no other good way to guarantee
the model is correct than holding the snapshots alive until a style refresh.

What I tried before this (storing them in a sort of "immutable element data") is
a pain, since we call into style from the frame constructor and other content
notifications, which makes keeping track of which snapshots should be cleared an
which shouldn't an insane task.

Ideally we'd have a single entry-point for style, but that's not the case right
now, and changing that requires pretty non-trivial changes to the frame
constructor.

MozReview-Commit-ID: FF1KWZv2iBM
2017-05-07 16:36:47 +02:00
Brian Birtles
6f31f71d47 Bug 1355348 - Move ServoComputedValuesWithParent to separate file; r=hiro
We will use this type later in this patch series in nsSMILCSSProperty so this
patch moves it to a separate file so it can be re-used.

MozReview-Commit-ID: 4Z7YbsQ9xz4
2017-04-26 13:00:11 +09:00
Emilio Cobos Álvarez
d133d0c021 Bug 1358570: Make PurgeCompletedTransitions lookup the correct animation collection. r=hiro
Probably GetAnimationCollection itself should assert against it, but that's a
bigger task right now...

MozReview-Commit-ID: JxFWXtgMAXy
2017-04-21 16:53:21 +02:00
Boris Chiou
40da2266c0 Bug 1343753 - Part 9: Early return for non-animatable properties for transitions. r=hiro,manishearth
MozReview-Commit-ID: HtNavkzyHvt
2017-04-12 16:37:09 +08:00
Boris Chiou
082b181da9 Bug 1343753 - Part 8: Rename and add new methods in nsTransitionManager. r=birtles
Rename UpdateTransitions as DoUpdateTransitions, and add a public
method, UpdateTransitions for stylo.

MozReview-Commit-ID: 7UiGzFsGZC4
2017-04-12 16:33:44 +08:00
Boris Chiou
69d7060ea7 Bug 1343753 - Part 7: Use template for UpdateTransitions and ConsiderInitiatingTransition. r=birtles
We use the template to replace the type, nsStyleContext and
ServoComputedValuesWithParent.

MozReview-Commit-ID: JFPdODZAwX8
2017-03-09 15:37:17 +08:00
Boris Chiou
68f83f15a6 Bug 1343753 - Part 6: Move mAnimationGeneration into RestyleManager. r=birtles
So stylo can also use mAnimationGeneration.

MozReview-Commit-ID: KTc8vs2RKMm
2017-03-09 17:15:08 +08:00
Boris Chiou
21b271db03 Bug 1343753 - Part 5: Support ServoComputedValues in ExtractNonDiscreteComputedValue. r=birtles,hiro,manishearth
We use ServoComputedStyleValues as the argument here, instead of
ServoComputedValues, because I will use template for nsStyleContext and
ServoComputedValuesWithParent in UpdateTransitions() and
ConsiderInitiatingTransition(). Besides, add an FFI to check if a
proeprty is discrete animation type.

MozReview-Commit-ID: 7VtcMDtgl55
2017-04-12 16:31:12 +08:00
Boris Chiou
53644c1a40 Bug 1343753 - Part 4: Introduce AnimationValue::IsInterpolableWith. r=birtles,manishearth
We have different interpolation implementations on Gecko and Servo, so
wrap the "Can be Interpolated" in AnimationValue. This patch also introduces
the FFI, Servo_Animationvalues_IsInterpolable.

MozReview-Commit-ID: 92Yf1u84A3c
2017-04-12 16:26:59 +08:00
Boris Chiou
e62a6d13a7 Bug 1343753 - Part 3: Use AnimationValue in ElementPropertyTransition and CSSTransition. r=birtles
We also need to update the interpolation code based on ServoAnimationValue in
ElementPropertyTransition::UpdateStartValueFromReplacedTransition().
Therefore, ElementPropertyTransition can be used by both Gecko and Servo.

MozReview-Commit-ID: BrIpvRR3te8
2017-03-09 12:33:15 +08:00
Boris Chiou
a237df76a8 Bug 1343753 - Part 2: Update GetTransitionKeyframes for stylo. r=birtles,manishearth
Use AnimationValue as arguments, and add one FFI to uncompute the
value. Therefore, we can use GetTransitionKeyframes for both Gecko and
Servo backends. However, there are many "mGecko"s, which will be removed
later.

MozReview-Commit-ID: Dg5hrDdlIWb
2017-04-12 15:51:55 +08:00
Boris Chiou
8491467388 Bug 1343753 - Part 1: Make GetTransitionKeyframes as a local static function. r=birtles
GetTransitionKeyframes is a simple helper function, which is only used by
ConsiderInitiatingTransition, so let's make it static to reduce the time
to revise the header.

MozReview-Commit-ID: HlztPxz8sMJ
2017-03-09 13:35:43 +08:00
Hiroyuki Ikezoe
86a7d15844 Bug 1344603 - Make Stop{Animations|Transitions}ForElement as a member function of CommonAnimationManager. r=boris
MozReview-Commit-ID: LSSpWYjoPn9
2017-03-06 13:19:09 +09:00