Commit Graph

275 Commits

Author SHA1 Message Date
Andreea Pavel
dbd394ae9e Backed out 2 changesets (bug 1504065) for failing Win reftest at child-in-animating-element-display-none.html on a CLOSED TREE
Backed out changeset 129188370231 (bug 1504065)
Backed out changeset 359e81b35cfb (bug 1504065)
2018-11-27 15:33:29 +02:00
Hiroyuki Ikezoe
678e8d5615 Bug 1504065 - Run background-color animations on the compositor. r=birtles
Changes for nsIDOMWindowUtils.getOMTAValue is in the next commit with come test
cases.

Differential Revision: https://phabricator.services.mozilla.com/D13001
2018-11-27 09:26:51 +00:00
Hiroyuki Ikezoe
723dc783a8 Bug 1506988 - Don't incorporate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r=birtles
Now we no longer update the corresponding display items for the animations that
are prevented from running on the compositor if the animations themselves don't
generate any change hints, e.g the same value is specified in both 'from' and
'to' keyframes.  So that we can enable the reftests that we had been suffering
from continuous MozAfterPaint events.

Depends on D12397

Differential Revision: https://phabricator.services.mozilla.com/D12369
2018-11-22 03:57:59 +00:00
Hiroyuki Ikezoe
6d7477e4b6 Bug 1506988 - Move IsMatchForCompositor to KeyframeEffect. r=birtles
So that we can use for KeyframeEffect::GetPropertiesForCompositor().

Depends on D12396

Differential Revision: https://phabricator.services.mozilla.com/D12397
2018-11-22 04:01:10 +00:00
Hiroyuki Ikezoe
ab341042a3 Bug 1504929 - Factor out IsEffectiveProperty(). r=birtles
Depends on D11598

Differential Revision: https://phabricator.services.mozilla.com/D11599
2018-11-13 10:18:09 +00:00
Hiroyuki Ikezoe
ac76dfd193 Bug 1504929 - Make if conditions in KeyframeEffect::GetEffectiveAnimationOfProperty negative. r=birtles
I.e., continue the loop if the CSS property is not what we want and set the
result value only if the CSS property is effective.

This change makes the function match
what KeyframeEffect::GetEffectiveAnimationProperties does in the similar loop
so that we can unify the iteration into a single function in the next commit.

Depends on D11597

Differential Revision: https://phabricator.services.mozilla.com/D11598
2018-11-13 10:17:56 +00:00
Hiroyuki Ikezoe
6cb9520459 Bug 1504929 - Avoid hashmap lookups in nsLayoutUtils::HasEffectiveAnimation and EffectCompositor::FindAnimationsForCompositor. r=birtles
Depends on D11427

Differential Revision: https://phabricator.services.mozilla.com/D11597
2018-11-13 10:17:44 +00:00
Hiroyuki Ikezoe
2ee4a8d976 Bug 1504929 - Stop iterating EffectSets and KeyframeEffect::mProperties for each CSS properties that can be animated on the compositor. r=birtles
This change gets all effective CSS properties on an nsIFrame just once.

Note that LayerAnimationInfo::GetCSSPropertiesFor intentionally returns
nsCSSPropertyIDSet instead of nsCSSPropertyID since when we support individual
transform properties for the compositor the mapping between display item types
and nsCSSProperty has to be 1:N. E.g. all scale/translate/rotate properties are
mapped to transform display item.

Depends on D11424

Differential Revision: https://phabricator.services.mozilla.com/D11425
2018-11-13 10:22:26 +00:00
Hiroyuki Ikezoe
784cbd6cac Bug 1479173 - Check animation generation change in the mProperties loop and drop LayerAnimationInfo::sRecords loop. r=birtles
If mIsRunningOnCompositor is true, the property is effective state because
CanThrottle() is called in advance of a restyle for the effect so that we can
drop the check and drop skipping in the case of non-effective properties.

Depends on D10694

Differential Revision: https://phabricator.services.mozilla.com/D10695
2018-11-06 21:02:18 +00:00
Hiroyuki Ikezoe
a85b8de617 Bug 1479173 - Call EffectSet::GetEffectSet in CanThrottle just once. r=birtles
Depends on D10693

Differential Revision: https://phabricator.services.mozilla.com/D10694
2018-11-06 21:02:06 +00:00
Hiroyuki Ikezoe
6213ea6243 Bug 1479173 - Check mIsRunningOnCompositor flag before iterating LayerAnimationInfo. r=birtles
The comment there was wrong.  We just bail out from there only if
mIsRunningCompositor is false, so it doesn't matter whatever the layer
generation check results.  (i.e., we don't bail out in the case where
mIsRunningCompositor is true).

