Commit Graph

102 Commits

Author SHA1 Message Date
BharatR123
f22cec0a62 Bug 1302637 - Animation::PostUpdate() calls KeyframeEffectReadonly::RequestRestyle() r=hiro
Also removed the function GetPresContext() in KeyframeEffectReadOnly.cpp
and KeyframeEffectReadOnly.h

MozReview-Commit-ID: AJCgxQ05yVQ
2017-03-14 22:03:22 +05:30
Hiroyuki Ikezoe
0388ff334b Bug 1344619 - Part 1: Introduce WillCompose() to update various state that we need to update as the result of ComposeStyle(). r=birtles
MozReview-Commit-ID: JznBR3OghKG
2017-03-09 05:20:17 +09:00
Daisuke Akatsuka
1243945dbb Bug 1339332 - Part 1: Introduce neutral value concept for missing keyframe in CSS Animation. r=birtles,hiro
MozReview-Commit-ID: F3qvRY3SRAp
2017-03-08 10:07:08 +09:00
Hiroyuki Ikezoe
6506f210a3 Bug 1338927 - Part 6: Templatize SetKeyframes(). r=birtles
We have SetKeyframes(nsStyleContext*) for the same reason
of UpdateProperties(nsStyleContext*).

MozReview-Commit-ID: 7WjMU66MzpU
2017-02-23 09:52:44 +09:00
Hiroyuki Ikezoe
0b472a3073 Bug 1338927 - Part 5: Templatize UpdateProperties(). r=birtles
We had to implement UpdateProperties(nsStyleContext*) explicitly
since there are some calls of UpdateProperties() with RefPtr<nsStyleContext>.
Without this compiler tries to use template function instead.

MozReview-Commit-ID: 72NgwmJ4kcx
2017-02-23 09:52:44 +09:00
Hiroyuki Ikezoe
b8594918d3 Bug 1338927 - Part 4: Templatize BuildProperties(). r=birtles
We'd like to use template to manage functions that have almost the same functionality
both on stylo and gecko instead of branching in each functions because it will be
easier to maintain stylo and gecko for a while.

MozReview-Commit-ID: 25ukMpOeqLj
2017-02-23 09:52:44 +09:00
Hiroyuki Ikezoe
3101075711 Bug 1338927 - Part 3: Introduce ServoComputedStyleValues. r=birtles
The operator bool() will be used in the case where we call
MOZ_ASSERT() for const ref of this struct.

MozReview-Commit-ID: tCtpXmPJvV
2017-02-23 09:52:43 +09:00
Shing Lyu
e651462701 Bug 1337229 - Implement the deep operator== for RawServoAnimationValue r=hiro,manishearth
MozReview-Commit-ID: BiNNrIFXqtf
2017-02-24 15:05:23 +08:00
Iris Hsiao
5cbd031da5 Backed out changeset 2d21596af124 (bug 1337229) for developer's request 2017-02-22 17:40:13 +08:00
Shing Lyu
3a8dbbc94b Bug 1337229 - Implement deep operator== for RawServoAnimationValue r=hiro,manishearth
MozReview-Commit-ID: Euvv9zarFe3
2017-02-17 14:39:24 +08:00
Hiroyuki Ikezoe
a6db5ea712 Bug 1331704 - Part 3: Drop all of unused stuff. r=birtles a=abillings
MozReview-Commit-ID: BWAC0iZLw6t
2017-02-11 19:11:45 +09:00
Hiroyuki Ikezoe
b423c1eb7d Bug 1331704 - Part 2: Resolve base styles during UpdateProprties. r=birtles a=abillings
EnsureBaseStyle() requires an already resolved nsStyleContext
and resolves the base style by ResolveStyleByRemovingAnimation().

MozReview-Commit-ID: BHqJiBJspQY
2017-02-11 19:11:45 +09:00
Hiroyuki Ikezoe
448c234858 Bug 1331704 - Part 1: Store base styles in KeyframeEffectReadOnly instead of EffectSet. r=birtles a=abillings
Now we dropped mNeedsBaseStyleSet bit set.

