Граф коммитов

204 Коммитов

Автор SHA1 Сообщение Дата
Hiroyuki Ikezoe 377cb840b0 Bug 1354947 - Expose FindMatchingKeyframe and make it reusable for nsTimingFunction. r=birtles
MozReview-Commit-ID: Jjcrk5AhtUH

--HG--
extra : rebase_source : 0b372758d94fe850a2c5136d6b875fa704d5b9b2
2017-05-13 16:34:38 +09:00
Hiroyuki Ikezoe ee457cf7c3 Bug 1350754 - Convert pseudo nsIAtom to CSSPseudoElementType in Gecko_UpdateAnimations(). r=heycam
MozReview-Commit-ID: 38ZyRyxB73z

--HG--
extra : rebase_source : 01c971c2db8779f92d5845fa09047cb7eae43c7d
2017-03-27 19:43:13 +09:00
Hiroyuki Ikezoe de29155c66 Bug 1350754 - Use ServoComputedValuesWithParent for nsAnimationManager::UpdateAnimations(). r=birtles
MozReview-Commit-ID: GkLoACgqVON

--HG--
extra : rebase_source : 1f47c5d5a73d4b343c677980af299e068ebebd84
2017-03-27 19:43:09 +09:00
Hiroyuki Ikezoe d28fbf09bc Bug 1344603 - Make Stop{Animations|Transitions}ForElement as a member function of CommonAnimationManager. r=boris
MozReview-Commit-ID: LSSpWYjoPn9

--HG--
extra : rebase_source : c87ec78281b37f1cb32e38969c22fddc228d28f8
2017-03-06 13:19:09 +09:00
Hiroyuki Ikezoe b6b41abea1 Bug 1340322 - Part 12: Add another variant of nsAnimationManager::UpdateAnimations for stylo. r=birtles
This function updates CSS Animations with servo's computed values.

In bug 1341985, this function will be called with null servo's computed values
in the case where the target element is in display:none subtree.

MozReview-Commit-ID: GzOYy57hYho

--HG--
extra : rebase_source : 5dd10dc6181222ce2a531fc6e837102d7694bf40
2017-03-06 09:54:06 +09:00
Hiroyuki Ikezoe fccd7b4c32 Bug 1340322 - Part 9: Templatize functions that will be used with servo's computed values. r=birtles
MozReview-Commit-ID: 8d5wHBhF4y9

--HG--
extra : rebase_source : 767bd65e2e57e6e991c0725bb6b86a7cb4f427dc
2017-03-06 09:51:16 +09:00
Hiroyuki Ikezoe d0ed1e91e7 Bug 1340322 - Part 8: Split off some processes that will be used for servo's computed values in UpdateAnimations(). r=birtles
MozReview-Commit-ID: LkWqhGsMCPf

--HG--
extra : rebase_source : 1b492da4269e92bd09fe392b85b5a91758119b0e
2017-03-06 09:50:09 +09:00
Hiroyuki Ikezoe 70c0e758be Bug 1340322 - Part 3: Make BuildAnimations static function. r=birtles
This function will be also a template function.

MozReview-Commit-ID: 4SbzEw8YzIZ

--HG--
extra : rebase_source : 24be2923cddf3aff82b84fb7d3c757f83fb42716
2017-03-06 09:48:36 +09:00
Hiroyuki Ikezoe 924ac7a4ab Bug 1340322 - Part 2: Use NonOwningAnimationTarget instead of Element and aStyleContext()->GetPseudoType(). r=birtles
MozReview-Commit-ID: JOBBGUs8kJd

--HG--
extra : rebase_source : bf94f9abf25805a25db1961371babbf70cb76a8a
2017-03-06 09:47:22 +09:00
Mantaroh Yoshinaga f0550caaae Bug 1302648 part 5 - Queue animationcancel when animation status is idle. r=birtles
MozReview-Commit-ID: DRjWboQwR0A

--HG--
extra : rebase_source : 17a92668519bdf7a4d7c58c97bd8f23b889767a7
2017-02-10 12:32:44 +09:00
Mantaroh Yoshinaga fa7dee3362 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

