Commit Graph

275 Commits

Author SHA1 Message Date
Jonathan Watt
68804bb222 Summary: 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
2018-03-22 13:49:21 +00: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
63b6495c6f Bug 1413104 - Drop telemetry probes for layer size; r=botond
MozReview-Commit-ID: FtpTJDC50A8
2017-12-14 21:36:09 +00:00
Brian Birtles
14ebce261c Bug 1418220 - Drop AnimationUtils::IsCoreAPIEnabled(ForCaller) and use nsContentUtils::AnimationsAPICoreEnabled / nsDocument::IsWebAnimationsEnabled instead; r=hiro
The difference between nsDocument::IsWebAnimationsEnabled and
nsContentUtils::AnimationsAPICoreEnabled is that the former checks the caller
type and treats the preference as set for system callers which is particularly
needed for enabling things like the getProperties() API for DevTools etc.

Generally in API-facing call sites we have a JS context / CallerType and so we
want to distinguish between system callers and non-system callers. However, for
a few internal uses--specifically filling-in missing keyframes--we don't care
about the caller type and always follow the pref setting.

That may or not be quite what we want, but this patch doesn't change that except
for one call site: KeyframeUtils::GetKeyframesFromObject. This patch changes
GetKeyframesFromObject from *not* checking the caller type to checking the
caller type. That seems to be the correct behavior here since this is called
from KeyframeEffectReadOnly::SetKeyframes(JSContext*, JS::Handle<JSObject*>,
ErrorResult&) (i.e. a JS API-facing call site) where we *should* enable the full
API when the caller is chrome code.

MozReview-Commit-ID: FQJBk3zytwd
2017-11-20 14:18:43 +09:00
Jonathan Watt
255f0e0b47 Bug 1417365 - Unified build issues in dom/animation. r=baku 2017-10-26 11:55:28 +01:00
Boris Chiou
508c013dbc Bug 1339690 - Part 3: Drop spacing mode. r=birtles,smaug
MozReview-Commit-ID: 1c7jpzWQjVP
2017-06-13 15:09:19 +08:00
Botond Ballo
057ea9c8af Bug 1361915 - Record telemetry each time we try to run a transform animation on the compositor. r=birtles,bsmedberg
The telemetry is recorded once per effect:target pair, and is intended for
comparison with the telemetry added in bug 1349808.

MozReview-Commit-ID: 8JYbAifjmki
2017-05-03 21:39:42 -04:00
Wes Kocher
3609da7ace Backed out changeset 3a3a19e0d903 (bug 1361915) for build bustage a=backout
MozReview-Commit-ID: 3BG6xILsiXW
2017-05-11 15:11:29 -07:00
Botond Ballo
970c843e28 Bug 1361915 - Record telemetry each time we try to run a transform animation on the compositor. r=birtles,bsmedberg
The telemetry is recorded once per effect:target pair, and is intended for
comparison with the telemetry added in bug 1349808.

MozReview-Commit-ID: 8JYbAifjmki
2017-05-03 21:39:42 -04:00
Boris Chiou
235f10203b Bug 1349808 - Add telemetry for cases when we can't run async animations due to layer size being too large. data-review=bsmedberg, r=birtles,botond,bsmedberg
MozReview-Commit-ID: 61DBw1DHbQA
2017-03-24 15:53:54 +08:00
Hiroyuki Ikezoe
2dafe887f0 Bug 1216844 - Implement KeyframeEffect::SetComposite(). r=boris,smaug
MozReview-Commit-ID: C9wHsriHgZ9
2016-12-14 08:51:44 +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
Boris Chiou
80234aac5e Bug 1273784 - Part 3: Implement KeyframeEffect(ReadOnly) copy constructor API. r=hiro
MozReview-Commit-ID: 9ju9jeJ8cvq
2016-11-01 18:39:06 +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
Hiroyuki Ikezoe
e0b5695bf6 Bug 1304922 - Part 7: Drop mWinsInCascade. r=birtles
MozReview-Commit-ID: 1q4glZenZNa
2016-10-05 14:48:05 +09:00
Boris Chiou
a346b0477a Bug 1304805 - Make spacing, iteration composite and effect composite work if the caller is chrome. r=hiro
MozReview-Commit-ID: 30BOUA8QPh8
2016-09-23 14:31:34 +08:00
Hiroyuki Ikezoe
64d7ecade3 Bug 1294651 - Don't apply iterationComposite value if the preference for Web Animations API is not enabled. r=boris
MozReview-Commit-ID: 5ckKyDSBv3S
2016-09-21 19:17:18 +09:00
Hiroyuki Ikezoe
68331a33cc Bug 1216843 - Part 2: Implement effect iteration composition. r=birtles, r=smaug
MozReview-Commit-ID: 6u7WtXwL3y3
2016-09-13 11:48:44 +09:00
Mike de Boer
34c97f402f Bug 1290914 - support Element.animate() on AnonymousContent nodes through the AnonymousContent.setAnimationForElement() method. r=bz
MozReview-Commit-ID: 39QPaCea7Dx
2016-09-08 22:38:53 +02:00
Boris Chiou
4054422794 Bug 1274944 - Part 4: Implement mutation observer for setting spacing. r=birtles
MozReview-Commit-ID: LmCO9QyQbBU
2016-09-05 12:00:12 +08:00
Boris Chiou
db396084bc Bug 1274944 - Part 2: Implement SetSpacing(). r=birtles
MozReview-Commit-ID: ASJHVK97gq6
2016-08-31 17:31:10 +08:00
Boris Chiou
d62fca020a Bug 1274944 - Part 1: Add writable spacing attribute. r=smaug
Use [SetterThrows] for KeyframeEffect.spacing because it throws if the input
string is not conformed to the grammar.