MozReview-Commit-ID: Gv2rU0jpyk1
2017-02-11 19:11:45 +09:00
Sebastian Hengst
2beaba93bd Backed out changeset e2f6d5054e20 (bug 1331704) for build bustage: unused variable hasProperty at KeyframeEffectReadOnly.h:294. r=backout on a CLOSED TREE 2017-02-11 11:37:54 +01:00
Sebastian Hengst
6e9f4fc3b4 Backed out changeset 6eb3b0501d00 (bug 1331704) 2017-02-11 11:32:14 +01:00
Sebastian Hengst
0a388f09bd Backed out changeset 0077d103e862 (bug 1331704) 2017-02-11 11:32:10 +01:00
Hiroyuki Ikezoe
db4e65d866 Bug 1331704 - Part 3: Drop all of unused stuff. r=birtles a=abillings
MozReview-Commit-ID: BWAC0iZLw6t
2017-02-11 19:11:45 +09:00
Hiroyuki Ikezoe
138176968e Bug 1331704 - Part 2: Resolve base styles during UpdateProprties. r=birtles a=abillings
EnsureBaseStyle() requires an already resolved nsStyleContext
and resolves the base style by ResolveStyleByRemovingAnimation().

MozReview-Commit-ID: BHqJiBJspQY
2017-02-11 19:11:45 +09:00
Hiroyuki Ikezoe
00914b9633 Bug 1331704 - Part 1: Store base styles in KeyframeEffectReadOnly instead of EffectSet. r=birtles a=abillings
Now we dropped mNeedsBaseStyleSet bit set.

MozReview-Commit-ID: Gv2rU0jpyk1
2017-02-11 19:11:45 +09:00
Hiroyuki Ikezoe
cdad0a1c56 Bug 1333846 - Part 1: Move ContainsAnimatedScale() codes into dom/animation/. r=birtles a=abillings
MozReview-Commit-ID: 6bWeTfCmjtd
2017-02-09 11:28:47 +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
Hiroyuki Ikezoe
5f1f1f8a98 Bug 1328787 - Part 1: Factor out Keyframe and PropertyValuePair into Keyframe.h. r=heycam
KeyframeEffectReadOnly.h has lots of unnecesarry stuff for stylo for now, so
is split stuff which needs for stylo into Keyframe.h.
2017-01-29 12:58:23 +09:00
Boris Chiou
9bb79bff75 Bug 1317209 - Part 1: Introduce ServoAnimationRule and implement uncompute FFI. r=heycam,manishearth
1. Introduce ServoAnimationRule, which is an equivalent of AnimValuesStyleRule.
2. Wrap ServoAnimationRule and AnimValuesStyleRule into a struct, and
   use it as the parameter of Animation::ComposeStyle and
   KeyframeEffectReadOnly::ComposeStyle.
3. Uncompute the RawServoAnimationValues in ServoAnimationRule when we
   need it.

MozReview-Commit-ID: HahXDYBCAhH
2017-01-24 15:19:18 +08:00
Hiroyuki Ikezoe
cfcc50ecbf Bug 1330190 - Part 5: Get style context without all of animation data for base styles. r=birtles
Test case, 1330190-2.html, is another variant of 1325193-1.html. It's for
animation on a pseudo element, causes timeout without part 3 patch.

MozReview-Commit-ID: KX6FE8mkZY2
2017-01-16 17:41:24 +09:00
Xidorn Quan
d29e034a84 Bug 1298756 - Use uint8_t/uint16_t as underlying type for enums from webidl. r=bz
MozReview-Commit-ID: 3uS9s5ZrPFd
2017-01-12 12:23:37 +11:00
Carsten "Tomcat" Book
11757a7943 merge mozilla-inbound to mozilla-central a=merge 2017-01-12 10:14:43 +01:00
Hiroyuki Ikezoe
9940e0fd49 Bug 1325193 - Get underlying style value in the case where the last segment is missing keyframe for accumulation of iteration composite. r=birtles
Both of tests in this patch fail and cause lots of assertions without this fix.

MozReview-Commit-ID: CFrWSlM0Us5
2017-01-12 10:28:46 +09:00
Manish Goregaokar
67a7f92268 Bug 1317208 - Stylo: Store servo computed values for animation properties; r=birtles,heycam
MozReview-Commit-ID: IoQLN5tdIBw
2016-11-30 17:34:54 -08:00
Hiroyuki Ikezoe
dd61e4a549 Bug 1322291 - Part 2: Make sure that the base style is set even if additive or accumulates animations are in the delay phase. r=birtles
Before this patch we skipped KeyframeEffectReadOnly::ComposeStyle() for
animations that are not in effect.
After this patch we call KeyframeEffectReadOnly::ComposeStyle() even if the
animation is not in-effect state in order to prepare the base style for
properties that can be run on the compositor because the in-effect animation
will be sent to the compositor and might be composed onto the base style on the
compositor after the animation gets out of its delay phase.

