Commit Graph

262 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
505d34c3d0 Bug 1461070: Skip starting other transitions based on specified, not already-started transitions. r=birtles,dbaron
MozReview-Commit-ID: 3D5elrj2Ypi
2018-05-18 17:21:16 +02:00
Brian Birtles
033b8ba988 Bug 1456394 - Rename AnimationEffectReadOnly to AnimationEffect; r=bz,hiro
MozReview-Commit-ID: 8jzJiCWt5vs
2018-05-07 11:15:16 +09:00
Brian Birtles
b48a10996d Bug 1456394 - Merge KeyframeEffectReadOnly and KeyframeEffect; r=bz,hiro
MozReview-Commit-ID: FvTMGjxfRXk
2018-05-07 11:08:59 +09:00
Brian Birtles
1319f89405 Bug 1456394 - Rename KeyframeEffectReadOnly.{h,cpp} to KeyframeEffect.{h,cpp}; r=bz,hiro
MozReview-Commit-ID: 5Q7oQV8vmgS
2018-05-07 11:07:06 +09:00
Emilio Cobos Álvarez
fe6614d1dd Bug 1454503: Remove unneeded refcounting in nsAnimationManager / nsTransitionManager. r=hiro
MozReview-Commit-ID: 1zgUfDhH8bm
2018-04-17 11:24:59 +02:00
Hiroyuki Ikezoe
771b39a282 Bug 1412716 - Drop forward declarations of GeckoComputedStyle. r=emilio
MozReview-Commit-ID: CeI958wmdPE
2018-04-10 07:03:05 +09:00
Hiroyuki Ikezoe
9caef046cf Bug 1412716 - Drop redundant forward declarations of ComputedStyle. r=emilio
MozReview-Commit-ID: ALMQ9Ws6eE1
2018-04-10 07:03:03 +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
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
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
Hiroyuki Ikezoe
0a696c26d2 Bug 1444221 - #ifdef out some animation related stuff for MOZ_OLD_STYLE. r=xidorn
MozReview-Commit-ID: 9VC4qUbO6uK
2018-03-09 07:09:44 +09: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
a034829e2a Bug 1415780 - Make AnimationEventDispatcher refcountable. r=birtles
In a subsequent patch in this patch series, we want to make nsPresContext
have an AnimationEventDispatcher as RefPtr<>.

Instead, if we were trying to make nsPresContext have the
AnimationEventDispatcher as data object (not RefPtr<>) just like we did in
CommonAnimationManager, we will fall into header inclusion hell since Element.h
includes nsPresContext.h and AnimationEventDispatcher.h ends up including
Element.h.  Even if we could solve the inclusion hell, we will suffer from Rust
bindgen issues for some reasons.

MozReview-Commit-ID: B0nX2JzIRJD
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
Hiroyuki Ikezoe
2582b42209 Bug 1415780 - Move AnimationCollection::PseudoTypeAsString into nsCSSPseudoElements. r=birtles
It's not need to be a template function since the function is independent from
AnimationType.

MozReview-Commit-ID: 13WkRIfaQbZ
2018-01-27 21:17:26 +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
a364c9d16d Bug 1415780 - Make AnimationEventDispatcher refcountable. r=birtles
In a subsequent patch in this patch series, we want to make nsPresContext
have an AnimationEventDispatcher as RefPtr<>.

Instead, if we were trying to make nsPresContext have the
AnimationEventDispatcher as data object (not RefPtr<>) just like we did in
CommonAnimationManager, we will fall into header inclusion hell since Element.h
includes nsPresContext.h and AnimationEventDispatcher.h ends up including
Element.h.  Even if we could solve the inclusion hell, we will suffer from Rust
bindgen issues for some reasons.

MozReview-Commit-ID: B0nX2JzIRJD
2018-01-27 16:55:44 +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
540671387b Bug 1415780 - Move AnimationCollection::PseudoTypeAsString into nsCSSPseudoElements. r=birtles
It's not need to be a template function since the function is independent from
AnimationType.

MozReview-Commit-ID: 13WkRIfaQbZ
2018-01-27 16:55:43 +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
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
7993f49d07 Bug 1430975 - Rename |aDuration| argument to |aElapsedTime|. r=boris
It's not actually duration.

MozReview-Commit-ID: LUHrJTJPMuj
2018-01-17 18:05:03 +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
dfd0d90428 Bug 1430924 - Move mEventDispatcher in nsAnimationManager and nsTransitionManager into the common template class. r=boris
DispatchEvents() couldn't be moved since the function holds a reference of
nsAnimationManager or nsTransitionManager, but the common template class
is not ref-countable.

MozReview-Commit-ID: FfiJtzSZWn
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
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11: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
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
11db326869 Bug 1367293 - Don't get parent style for GetComputedKeyframeValuesFor. r=birtles
MozReview-Commit-ID: 7WjsO7P2QGz
2017-06-02 09:38:54 +09: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
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
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
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
Mantaroh Yoshinaga
246a4a50cb Bug 1302648 part 5 - Queue animationcancel when animation status is idle. r=birtles
MozReview-Commit-ID: DRjWboQwR0A
2017-02-10 12:32:44 +09:00
Mantaroh Yoshinaga
1831b55c4b Bug 1302648 part 4 - Call UpdateTiming() after removing the animation from the timeline. r=birtles
We will need to remove animation from timeline before calling Animation::UpdateTiming() in order to fire the cancel event.
In bug 1264125, we request one more tick after calling Animation::Cancel(), however we won't need to call this request if we apply this changeset.

MozReview-Commit-ID: h0dxUdtgkl
2017-02-10 12:32:44 +09:00
Boris Chiou
afe4b3dc4b Bug 1335942 - Part 2: Use mozilla::AnimationValue in AnimationPropertySegment. r=hiro,manishearth
MozReview-Commit-ID: L6U1A223jsa
2017-02-04 13:57:08 +08:00
Mantaroh Yoshinaga
7cf3d2b8b4 Bug 1308099 part 1 - Rename AnimationPhase::Null to AnimationPhase::Idle. r=hiro
In Web Animations specification, if the animation effect is in none of the any phase, it define as 'Idle' phase. [1]
But, in the gecko, it defined as 'Null' phase.

So we will need to use 'Idle' phase for consistency.

[1] https://w3c.github.io/web-animations/#idle-phase

MozReview-Commit-ID: FlPpYOqdM4X
2017-01-25 15:43:57 +09:00
Mantaroh Yoshinaga
2381e8946b Bug 1264125 part 6 - Queue CSS related event when setting null target effect. r=birtles
MozReview-Commit-ID: 6KILkmNInbm
2016-12-20 16:03:29 +09:00
Mantaroh Yoshinaga
0adb32af09 Bug 1264125 part 5 - Call the queueing events when canceling transition via Style or Script. r=birtles
MozReview-Commit-ID: 5qWef4xCZXX
2016-12-20 16:03:29 +09:00
Mantaroh Yoshinaga
0249279370 Bug 1287983 part 6 - Integrate ElapsedTimeToTimeStamp function to the Animation class. r=birtles
MozReview-Commit-ID: 43AGaTYQoqn
2016-10-19 15:16:52 +09:00
Mantaroh Yoshinaga
4af39d9541 Bug 1287983 part 5 - Clarify the function name of creating transition. r=hiro
MozReview-Commit-ID: AW5qD8uBQxf
2016-10-19 15:16:52 +09:00