--HG--
extra : rebase_source : ac96209b28fdc781bf3787d348f2ae989e695640
2017-02-10 12:32:44 +09:00
Mantaroh Yoshinaga 2658cfcde7 Bug 1302648 part 3 - Change order of releasing owning element when cancel animation. r=birtles
The first step of Animation::Cancel(), it will release owning element.
However we will use owning element for queueing the CSS-Animations event, So we will need to release owning element after calling Animation::Cancel() in order to fire the animationcancel event.

MozReview-Commit-ID: ATqkIGkqREx

--HG--
extra : rebase_source : 9b04dc59349d1203d5f8604516fcc6765cf3d5a7
2017-02-10 12:32:44 +09:00
Mantaroh Yoshinaga 3ad37c274f 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

--HG--
extra : rebase_source : ec294c84f9c77a42d6128e3d43380b80fc130513
2017-01-25 15:43:57 +09:00
Mantaroh Yoshinaga 70e5e7e4ef Bug 1202333 part 2 - Update the CSSTransition::QueueEvents to specification. r=birtles
MozReview-Commit-ID: BxkZ359g7JR

--HG--
extra : rebase_source : b832f1e85ae022291bf3999cd3d49dfe2ba6a6a0
2016-12-20 15:57:20 +09:00
Mantaroh Yoshinaga cf59836bae Bug 1287983 part 6 - Integrate ElapsedTimeToTimeStamp function to the Animation class. r=birtles
MozReview-Commit-ID: 43AGaTYQoqn

--HG--
extra : rebase_source : 728380db2c6f3e035d05b6c746d2c0f08a1369b7
2016-10-19 15:16:52 +09:00
Hiroyuki Ikezoe c0a4f2e768 Bug 1304922 - Part 3: Request restyle for layer when CSS animation's index is changed. r=birtles
In the case when the animation index is changed, we have to update the layer
because the index affects composite order.
Currently UpdateCascadeResult() does it but the function will check
only which cascade level wins in the cascade level and request restyle
only when the winner is changed, e.g. when a CSS animation overrides a
CSS transition, etc. So we should call request restyle respectively when the index
is changed inside each Animation class.

MozReview-Commit-ID: KcEFyBpALDA

--HG--
extra : rebase_source : c2d0b49b5d383021518e66ff349a3302d552ca96
2016-10-05 14:26:29 +09:00
Hiroyuki Ikezoe af7c75acf9 Bug 1300701 - Notify changedAnimations to mutation observer when priority of CSS animations on an element is changed. r=birtles
MozReview-Commit-ID: GXv4c2DiRij

--HG--
extra : rebase_source : 770933f3a0832dfb05417c39697716b30185adba
2016-09-12 15:04:33 +09:00
Tetsuharu OHZEKI 34d28e65df Bug 1259676 - part3: rename from 'InternalAnimationEvent.pseudoElement' to 'InternalAnimationEvent.mPseudoElement'. r=masayuki
MozReview-Commit-ID: GBJtFdobipj

--HG--
extra : rebase_source : 528abb3d04e52547e6c4e13ea396e080406008b1
2016-03-26 13:37:20 +09:00
Tetsuharu OHZEKI 3aeb31cf0f Bug 1259676 - part2: rename from 'InternalAnimationEvent.elapsedTime' to 'InternalAnimationEvent.mElapsedTime'. r=masayuki
MozReview-Commit-ID: 4n5YQwxLeAx

--HG--
extra : rebase_source : 6c29d53092c7d1f84ef2ad38f44380c7579df270
2016-03-26 13:37:19 +09:00
Tetsuharu OHZEKI 693106452d Bug 1259676 - part1: rename from 'InternalAnimationEvent.animationName' to 'InternalAnimationEvent.mAnimationName'. r=masayuki
MozReview-Commit-ID: DK5Q477WoXu