MozReview-Commit-ID: CkAnPu8TnV
2016-08-31 16:58:57 +08:00
Brian Birtles
cf51ad1c35 Bug 1300045 part 2 - Split KeyframeEffect.cpp into KeyframeEffect{ReadOnly}.cpp r=hiro,smaug
MozReview-Commit-ID: DdBEicunApv
2016-09-04 16:34:21 +09:00
Brian Birtles
0d9f6c5bac Bug 1300045 part 1 - Tidy up some missing includes r=hiro
I came across these while working on a different bug that changed the grouping
in the unified build. Adding these as a separate step will hopefully remove a
little noise from the next patch in the series.

MozReview-Commit-ID: Km7wTcVWG9n
2016-09-04 16:33:38 +09:00
Boris Chiou
fa93064b25 Bug 1298742 - Part 3: Avoid to request a restyle in SetAnimation(). r=birtles
After updating a new animation, I think we don't need to request a restyle for
the new animation because:
1. CSS Animation & CSS Transition: we don't need to request a restyle.
2. Animation constructor: we don't need to request a restyle.
2. Animation.effect: we call PostUpdate() after SetEffectNoUpdate() already.

MozReview-Commit-ID: HrUGBrbt7xi
2016-08-30 17:56:21 +08:00
Boris Chiou
1110beab2b Bug 1298742 - Part 2: Make sure UpdateRelevance() is called before NotifyAnimationTimingUpdated. r=hiro
MozReview-Commit-ID: Ki0Aqhgl1dO
2016-08-29 16:22:46 +08:00
Boris Chiou
1fc02a9729 Bug 1298742 - Part 1: Factor out MarkCascadeUpdate(). r=hiro
We mark the cascade update many times, so it's better to factor it out.

MozReview-Commit-ID: HbE980gOJ9M
2016-08-29 18:46:07 +08:00
Ryan VanderMeulen
ff35ccfd9c Merge m-c to autoland. a=merge 2016-08-31 09:55:10 -04:00
Nicholas Nethercote
177f76c5cc Bug 1298722 - Use MOZ_MUST_USE in StyleAnimationValue. r=birtles. 2016-08-30 16:10:59 +10:00
Hiroyuki Ikezoe
acfc03e08a Bug 1298755 - Part 2: Drop ResetWinsInCascade in KeyframeEffect::SetTarget() since it has no effect. r=birtles
The purpose of ResetWinsInCascade() in SetTarget() ensures that
RequestRestyle(Layer) is invoked for the new target in the case when
composite order or CSS cascading or order is changed due to chaging target
element, but RequestRestyle(Layer) will be called right after setting
the new target in SetTarget() explicitly.

MozReview-Commit-ID: 1cFJCAEEroP
2016-08-31 13:58:05 +09:00
Takashi Kawanaka
3db748048c Bug 1291061 - Pass const StyleAnimationValue& to CreateStyleContextForAnimationValue r=birtles
MozReview-Commit-ID: 6PJzBBWSgwQ
2016-08-27 15:27:38 +09:00
Boris Chiou
b5fe9f732c Bug 1049975 - Part 9: Implement writable Animation effect. r=birtles
MozReview-Commit-ID: 1dwHpcYJto3
2016-07-13 18:44:19 +08:00
Boris Chiou
d47a637f93 Bug 1049975 - Part 5: Move timing related code into AnimationEffectReadOnly. r=birtles
Move the mTiming, mAnimation, and the implementaion of timing into
AnimationEffectReadOnly.

MozReview-Commit-ID: EZhlbphVvCo
2016-07-25 18:27:33 +08:00
Brian Birtles
b95d814ea1 Bug 1286476 part 2 - Respect the playback rate when calculating phase boundaries; r=hiro
This implements the spec change in 21de090dac

The spec change refers to a binary 'animation direction' flag. Instead of that,
however, we just pass the playback rate along and use it inside
GetComputedTimingAt since this seems simpler.

Also, this patch moves the implementation of
KeyframeEffectReadOnly::GetComputedTiming from the header file into the .cpp
file. This is because with this change, GetComputedTiming needs to call
mAnimation->PlaybackRate() and so mozilla::dom::Animation needs to be a complete
type. However, simply including Animation.h doesn't work because of a cyclic
dependency between KeyframeEffect.h and Animation.h. We might be able to fix
this later but since yet-to-land bug 1049975 moves this code around a lot, I'd
rather not touch it too much just now.

