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

185 Коммитов

Автор SHA1 Сообщение Дата
Hiroyuki Ikezoe 9c3e690c9a Bug 1287725 - Drop KeyframeEffectReadOnly::HasAnimationOfProperties and nsLayoutUtils::HasCurrentAnimationsForProperties. r=birtles
MozReview-Commit-ID: K33ga7KpLIo

--HG--
extra : rebase_source : 57bc8f2edffb7e89ea790f5cc0fa6848770d1873
2016-07-26 06:44:11 +09:00
Hiroyuki Ikezoe f8455c2c9a Bug 1288586 - Don't calculate style difference if there are no properties change. r=birtles
We don't actually need to re-calculate if the updated properties are the
same as the old one. This change avoids problematic nested calls of
nsStyleSet::GetContext() in particular cases.

MozReview-Commit-ID: JksiTGX57Fy
2016-07-22 15:17:37 +09:00
Brian Birtles b3d639f650 Bug 1277456 part 6 - Use the composed document of the target effect (if any) when computing keyframe values; r=hiro
Previously, when fetching an nsPresShell, we would look up the current realm
document and get the pres shell for it. This patch makes us call GetPresShell()
which uses GetRenderedDocument() which corresponds to the composed document of
the target effect which seems more consistent since it is the target effect we
will use as context for computing CSS values (as required by [1]).

[1] https://w3c.github.io/web-animations/#calculating-computed-keyframes

MozReview-Commit-ID: 9S55041rfTp

--HG--
extra : rebase_source : c52d4c366d0a2891958c8f7378614a8feb5e7c70
2016-07-13 13:22:25 +09:00
Brian Birtles 7d054e7e89 Bug 1277456 part 5 - Pass the document associated with an AnimationEffectTiming/KeyframeEffect object to KeyframeUtils as the context to use when parsing CSS properties; r=hiro
Note that when we actually compute values, we will use the composed document of
the target element (see the next patch in this series).

MozReview-Commit-ID: 8Pp3y19pltP

--HG--
extra : rebase_source : bb1c21f3fdcf2e831213d2f278d70e4ca2637028
2016-07-13 13:22:25 +09:00
Hiroyuki Ikezoe 123f9c80bd Bug 1278485 - Part 1: Limit y1 and y2 control points for cubic-bezier to avoid overflows. r=birtles
MozReview-Commit-ID: Bls260r7Sqn

--HG--
extra : rebase_source : bd836b8bd0666ce5c387aeb91149587d93db386d
2016-07-12 16:24:42 +09:00
Hiroyuki Ikezoe d20c596b42 Bug 1279403 - Part 2: Set NS_FRAME_MAY_BE_TRANSFORMED bit if the target nsIFrame has transform when setting target or keyframes. r=birtles
MozReview-Commit-ID: InQyXpENsSY

--HG--
extra : rebase_source : f8eb4c9ea0495d60c92a214ab692df79cf428e85
2016-07-11 08:29:14 +09:00
Hiroyuki Ikezoe 7cc7e32a9b Bug 1278136 - Part 0: Clean up frame->StyleDisplay()->BackfaceIsHidden() usage. r=mattwoodrow
We already have a wrapper named nsIFrame::BackfaceIsHidden().

MozReview-Commit-ID: 5L49W6wtXs1

--HG--
extra : rebase_source : d3be8d028453e63fb2d3d96b5956262d352385ef
2016-07-08 13:01:31 +09:00
Brian Birtles e1cbd45efd Bug 1279819 - Copy keyframes array before iterating over it; r=hiro
MozReview-Commit-ID: KMacnQcFx9f
2016-07-06 13:55:30 +09:00
Boris Chiou ac7404da73 Bug 1283625 - Unlink timing object before nullifying it. r=birtles
MozReview-Commit-ID: 3eIAL77aDLV
2016-07-06 10:57:26 +08:00
Brian Birtles 3743434413 Backed out changeset f182a6c18d75 (bug 1279819) 2016-07-06 09:09:55 +09:00
Brian Birtles 454f9549c2 Bug 1279819 - Copy keyframes array before iterating over it; r=hiro
MozReview-Commit-ID: KMacnQcFx9f
2016-07-06 08:00:44 +09:00
Brian Birtles c42c3acc9a Bug 1283387 part 2 - Implement updated calculation of active time in after phase with negative end delay r=hiro
This implements the changes to the specified behavior from the following
changeset:

  a9ba51338e