--HG--
extra : rebase_source : 59f061c7835b6e2359ca937a06cf3890871a70ea
2016-03-26 13:37:19 +09:00
Brian Birtles 065446fdcd Bug 1239945 part 7 - Move GetAnimationCollection to AnimationCollection; r=dholbert
By moving GetAnimationCollection to AnimationCollection itself, we can remove
a bunch of virtual methods on the animation managers, simplify call sites,
and provide better type safety by ensuring a correspondence between element
property names and concrete animation types.

One change in behavior, however, is that in doing this we can no longer
add any newly-created AnimationCollection to the corresponding manager's linked
list of collections inside GetAnimationCollection. Instead we take a bool
outparam to indicate if a new collection was created and leave managing the
linked list to the manager. This is just a temporary measure, however, since
by the end of this patch series will will eliminate this linked list altogether
along with this flag.

MozReview-Commit-ID: 1jsc4QcmVDg
2016-03-09 12:55:39 +09:00
Brian Birtles dd4f27f03e Bug 1239945 part 6 - Templatize AnimationCollection based on the concrete type of Animation stored; r=dholbert
This patch templatizes the type of Animation stored in an AnimationCollection.
This allows us to remove a number AsCSSAnimation() calls in nsAnimationManager.

This patch also removes the AnimationPtrArray typedef. In its place we
introduce OwningCSSAnimationPtrArray and OwningCSSTransitionPtrArray but we
don't use these as widely. There was some comment previously that the typedefs
in animation code make it hard to read, particularly when these typedefs don't
make it clear if the data type is an owning reference or not.

In doing this we need to templatize CommonAnimationManager as well and move the
implementation of its (few) methods to the header file. We may be able to
remove the need for templatizing CommonAnimationManager later in this patch
series depending on how we ultimately decide to handle the lifetime of
AnimationCollection objects.

CommonAnimationManager::GetAnimationCollection is a bit messy but this will be
significantly tidied up in subsequent patches in this series.

MozReview-Commit-ID: 3ywatY53pRR
2016-03-09 12:55:39 +09:00
Brian Birtles d06f85599d Bug 1239945 part 1 - Drop a number of animation manager/collection-related methods that are unused (and in some cases undefined); r=dholbert 2016-02-24 13:41:16 +09:00
Hiroyuki Ikezoe 07c3358f3c Bug 1242872 - Part 7: Eliminate creation of temporary animations. r=dbaron
This patch removes a loop for the new temporary animation collection in
CheckAnimationRule.  The old collection is passed to CSSAnimationBuilder,
and CSSAnimationBuilder removes each animation which matches to new animation
name in it.
:birtles took care of storing animations in AnimationCollection in reverse order.
Thanks so much!

MozReview-Commit-ID: KmlnjFptKdv
2016-02-19 14:10:43 +09:00
Hiroyuki Ikezoe 67a3778e18 Bug 1242872 - Part 2: Set timeline in CSSAnimationBuilder::Build. r=dbaron
MozReview-Commit-ID: 6bisME1VK0d
2016-02-19 09:16:15 +09:00
Hiroyuki Ikezoe ed1cf18658 Bug 1242872 - Part 1: Introduce CSSAnimationBuilder to factor a bunch of stuff in BuildAnimations and CheckAnimationRule out. r=dbaron
MozReview-Commit-ID: 7921De3IVA6
2016-02-19 09:16:15 +09:00
Boris Chiou e436478f26 Bug 1244049 - Part 2: Replace nsCSSPseudoElements::Type with CSSPseudoElementType. r=dbaron
Also, try to use forward declaraions for CSSPseudoElementType;