Also, we iterate over mProperties in the LayerAnimationInfo::sRecords loop
through HasEffectiveAnimationOfProperty, so it doesn't matter that we iterate
mProperties before the loop either.  We will avoid the iteration in the sRecords
loop in a subsequent patch in this series.

Depends on D10692

Differential Revision: https://phabricator.services.mozilla.com/D10693
2018-11-06 21:01:50 +00:00
Hiroyuki Ikezoe
2e138bbe64 Bug 1479173 - Rename LayerAnimationInto::mLayerType to LayerAnimationInfo::mDisplayitemType. r=birtles
In the case of WebRender there is no layers, but actually we'd been using it for
WebRender too, that's confusing.

Depends on D10689

Differential Revision: https://phabricator.services.mozilla.com/D10690
2018-11-06 21:01:15 +00:00
Margareta Eliza Balazs
669af84e56 Backed out 9 changesets (bug 1479173) for build failures in src/dom/animation/EffectCompositor.cpp CLOSED TREE
Backed out changeset 439ac5cfbced (bug 1479173)
Backed out changeset 73aba16a223f (bug 1479173)
Backed out changeset 89dbc6f7f959 (bug 1479173)
Backed out changeset ed1c344ccf0d (bug 1479173)
Backed out changeset c330e7e1eb1d (bug 1479173)
Backed out changeset efcbbb9daa39 (bug 1479173)
Backed out changeset 43c6a7863536 (bug 1479173)
Backed out changeset 94f0ae94a02c (bug 1479173)
Backed out changeset 7cf0ad1af067 (bug 1479173)
2018-11-06 12:13:31 +02:00
Hiroyuki Ikezoe
4592f89e0e Bug 1479173 - Check animation generation change in the mProperties loop and drop LayerAnimationInfo::sRecords loop. r=birtles
If mIsRunningOnCompositor is true, the property is effective state because
CanThrottle() is called in advance of a restyle for the effect so that we can
drop the check and drop skipping in the case of non-effective properties.

Depends on D10694

Differential Revision: https://phabricator.services.mozilla.com/D10695
2018-11-06 09:40:39 +00:00
Hiroyuki Ikezoe
f96020fefa Bug 1479173 - Call EffectSet::GetEffectSet in CanThrottle just once. r=birtles
Depends on D10693

Differential Revision: https://phabricator.services.mozilla.com/D10694
2018-11-06 06:21:14 +00:00
Hiroyuki Ikezoe
73a3b89946 Bug 1479173 - Check mIsRunningOnCompositor flag before iterating LayerAnimationInfo. r=birtles
The comment there was wrong.  We just bail out from there only if
mIsRunningCompositor is false, so it doesn't matter whatever the layer
generation check results.  (i.e., we don't bail out in the case where
mIsRunningCompositor is true).

Also, we iterate over mProperties in the LayerAnimationInfo::sRecords loop
through HasEffectiveAnimationOfProperty, so it doesn't matter that we iterate
mProperties before the loop either.  We will avoid the iteration in the sRecords
loop in a subsequent patch in this series.

Depends on D10692

Differential Revision: https://phabricator.services.mozilla.com/D10693
2018-11-06 06:21:12 +00:00
Hiroyuki Ikezoe
b82d4a50a3 Bug 1479173 - Rename LayerAnimationInto::mLayerType to LayerAnimationInfo::mDisplayitemType. r=birtles
In the case of WebRender there is no layers, but actually we'd been using it for
WebRender too, that's confusing.

Depends on D10689

Differential Revision: https://phabricator.services.mozilla.com/D10690
2018-11-06 06:21:06 +00:00
Diego Pino Garcia
9be01aa31c Bug 1498948 - Refactor KeyframeEffect constructor to use r-value reference. r=boris 2018-10-16 00:38:00 +03:00
Brian Birtles
c82f9c9d10 Bug 1483404 - Move conversion of CompositeOperation enum types to KeyframeUtils::GetAnimationPropertiesFromKeyframes; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3457
2018-08-16 16:24:52 +00:00
Brian Birtles
f025528e45 Bug 1483404 - Use "auto" values for unspecified keyframe-specific composite operations; r=smaug
Summary:
This brings our implementation into line with the following spec change:

  ced6b5aac0

See https://github.com/w3c/csswg-drafts/issues/3000

Reviewers: smaug

Tags: #secure-revision

Bug #: 1483404

Differential Revision: https://phabricator.services.mozilla.com/D3384
2018-08-15 09:51:28 +09:00
Xidorn Quan
f21ef958b7 Bug 1479995 - Rename ScrollbarStyles to ScrollStyles. r=mstange
This change also renames several related functions, as well as fields,
and the header is moved into EXPORTS.mozilla given it is defined under
mozilla namespace.