It also updates test expectations based on the tests updated in part 1 of this
patch series.

MozReview-Commit-ID: HyJC8tHXLYc

--HG--
extra : rebase_source : 6d0f5eb03a2bb4c3938d79dfae7ee433d33fd2b1
2016-07-01 09:31:02 +09:00
Boris Chiou 2768dbb547 Bug 1244590 - Part 9: Update spacing in SetTarget. r=birtles
Handle these cases:
1. When creating null-target effect whose spacing mode is "paced":
 - Fall back to distribute spacing. This case is already included by previous
   patches.

2. When setting a target to null:
 - Apply distribute spacing.

3. When style context is null.
 - Fall back to distribute spacing.

4. When setting a new valid target:
 - Use this new target as the context element and re-calculate the computed
   offsets. This case is already included by previous patches.

MozReview-Commit-ID: 1zhSOAylnZb

--HG--
extra : rebase_source : e2988f433f395a398090dc08f262b0154de3dc50
2016-05-11 15:34:58 +08:00
Boris Chiou 0a3a365c73 Bug 1244590 - Part 8: Rewrite GetStyleContext code. r=birtles
Do a simple refactor, so we can reuse the getter of nsStyleContext.

MozReview-Commit-ID: 4BQ7f8HuFns

--HG--
extra : rebase_source : 37bbf6af795484c5d80d308683e4fcdfe23c7a1a
2016-05-11 11:41:20 +08:00
Boris Chiou 34e916b2cb Bug 1244590 - Part 7: Calculate paced spacing. r=birtles
Calculate the paced spacing for each Keyframes by the context element. Use the
algorithm in the spec.

MozReview-Commit-ID: HFWQwoKhKWt

--HG--
extra : rebase_source : 40112eb1f722179cfc0a4ccbd188e22bc7af9b9b
2016-05-27 18:09:06 +08:00
Boris Chiou 95267f5a26 Bug 1244590 - Part 6: Refactor the calculation of StyleAnimationValue. r=birtles
We want to reuse the StyleAnimationValues of properties of each keyframe when
applying spacing and building animation property segments, so refactor this
part.

MozReview-Commit-ID: 8G56C3BU3FR

--HG--
extra : rebase_source : 73b6d374ac8bd25645d1b1b2f15f4e778b3ec949
2016-05-25 17:10:53 +08:00
Boris Chiou 10a18165f4 Bug 1244590 - Part 5: Make the default value of computed offsets be -1. r=birtles
When we apply paced spacing, we have to check if there are still null computed
offsets after applying paced spacing to paceable Keyframes because the
calculation of distance may be failed or some Keyframes are not paceable in
the specific range. Therefore, using -1 would be easier to check it.
Also, add a const, kComputedOffsetNotSet, to represent this invalid value.

MozReview-Commit-ID: GPhj7cdiX2W

--HG--
extra : rebase_source : 8c4e7769c454fe50eb1cc08db63866dcc4ed62e5
2016-05-12 16:00:47 +08:00
Boris Chiou 8c0079ef08 Bug 1244590 - Part 4: Rewrite ApplyDistributeSpacing. r=birtles
Rename it to ApplySpacing, and let it handle both distribute and paced mode.

MozReview-Commit-ID: 2kGA6LMHUsz

--HG--
extra : rebase_source : ebd5566392b1ea6a4a445ff7c3ed81cdc94bdded
2016-05-10 17:40:53 +08:00
Boris Chiou 03d90dd78b Bug 1244590 - Part 3: Parse spacing. r=birtles
We only support spacing mode from Web Animations API, so add a simple parser and
use it only from the API. In this patch, parse spacing mode from the constructor
and throw TypeError if we have any parse error.

MozReview-Commit-ID: 9H7g80IcZfZ

--HG--
extra : rebase_source : e1bc781ff0f20a1a38c04e672832ec013edc549d
2016-05-13 16:38:25 +08:00
Boris Chiou 09edce9d1d Bug 1244590 - Part 2: Retrieve KeyframeEffectOptions from constructor. r=birtles
MozReview-Commit-ID: DtkJ6eLj4tl