MozReview-Commit-ID: 1h6XRh4xmfI
2016-08-17 08:28:41 +09:00
Wes Kocher
c7a7ed3ee4 Backed out 3 changesets (bug 1286476) for frequent windows wpt failures in phases-and-states.html CLOSED TREE
Backed out changeset 53bbfa02d45d (bug 1286476)
Backed out changeset 3947ab570883 (bug 1286476)
Backed out changeset ffd8c37eb695 (bug 1286476)
2016-08-17 10:41:46 -07:00
Brian Birtles
af36ab2fce Bug 1286476 part 2 - Respect the playback rate when calculating phase boundaries; r=hiro
This implements the spec change in 21de090dac

The spec change refers to a binary 'animation direction' flag. Instead of that,
however, we just pass the playback rate along and use it inside
GetComputedTimingAt since this seems simpler.

Also, this patch moves the implementation of
KeyframeEffectReadOnly::GetComputedTiming from the header file into the .cpp
file. This is because with this change, GetComputedTiming needs to call
mAnimation->PlaybackRate() and so mozilla::dom::Animation needs to be a complete
type. However, simply including Animation.h doesn't work because of a cyclic
dependency between KeyframeEffect.h and Animation.h. We might be able to fix
this later but since yet-to-land bug 1049975 moves this code around a lot, I'd
rather not touch it too much just now.

MozReview-Commit-ID: 1h6XRh4xmfI
2016-08-17 08:28:41 +09:00
Jonathan Chan
fafebb61e5 Bug 1293739 - Part 2: Rename nsCSSPropertySet to nsCSSPropertyIDSet. r=dholbert
The previous patch in this series renamed nsCSSProperty to nsCSSPropertyID.
This patch renames nsCSSPropertySet to nsCSSPropertyIDSet accordingly.

This patch is generated by the following commands (note: if you're running
using OS X's sed, which accepts slightly different flags, you'll have to
specify an actual backup suffix in -i, or use gsed from Homebrew):

  hg stat -c \
  | cut -c 3-  \
  | tr '\n' '\0' \
  | xargs -0 -P 8 gsed --follow-symlinks 's/\bnsCSSPropertySet\b/nsCSSPropertyIDSet/g' -i''

Then:

  hg mv layout/style/nsCSSPropertySet.h layout/style/nsCSSPropertyIDSet.h

... and finally, manually renaming nsCSSPropertySet in the include guard in
nsCSSPropertyIDSet.h.

MozReview-Commit-ID: ASUNs7FWbKP
2016-08-09 16:28:21 -07:00
Jonathan Chan
23ccd0531f Bug 1293739 - Part 1: Rename nsCSSProperty to nsCSSPropertyID. r=dholbert
This patch is generated by the following commands (note: if you're running
using OS X's sed, which accepts slightly different flags, you'll have to
specify an actual backup suffix in -i, or use gsed from Homebrew):

  hg stat -c \
  | cut -c 3-  \
  | tr '\n' '\0' \
  | xargs -0 -P 8 gsed --follow-symlinks 's/\bnsCSSProperty\b/nsCSSPropertyID/g' -i''

Then:

  hg mv layout/style/nsCSSProperty.h layout/style/nsCSSPropertyID.h

... and finally, manually renaming nsCSSProperty in the include guard in
nsCSSProperty.h.

MozReview-Commit-ID: ZV6jyvmLfA
2016-08-09 16:28:19 -07:00
Hiroyuki Ikezoe
dfa69b46d2 Bug 1287725 - Drop KeyframeEffectReadOnly::HasAnimationOfProperties and nsLayoutUtils::HasCurrentAnimationsForProperties. r=birtles
MozReview-Commit-ID: K33ga7KpLIo
2016-07-26 06:44:11 +09:00
Hiroyuki Ikezoe
79111f2b63 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
35cc6f3447 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
2016-07-13 13:22:25 +09:00
Brian Birtles
785933548f 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
2016-07-13 13:22:25 +09:00
Hiroyuki Ikezoe
afb064adfe Bug 1278485 - Part 1: Limit y1 and y2 control points for cubic-bezier to avoid overflows. r=birtles
MozReview-Commit-ID: Bls260r7Sqn
2016-07-12 16:24:42 +09:00
Hiroyuki Ikezoe
fce21e48f1 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
2016-07-11 08:29:14 +09:00
Hiroyuki Ikezoe
fe0c87b94d Bug 1278136 - Part 0: Clean up frame->StyleDisplay()->BackfaceIsHidden() usage. r=mattwoodrow
We already have a wrapper named nsIFrame::BackfaceIsHidden().

MozReview-Commit-ID: 5L49W6wtXs1
2016-07-08 13:01:31 +09:00
Brian Birtles
67c4c05a93 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
7a1bc2e915 Bug 1283625 - Unlink timing object before nullifying it. r=birtles
MozReview-Commit-ID: 3eIAL77aDLV
2016-07-06 10:57:26 +08:00
Brian Birtles
44884adfcf Backed out changeset f182a6c18d75 (bug 1279819) 2016-07-06 09:09:55 +09:00