MozReview-Commit-ID: LqCdcW8fmUN
2018-08-01 16:14:26 +10:00
Emilio Cobos Álvarez
601069ae11 Bug 1479450: Convert GetStringValue to use Servo. r=xidorn
And remove gPropertyTable / kCSSRawProperties while at it.

Differential Revision: https://phabricator.services.mozilla.com/D2516

MozReview-Commit-ID: 8U87BcBkrJF
2018-07-31 12:05:00 +02:00
Hiroyuki Ikezoe
bd0d6cf726 Bug 1478643 - Introduce a new change hint set for added or removed transform style. r=birtles
MozReview-Commit-ID: GfK1e5QaOu6
2018-07-30 10:51:18 +09:00
Brian Birtles
e72222f013 Bug 1471814 - Add a preference for animation composite modes; r=bz,hiro
This feature should not be shipped until the various definitions of addition for
each additive property are properly specified.

Unlike other patches in this series, compositing is not frequently used
internally (e.g. by DevTools etc.) so there is no need to enable this by default
for system code.

Also, it turns out we have inadvertently been shipping part of this feature for
some time now. The next patch in this series will add tests for that case and
disable that part of the feature (a suitable intent to unship will follow). This
patch merely adapts and extends the existing tests without affecting the surface
area covered by the combination of the newly-added pref and the existing
dom.animations-api.core.enabled pref.

MozReview-Commit-ID: Htr6mlyCBav
2018-07-14 09:23:03 +09:00
Hiroyuki Ikezoe
8f6ecbba6a Bug 1474247 - Call ReschedulePendingtasks when we set a new target to KeyframeEffect. r=birtles
MozReview-Commit-ID: 1n5I6RPKAM5
2018-07-12 17:05:50 +09:00
Brian Birtles
c7f0a4b352 Bug 1474766 - Merge the three-argument form of KeyframeEffect::Constructor and ConstructKeyframeEffect; r=hiro
There doesn't appear to be any need to separate these anymore.

MozReview-Commit-ID: GHR259JJHJV
2018-07-11 10:27:56 +09:00
Brian Birtles
2378b45b2a Bug 1474766 - Drop KeyframeEffectType template arg; r=hiro
This is no longer needed since in bug 1456394 we merged the two types of
KeyframeEffects into one.

MozReview-Commit-ID: 8IuTD9ivAGK
2018-07-11 10:27:01 +09:00
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Chris Peterson
f7ceeaf5cf Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr
2018-06-17 22:43:11 -07:00
Hiroyuki Ikezoe
13affd7d60 Bug 1430884 - Throttle transform animations without %0 or 100% keyframe. r=birtles
MozReview-Commit-ID: 3vLAlSkLz97
2018-06-25 18:29:28 +09:00
Hiroyuki Ikezoe
d7eefdf399 Bug 1430884 - Flatten CanThrottleIfNotVisible function with early returns. r=birtles
MozReview-Commit-ID: 3JQ0sG2oWfN
2018-06-25 11:51:05 +09:00
Hiroyuki Ikezoe
cca03e2983 Bug 1430884 - Factor out checking the animation on the given frame can be throttled if the frame is not visible. r=birtles
MozReview-Commit-ID: Kl7qYFXiVqr
2018-06-25 11:51:05 +09:00
Hiroyuki Ikezoe
e83a671b66 Bug 1430884 - Rename unthrottling transform animations stuff. r=birtles
In the next patch, we are going to unthrottle UpdateOverflow change hint which
is also produced by non-transform properties.