--HG--
extra : rebase_source : 77d4fc6a22d2504191c81bba0bbc72387e65ba2a
2016-05-05 18:50:16 +08:00
Boris Chiou c55ea50fab Bug 1244590 - Part 1: Introduce KeyframeEffectParams. r=birtles
Add a new file, KeyframeEffectParams.h, and define the basic data
members nsString for the spacing mode.
Also, add one more argument, const KeyframeEffectParams&, to the
constructors of KeyframeEffect(ReadOnly).

MozReview-Commit-ID: I7LYlnv6LLb

--HG--
extra : rebase_source : 9aebb7b9659588674c2a954eb2ce62c827bc9830
2016-05-05 15:41:03 +08:00
Hiroyuki Ikezoe fc371e8226 Bug 1166500 - Part 11: Add a preference for offscreen throttling. r=dbaron
MozReview-Commit-ID: AD34RTVZcxy
2016-05-24 12:57:43 +09:00
Hiroyuki Ikezoe b2888c83cd Bug 1166500 - Part 7: Throttle paint-only animations if the presShell is not active. r=dbaron 2016-05-24 12:57:43 +09:00
Hiroyuki Ikezoe f4e8a9f94a Bug 1166500 - Part 6: Throttle paint-only animations on element which is out of view. r=dbaron 2016-05-24 12:57:43 +09:00
Hiroyuki Ikezoe eec4931934 Bug 1166500 - Part 3: Add KeyframeEffectReadOnly::CanIgnoreIfNotVisible(). r=dbaron 2016-05-24 12:57:42 +09:00
Hiroyuki Ikezoe caa5bb7b54 Bug 1166500 - Part 2: Calculate cumulative change hint. r=dbaron
In order to raise an assertion in CanIgnoreIfNotVisible() which will be
introduced in part 3 when the cumulative hint is not properly, we should skip
the calculation when mProperties is empty.
2016-05-24 12:57:42 +09:00
Hiroyuki Ikezoe 00e2f46aeb Bug 1268385 - Clear isRunningOnCompositor for script animations if associated nsIFrame is destroyed. r=birtles
MozReview-Commit-ID: 3tTkDtxkHcT

--HG--
extra : rebase_source : 388f548cb30f5384cceb620a595dd10b5fd22e4e
2016-05-16 16:25:46 +09:00
Brian Birtles 90fb66a530 Bug 1271904 - Rename KeyframeEffectReadOnly.getFrames() and KeyframeEffect.setFrames() to getKeyframes()/setKeyframes(); r=hiro, r=smaug
MozReview-Commit-ID: GwLLY39l1KE

--HG--
rename : dom/animation/test/css-animations/file_keyframeeffect-getframes.html => dom/animation/test/css-animations/file_keyframeeffect-getkeyframes.html
rename : dom/animation/test/css-animations/test_keyframeeffect-getframes.html => dom/animation/test/css-animations/test_keyframeeffect-getkeyframes.html
rename : dom/animation/test/css-transitions/file_keyframeeffect-getframes.html => dom/animation/test/css-transitions/file_keyframeeffect-getkeyframes.html
rename : dom/animation/test/css-transitions/test_keyframeeffect-getframes.html => dom/animation/test/css-transitions/test_keyframeeffect-getkeyframes.html
rename : testing/web-platform/meta/web-animations/keyframe-effect/setFrames.html.ini => testing/web-platform/meta/web-animations/keyframe-effect/setKeyframes.html.ini
rename : testing/web-platform/tests/web-animations/keyframe-effect/setFrames.html => testing/web-platform/tests/web-animations/keyframe-effect/setKeyframes.html
2016-05-13 09:40:52 +09:00
Brian Birtles e518a8a1ed Bug 1263488 - Make AnimValuesStyleRule re-use PropertyStyleAnimationValuePair; r=hiro
Rather than defining the same type redundantly but with a name that overlaps
with a struct in KeyframeEffect.h (that has a different type).

MozReview-Commit-ID: 3MbvXWL8XlL
2016-05-11 16:43:32 +09:00
Hiroyuki Ikezoe 8fd021fbd4 Bug 1235002 - Skip requesting a restyle when mProperties is empty. r=birtles
The test case here does not check whether requesting restyles for empty
properties are skipped or not.  It just checks that whether restyles happen or
not because there is no way to check each request for restyles yet.

MozReview-Commit-ID: I5XMYfCTYU8