--HG--
extra : rebase_source : c00eb9753e8f618a33aa711538ac45c0132b353c
2016-02-17 21:37:00 +01:00
Brian Birtles c3fe45107c Bug 1246046 part 1 - Get the animation rule in nsStyleSet::GetContext even if there are no CSS animations; r=heycam
Without this patch, when we have script-generated animations but *no* CSS
animations, nsStyleSet::GetContext will not use the updated animation rule.
2016-02-15 16:08:33 +09:00
Carsten "Tomcat" Book 106a8ed3ab Bug 1244250 - r=mats 2016-02-10 14:17:05 +01:00
Brian Birtles 6fb8992111 Bug 1235112 - Move animation style rule processors to EffectCompositor; r=heycam 2016-01-15 15:15:47 +09:00
Boris Chiou deee95a0d8 Bug 1214536 - Part 7: Rename AnimationTiming as TimingParams. r=birtles, r=smaug
1. struct AnimationTiming -> struct TimingParams
2. AnimationEffectReadOnly::TimingAsObject() -> AnimationEffectReadOnly::Timing()
3. KeyframeEffectReadOnly::Timing() -> KeyframeEffectReadOnly::SpecifiedTiming()
2016-01-13 18:41:00 +01:00
Boris Chiou fa79443f12 Bug 1214536 - Part 5: Add AnimationEffectTimingReadOnly interface. r=birtles, r=smaug
1. Add AnimationEffectTimingReadOnly.webidl.
2. Add AnimationEffectTimingReadOnly cpp files.
3. Use AnimationEffectTimingReadOnly as KeyframeEffectReadOnly::mTiming.

--HG--
extra : rebase_source : 0e9c112b70ae56f2bcdf162374388857518fc124
extra : amend_source : 0aebf0e9daac77542d913e4ad6a07c75e21a93b5
2016-01-13 18:37:00 +01:00
Nigel Babu 0ce7a5f39e Backed out 5 changesets (bug 1235112, bug 1237467) for nsRuleNode::Transition crashes
Backed out changeset ac21baf87df2 (bug 1235112)
Backed out changeset c47a6e0a6d95 (bug 1237467)
Backed out changeset 7609ca218902 (bug 1237467)
Backed out changeset d63ca2677bd5 (bug 1237467)
Backed out changeset 5a3d7e16b1e0 (bug 1237467)

--HG--
extra : commitid : LONozKsGtli
2016-01-14 11:35:06 +05:30
Brian Birtles 02e4c93ce9 Bug 1234095 - Rework sorting to handle to script-generated animations; r=heycam 2016-01-14 10:24:24 +09:00
Brian Birtles 32bf08d255 Bug 1235112 - Move animation style rule processors to EffectCompositor; r=heycam 2016-01-14 08:02:39 +09:00
Brian Birtles 8cc58f3707 Bug 1238660 part 2 - Preserve "wins in cascade" state when updating animations; r=hiro
When updating animations, we shouldn't unnecessarily clobber the "wins in
cascade" state of their properties since this can lead to unnecessary restyles
when we then decide we need to update the cascade.
2016-01-13 13:38:16 +09:00
Brian Birtles 2a70c0a477 Bug 1232577 part 12 - Move the remainder of RequestRestyle from AnimationCollection to EffectCompositor; r=heycam
This also allows us to remove all references to AnimationCollection and the
animation managers from Animation.
2016-01-13 07:54:54 +09:00
Brian Birtles 741d976ea1 Bug 1228229 part 10 - Remove no-longer-used cascade functions; r=dbaron
--HG--
extra : rebase_source : 3cdff84fefbc24796abf2d765f6f40062dd7941f
2016-01-06 11:04:05 +09:00
Hiroyuki Ikezoe 29ee5a579b Bug 1219543 - Part 2: Avoid the period that mIsRunningOnCompositor is false between restyling and building display list. r=bbirtles
Without this fix, mIsRunningOnCompositor will be unpredictable in
MutationObserver callbacks.

For example:

 mIsRunningOnCompositor will be false if the micro task for
 the MutationObserver is processed before building display list.

 mIsRunningOnCompositor will be true if there is no room to process
 the micro task before building display list.
2015-12-20 14:17:00 +01:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Brian Birtles 0ea5e5c7c8 Bug 1208938 part 2 - Remove Animation::HasEndEventToQueue; r=heycam 2015-10-07 14:30:28 +09:00
Brian Birtles 60a5523a6a Bug 1195180 part 10 - Remove refresh driver observing machinery from CommonAnimationManager; r=heycam
This patch removes a lot of code involved with observing the refresh driver from
nsAnimationManager and nsTransitionManager now that we no longer need to do
this.