MozReview-Commit-ID: BrJxo32uBJO
2018-06-25 09:12:21 +09:00
Margareta Eliza Balazs
eb339b568b Backed out 9 changesets (bug 1430884) for frequently failing dom/animation/test/mozilla/test_restyles.html on android-em-4-3-armv7-api16 debug
Backed out changeset 262dbc8daac1 (bug 1430884)
Backed out changeset c3f9f3f66a98 (bug 1430884)
Backed out changeset 39e1c4e3c8c9 (bug 1430884)
Backed out changeset 4505e3f87b2e (bug 1430884)
Backed out changeset e7e8977e0e92 (bug 1430884)
Backed out changeset 6dbae2b8957d (bug 1430884)
Backed out changeset 1e047fbcae2a (bug 1430884)
Backed out changeset 52be07f10eaa (bug 1430884)
Backed out changeset cec68a5b01da (bug 1430884)
2018-06-25 12:23:59 +03:00
Hiroyuki Ikezoe
bc3a4fae91 Bug 1430884 - Throttle transform animations without %0 or 100% keyframe. r=birtles
MozReview-Commit-ID: 3vLAlSkLz97
2018-06-25 11:51:06 +09:00
Hiroyuki Ikezoe
139629742f Bug 1430884 - Flatten CanThrottleIfNotVisible function with early returns. r=birtles
MozReview-Commit-ID: 3JQ0sG2oWfN
2018-06-25 11:51:05 +09:00
Hiroyuki Ikezoe
5d57d695a1 Bug 1430884 - Factor out checking the animation on the given frame can be throttled if the frame is not visible. r=birtles
MozReview-Commit-ID: Kl7qYFXiVqr
2018-06-25 11:51:05 +09:00
Hiroyuki Ikezoe
3ba1029f47 Bug 1430884 - Rename unthrottling transform animations stuff. r=birtles
In the next patch, we are going to unthrottle UpdateOverflow change hint which
is also produced by non-transform properties.

MozReview-Commit-ID: BrJxo32uBJO
2018-06-25 09:12:21 +09:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Hiroyuki Ikezoe
4137f94965 Bug 1463605 - Call MarkNeedsDisplayItemRebuild() for IB split siblings too. r=mattwoodrow
MozReview-Commit-ID: 4vN69YLUbIy
2018-05-23 18:15:12 +09:00
Hiroyuki Ikezoe
1b916566b9 Bug 1463605 - Set mMayHaveOpacityAnimation and mMayHaveTransformAnimation flag to continuation or IB split sibling frames too. r=birtles
Without this fix layout/reftests/css-animations/ib-split-sibling-opacity.html
would have failed if the next change in this patch series is applied.

MozReview-Commit-ID: CFNXePkXuOs
2018-05-23 18:15:12 +09:00
Brian Birtles
82becfc790 Bug 1456394 - Drop AnimationEffectTiming(ReadOnly) interfaces; r=bz,hiro
MozReview-Commit-ID: KKqAWemDXwv
2018-05-07 12:58:37 +09: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
Brian Birtles
8df0d2bf77 Bug 1456394 - Move KeyframeEffect constructors to KeyframeEffectReadOnly.{h,cpp}; r=bz,hiro
By doing this we will have all the KeyframeEffect* related code in
KeyframeEffectReadOnly.{h,cpp} so we can rename them to KeyframeEffect.{h,cpp}
in the next patch and make it easier to examine the history for the bulk of this
code.

The added [HeaderFile] annotation will be removed in a subsequent patch in this
series.

MozReview-Commit-ID: Fxk6fPukgAS
2018-05-07 11:07:01 +09:00
Brian Birtles
32f5b34a27 Bug 1456394 - Moving timing updates to KeyframeEffectReadOnly; r=hiro
This might seem a bit odd but later in this patch series we will rename
KeyframeEffectReadOnly to KeyframeEffect.

MozReview-Commit-ID: H9b8brtA36W
2018-05-07 11:02:12 +09:00
Brian Birtles
c7ad93550d Bug 1456394 - Move KeyframeEffect attribute setters to KeyframeEffectReadOnly; r=bz,hiro
It might seem a bit odd to move the setters to the read-only class that we are
ultimately planning to drop but the reason for doing this is that
KeyframeEffectReadOnly.cpp has a *lot* more code than KeyframeEffect.cpp.

In order to simplify code archaeology we take the following approach:

  1. Move code from KeyframeEffect.{h,cpp} to KeyframeEffectReadOnly.{h,cpp}.
  2. Delete KeyframeEffect.{h,cpp}.
  3. Rename KeyframeEffectReadOnly.{h,cpp} to KeyframeEffect.{h,cpp}.

Note that at least steps 2 and 3 must be performed in separate patches as
mercurial does not successfully track renames when the target name already
exists.

MozReview-Commit-ID: LwJoxGJitKR
2018-05-07 10:48:48 +09:00
Jonathan Watt
19a102f496 Bug 1448294 - Clean up naming of 'styleContext' variables after the big nsStyleContext rename. r=emilio
Reviewers: emilio

Bug #: 1448294

Differential Revision: https://phabricator.services.mozilla.com/D796

MozReview-Commit-ID: KJq2i9nrg7y
2018-03-25 20:49:58 +02:00
Narcis Beleuzu
2764b805dc Backed out 2 changesets (bug 1448294, bug 1448337) for wpt and reftest failures on /mathml
Backed out changeset 180051cfe357 (bug 1448294)
Backed out changeset c188176f3289 (bug 1448337)
2018-03-25 21:31:08 +03:00