--HG--
extra : rebase_source : 893aaaf2c47e05f37bce9913df4f14e3021f215a
2016-05-09 12:33:52 +09:00
Hiroyuki Ikezoe 3e6aae0a2d Bug 1267937 - Part 1: Clear mProgressOnLastCompose once we are not in effect. r=birtles
--HG--
extra : amend_source : 2b1b5d22fdb559c940629fe4536369d95ca29306
2016-04-30 07:08:10 +09:00
Boris Chiou 44367b12f2 Bug 1067769 - Part 12: Use Maybe<OwningAnimationTarget> in KeyframeEffect(ReadOnly) constructors. r=birtles
MozReview-Commit-ID: Euv76D6sIFX

--HG--
extra : rebase_source : 7ef6e5d70104942b21671e2143c107e678f400a7
2016-04-28 23:22:44 +08:00
Boris Chiou 43960e1a63 Bug 1067769 - Part 11: Implement animation mutation observer while setting the target. r=birtles
MozReview-Commit-ID: EjgbslUwPKw

--HG--
extra : rebase_source : a93b08d48769c1e73fccb420553b41d06fbc8e16
2016-04-28 23:22:43 +08:00
Boris Chiou 6b5b1483f8 Bug 1067769 - Part 10: Implement SetTarget(). r=birtles
MozReview-Commit-ID: GW3Ujn5cbY3

--HG--
extra : rebase_source : ffc006c67d5b0dd712c4d7d3f938c37b8167ad58
2016-04-28 23:22:43 +08:00
Boris Chiou cba7a5b73d Bug 1067769 - Part 9: Wrap RequestRestyle and UnregisterTarget. r=birtles
We will need to request a restyle and unregister the current target in
SetTarget(), and there are many duplicate code segments for them now, so wrap
them for reusing the code.

MozReview-Commit-ID: 33XoNspZme3

--HG--
extra : rebase_source : 881aa13d79ccc75872a6cc48d0a1da71cfdff2ae
2016-04-28 23:22:43 +08:00
Boris Chiou 0937d3158e Bug 1067769 - Part 8: Add ConvertTarget function. r=birtles
Use ConvertTarget() to convert Nullabe<ElementOrCSSPseudoElement> into
Maybe<OwningAnimationTarget>, so SetTarget() can use it as well. The return type
of ConvertTarget is not Maybe<NonOwningAnimationTarget> because we need to
compare the return type with KeyframeEffectReadOnly::mTarget, so using the same
type would be easier to implement.

MozReview-Commit-ID: GskbydOMoo0

--HG--
extra : rebase_source : d1a8fe2d8fe89e4ffdb79844ab5581a9af3b2ce5
2016-04-28 23:22:43 +08:00
Boris Chiou d423a8f2b2 Bug 1067769 - Part 7: Define OwningAnimationTarget and use it. r=birtles
1. Define OwningAnimationTarget.
2. Replace the KeyframeEffectReadOnly::mTarget/mPseudoType members with
   a Maybe<OwningAnimationTarget> mTarget member.

MozReview-Commit-ID: 65qOoNyDRSy

--HG--
extra : rebase_source : b938dbc00c918861d4141128fad8e30f61668e40
2016-04-28 23:22:43 +08:00
Boris Chiou 57a8894260 Bug 1067769 - Part 5: Support setting KeyframeEffect.target webidl interface. r=smaug
MozReview-Commit-ID: 9494jdI97MT

--HG--
extra : rebase_source : 4c8fa7bfb6502c78a96e1af1e2a6d98d7708d7dd
2016-04-28 23:22:43 +08:00
Boris Chiou ea72ffdf23 Bug 1067769 - Part 2: Support nullable target in KeyframeEffect(ReadOnly) constructor. r=birtles
We set a null target only from Web Animations API, so make sure
KeyframeEffectReadOnly::ConstructKeyframeEffect() can handle null target
properly.

MozReview-Commit-ID: D6PoV7PGFj3

--HG--
extra : rebase_source : 4ba2d616d6b2cdfe7985ced29e4454e818d076b8
2016-04-28 23:22:42 +08:00
Boris Chiou ce16585e39 Bug 1067769 - Part 1: Avoid doing RequestRestyle and mutation batch for null target. r=birtles
We don't need to restyle if mTarget is nullptr, so skip it. For
nsAutoAnimationMutationBatch, we also skip it if mTarget is nullptr.