The one piece it does not remove, however, is
AnimationCollection::mNeedsRefreshes since this flag actually serves a secondary
purpose in telling us when the animation style has not changed and so does
not need to be updated. A subsequent patch in this series will rename this
and update the code that makes use of it.
2015-09-28 12:38:41 +09:00
Brian Birtles 183dc5eeee Bug 1183461 part 7 - Add EventInfoComparator and sort events; r=heycam
This patch also reworks the dispatch of events in nsRefreshDriver. Previously
the refresh driver would dispatch the transition events for all subdocuments
then the animation events. This arrangement is complicated and not obviously
necessary. This patch simplifies this arrangement by dispatching transition
events and animation events for each document before proceeding to
subdocuments.

--HG--
extra : rebase_source : ed9147de4a4b5f36e444bdab82e45ee2143e5be8
2015-09-15 14:05:49 +09:00
Brian Birtles bbfbefa427 Bug 1183461 part 6 - Store the generating animation on the event; r=heycam
In order to sort between events that have the same timestamp we use the
sort order of the corresponding animations so we need to store a pointer
to the animation along with the event.

--HG--
extra : rebase_source : 2767157135abd5a094d856410cd9c70e46a33b68
2015-09-15 14:05:44 +09:00
Brian Birtles 7f47d861c6 Bug 1183461 part 5 - Store event TimeStamp along with event info; r=heycam
--HG--
extra : rebase_source : b0c580b684a49744c435bee26cca062012c87ef5
2015-09-15 14:04:53 +09:00
Brian Birtles 8874d11c24 Bug 1183461 part 4 - Add CSSAnimation::ElapsedTimeToTimeStamp; r=heycam
The elapsedTime member reported on AnimationEvents measures the time from
the *end* of the delay phase (i.e. the beginning of the active interval) to
when the event occurred. However, the AnimationTimeToTimeStamp method
introduced in the previous patch expects a time relative to the animation's
start time (i.e. the *start* of the delay phase). This patch adds a method
that performs the necessary conversion from an elapsedTime to an animation
time before calling AnimationTimeToTimeStamp. It also provides extra handling
for cases such as when the animation's start time has not yet been resolved or
when animation effect has disappeared.

--HG--
extra : rebase_source : 594f3f12bab3febe592d09b57be72b2ec09b47cf
2015-09-15 14:04:08 +09:00
Brian Birtles ccaa539dfb Bug 1183461 part 2 - Reorder the parameters to EventInfo constructors; r=heycam
This patch lines up the parameters of AnimationEventInfo and
TransitionEventInfo constructors so that they are more logical and consistent.
Specifically, it groups the element and pseudo type together since they
form a logical pair denoting the event target. For AnimationEventInfo this
patch also places the type of event before the common event parameters since
the event type seems to be more significant.

This patch also performs some miscelleaneous housekeeping: removing some
unnecessary namespace prefixes, whitespace fixes, and making
TransitionEventInfo use the same concrete type to store the target element
as AnimationEventInfo (dom::Element instead of nsIContent).

--HG--
extra : rebase_source : ce6935f74f31dffadce4d0e7d4fa8859ec213740
2015-09-15 14:04:05 +09:00
Brian Birtles d135283802 Bug 1183461 part 1 - Move InitialAdvance to CSSAnimation; r=heycam
Currently we define a helper method, InitialAdvance, on KeyframeEffectReadOnly.
However, this method is only used for filling out the elapsedTime member of
AnimationEvents (which are generated by CSS animations). This patch moves this
method to CSSAnimation since it is unneeded for other types of Animations.

--HG--
extra : rebase_source : 9ab3b81a8272c004aabf26fea557c9a2f5d76caf
2015-09-15 14:03:24 +09:00
Brian Birtles 1bb17c4634 Bug 1203009 part 5 - Remove IsUsingCustomCompositeOrder; r=heycam 2015-09-15 13:32:12 +09:00
Brian Birtles 25e9bf79fe Bug 1203009 part 4 - Implement new composite ordering; r=heycam 2015-09-15 11:20:56 +09:00