MozReview-Commit-ID: FuAZv4jqVMJ
2016-12-21 13:52:21 +09:00
Hiroyuki Ikezoe
f9c4fc410e Bug 1322291 - Part 1: Block nested calls of KeyframeEffectReadOnly::ComposeStyle(). r=birtles
KeyframeEffectReadOnly::ComposeStyle() might call nsStyleSet::ResolveStyleFor(),
and KeyframeEffectReadOnly::ComposeStyle() itself is called from
nsStyleSet::ResolveStyleFor(). So we have to carefully avoid nested calls of ComposeStyle.

MozReview-Commit-ID: IRM99bGUFLa
2016-12-21 13:52:19 +09:00
Boris Zbarsky
e33d290417 Bug 1321879 part 2. Stop using IsCallerChrome() in animations API. r=birtles 2016-12-06 23:47:23 -10:00
Brian Birtles
994abf9736 Bug 1301305 - Add AnimationEffectReadOnly::AffectsGeometry() helper to identify effects that animate geometric properties; r=hiro
MozReview-Commit-ID: 7Q6wvm7ddxy
2016-12-02 10:04:08 +09:00
Hiroyuki Ikezoe
51dbd0134d Bug 1305325 - Part 14: Compose base values on the compositor. r=birtles
MozReview-Commit-ID: EWumBqQ82RT
2016-12-04 08:07:40 +09:00
Hiroyuki Ikezoe
d6f70f8d26 Bug 1305325 - Part 11: Cache non-animated base values. r=birtles
This patch adds a hashtable to store the non-animated base style of each
property in EffectSet class if the following conditions are met.

1) the effect is the lowest priority of the effect
2) the effect is additive or accumulative

The styles are stored as StyleAnimationValue objects since it's handy class to
store a CSS value for different properties.

MozReview-Commit-ID: 1MZV7MnqzfI
2016-12-04 08:07:40 +09:00
Hiroyuki Ikezoe
d92d4141d2 Bug 1305325 - Part 6: Handle missing keyframe whose offset 0 or 1 on the main thread. r=birtles
MozReview-Commit-ID: 5WMiTJQKfZd
2016-12-04 08:07:40 +09:00
Boris Chiou
e69d77917e Bug 1273784 - Part 6: Factor out BuildProperties. r=hiro
Factor out BuildProperties to have a better readability of UpdateProperties.

MozReview-Commit-ID: A3cIS65STAx
2016-11-07 17:01:39 +08:00
Boris Chiou
109d318a0b Bug 1273784 - Part 5: Avoid re-building the animation properties and re-calculating computed offsets. r=hiro
We don't need to rebuild the animation properties and recalculate the
computed offsets of Keyframes while copy-constructing a new
KeyframeEffect(ReadOnly) object, so avoid calling SetKeyframes()
directly. And we also need a customized copy constructor for AnimationProperty
to avoid copy mIsRunningOnCompositor.

MozReview-Commit-ID: CIF3Ibgc1tM
2016-11-03 11:36:28 +08:00
Boris Chiou
c553c19c4e Bug 1273784 - Part 2: Overload ConstructKeyframeEffect for copy constructor. r=hiro
The copy constructors of KeyframeEffectReadOnly and KeyframeEffect are
similar, so we overload ConstructKeyframeEffect<...>(...) for copy
constructors.

MozReview-Commit-ID: 37hClpn9ZUG
2016-11-01 17:38:15 +08:00
Boris Chiou
567b9edea6 Bug 1273784 - Part 1: Add the copy constructor of KeyframeEffect(ReadOnly) in webidl. r=smaug
MozReview-Commit-ID: Fkddf8axUrU
2016-10-28 15:41:08 +08:00
Xidorn Quan
95be7d0621 Bug 1311598 part 4 - Split binding types from ServoBindings.h into ServoBindingTypes, and merge ServoBindingHelpers into it. r=heycam
MozReview-Commit-ID: CKvBMOapqlI
2016-10-24 20:16:46 +11:00
Xidorn Quan
682f8eafaa Bug 1311598 part 1 - Move PropertyValuePair::operator== into cpp file. r=birtles
MozReview-Commit-ID: 3TC11FtqDsu
2016-10-24 20:16:46 +11:00
Xidorn Quan
81893e7dfe Bug 1309109 part 3 - Rename ServoDeclarationBlock to RawServoDeclarationBlock. r=heycam
So that the new subclass of DeclarationBlock could just be
ServoDeclarationBlock.