AnimationColletion, nsAnimationManager and nsTransitionManger are for
CSS Animations and CSS Transtions, so the effect should have an effective
target. Therefore, I think we don't have to revise them for
nsAutoAnimationMutationBatch.

MozReview-Commit-ID: Egzr1QVEa0v

--HG--
extra : rebase_source : 2f9125f71f67a3d50f2126fed4d1b459d938de22
2016-04-28 23:22:42 +08:00
Ryo Kato ed3e9e9db3 Bug 1244591 - Part 1: Implement KeyframeEffect.setFrames r=birtles,smaug
WebIDL referes to KeyframeEffect::SetFrames(), which is derived from
KeyframeEffectReadOnly::SetFrames() in terms of implementation.

In addition, make KeyframeEffectReadOnly::ConstructKeyframeEffect call
KeyframeEffectReadOnly::SetFrames() to simplify the code.

MozReview-Commit-ID: 7ASbtoN7Tnp

--HG--
extra : rebase_source : c398ff7154c4533255f56c7ca13314e440eb6258
2016-04-09 15:33:34 +09:00
Brian Birtles 1e1f683439 Bug 1266257 - Revise timing model calculations to use fraction-based approach; r=hiro
As per updates to Web Animations spec:

  https://github.com/w3c/web-animations/compare/10fc97366041%5E...b9a721e6536ae27c37df1e3948b013c6a52d5f4c

MozReview-Commit-ID: 5NHnF56aETJ
2016-04-21 14:51:36 +09:00
Hiroyuki Ikezoe 1b7f619907 Bug 1263063 - Part 5: Introduce TimingParams::EndTime(). r=dholbert
MozReview-Commit-ID: 6dpnb65vndl

--HG--
extra : rebase_source : b4c0046b893bf78ebec91d3308fcbfccf48a79d1
2016-04-14 19:39:42 +09:00
Hiroyuki Ikezoe ffc5ef3515 Bug 1263063 - Part 4: Move ActiveDuration() into TimingParams. r=dholbert
MozReview-Commit-ID: 4HS8vTJYtDe

--HG--
extra : rebase_source : 5ccdc1aa1ffe0c33a0d334cf2a4736877481cd28
2016-04-14 19:39:39 +09:00
Hiroyuki Ikezoe 6846fc920e Bug 1263063 - Part 3: Change logic in KeyFrameEffect to assume that TimingParams' iteration-count has already been validated as nonnegative & finite. r=dholbert
MozReview-Commit-ID: 9mbBHvyjNZg

--HG--
extra : rebase_source : 8e371d2349095ab924ca0be241eccf28e092bdb7
2016-04-14 19:36:03 +09:00
Hiroyuki Ikezoe 99b87b0281 Bug 1263063 - Part 1: Remove unnecessary clamping of TimingParams::mIterationStart, since it's guaranteed to be nonnegative. r=dholbert
MozReview-Commit-ID: ApQVt39jasa

--HG--
extra : rebase_source : e247683aa727f7e331fc4a559032f7c636ea834c
2016-04-14 19:35:59 +09:00
Boris Chiou 1decf4e780 Bug 1249564 - Part 2: Cycle collect AnimationEffectTimingReadOnly. r=birtles
Add KeyframeEffectReadOnly::mTiming into the list of cycle collection to
avoid any possible memory leak.

MozReview-Commit-ID: C5mFQ7TsqC7

--HG--
extra : rebase_source : 8ee1e58d69a3becb0b8566fa3529154bb66d3064
2016-04-13 18:20:46 +08:00
Boris Chiou c5c62dc083 Bug 1249564 - Part 1: Assign the parent object of AnimationEffectTiming(ReadOnly). r=birtles,bz
Use the current document as the parent object of
AnimationEffectTiming(ReadOnly).

MozReview-Commit-ID: JfPLk95hsJ1

--HG--
extra : rebase_source : ee068d0eb8e26f4c1e83b87049be8060fcd27813
2016-04-10 13:51:32 +08:00
Brian Birtles 1bf99cf79f Bug 1260983 - Allow creating animations with a target element not bound to a document; r=heycam
MozReview-Commit-ID: HHqHWikZ3zp
2016-04-01 09:32:26 +09:00
Brian Birtles 1a98da1bd9 Bug 1260976 - Remove the old AnimationProperty-based GetFrames; r=heycam
MozReview-Commit-ID: FoEf7DymVDm
2016-04-01 09:29:31 +09:00