MozReview-Commit-ID: 55KgfmWmmyU
2016-10-18 15:29:03 +11:00
Hiroyuki Ikezoe
0d6fbdaea1 Bug 1278136 - Part 5: Create a stacking context for opacity/transform animations even if it's in delay phase and even if the property is overridden by !important rules. r=birtles
This patch introduces a new functions named HasEffectiveAnimationOfProperty.
This function checks that a given CSS property is overridden by !important
rules.
On the other hand, now KeyframeEffetReadOnly::HasAnimationOfProperty() does
just check that the effect has a given CSS property.  This is used to create
a stacking context because we should create a stacking context for opacity or
transform animations even if the property is overridden by !important rules.

Note about no-stacking-context-(opacity|transform)-removing-animation-in-delay.html
Before this patch we don't create any stacking context for animations overridden
by !important rules, but after this patch we do create a stacking context for
such animations.  As a result, in the test case we did paint a stacking context
in the first rAF callback and then in the second rAF callback we did clear the
painted stacking context. Unfortunately sometimes the second rAF callback was
called prior to clear the stacking context on the compositor because of
compositor delay. To avoid this situation, we have to wait for MozAfterPaint
instead of rAF callback.

MozReview-Commit-ID: AG1Y0IgoB3U
2016-10-13 16:54:25 +09:00
Phil Ringnalda
2ab744056c Backed out 2 changesets (bug 1278136) for failures in no-stacking-context-opacity-removing-animation-in-delay.html
Backed out changeset 62cf4a7d6007 (bug 1278136)
Backed out changeset 5f2db29e67ca (bug 1278136)

MozReview-Commit-ID: K9WcZFjL2XB
2016-10-11 20:40:36 -07:00
Hiroyuki Ikezoe
ecfa2ce611 Bug 1278136 - Part 5: Create a stacking context for opacity/transform animations even if it's in delay phase and even if the property is overridden by !important rules. r=birtles
This patch introduces a new functions named HasEffectiveAnimationOfProperty.
This function checks that a given CSS property is overridden by !important
rules.
On the other hand, now KeyframeEffetReadOnly::HasAnimationOfProperty() does
just check that the effect has a given CSS property.  This is used to create
a stacking context because we should create a stacking context for opacity or
transform animations even if the property is overridden by !important rules.

MozReview-Commit-ID: AG1Y0IgoB3U
2016-10-12 09:59:03 +09:00
Sebastian Hengst
7305938aa8 Merge mozilla-central to autoland 2016-10-05 17:15:26 +02:00
Brian Birtles
fbfe3f87c8 Bug 1302949 - Store Servo declaration block in keyframe values; r=heycam
MozReview-Commit-ID: I09XpkU8bT0
2016-09-15 16:26:07 +09:00
Hiroyuki Ikezoe
20167227bf Bug 1304922 - Part 10: Drop non-const version of KeyframeEffectReadOnly::Properties(). r=birtles
We no longer modify AnimationProperty outside KeyframeEffectReadOnly class.

MozReview-Commit-ID: 1YJglDhuS1w
2016-10-05 14:54:01 +09:00
Hiroyuki Ikezoe
e0b5695bf6 Bug 1304922 - Part 7: Drop mWinsInCascade. r=birtles
MozReview-Commit-ID: 1q4glZenZNa
2016-10-05 14:48:05 +09:00
Hiroyuki Ikezoe
70a6a0cd0c Bug 1304922 - Part 6: Introduce mPropertiesWithImportantRules and mPropertiesForAnimationsLevel and use it to detect conditions that we need to update layers. r=birtles
This patch also makes composite order lowest to highest, as a result we also
need to replace mWinsInCascade checks with the the properties.
The mWinsInCascade membed itself will be removed in a subsequent patch.

Now we call RequestRestyle(Layer) respectively for transition and animation,
so a test case in test_restyles.html works as expected.

And now lower-priority animations are also sent to the compositor so this patch
fixed some tests in test_running_on_compositor.html and
test_animation_performance_warning.html

MozReview-Commit-ID: BchUsJbmatg
2016-10-05 14:42:56 +09:00