Commit Graph

43 Commits

Author SHA1 Message Date
Brian Birtles
7ab082cab9 Bug 1456394 - Rename animation timing dictionaries; r=bz
As per the changes in:

  d4519d9bba (diff-4c9f5c055fb219a7fcad23a9a7a80b64R4206)

MozReview-Commit-ID: Iwvbp0H6jlg
2018-05-07 12:09:54 +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
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
Tooru Fujisawa
ec45bb8511 Bug 1414674 - Do not enter the compartment of the target window when calling KeyframeEffect and KeyframeEffectReadOnly constructor via Xray. r=bz,birtles
KeyframeEffect and KeyframeEffectReadOnly constructors can run in the caller
compartment, which is okay because the current compartment is used in the
following places and all of them are safe:

1. GlobalObject::CallerType(), that is ultimately passed to
   nsDocument::IsWebAnimationsEnabled in KeyframeEffectParamsFromUnion,
   to decide whether to copy mIterationComposite/mComposite to
   KeyframeEffectParams.

   GlobalObject::CallerType() can now be different than the target window's one,
   if the caller has the system principal and the target is web content, and
   in that case nsDocument::IsWebAnimationsEnabled there always returns true
   while Web Animations can be disabled on web content.

   honoring the mIterationComposite/mComposite properties is OK, since it just
   changes the animation behavior, and this is disabled by default until
   remaining spec issues are resolved.

2. GlobalObject::Context(), that is ultimately passed to
   KeyframeUtils::GetKeyframesFromObject and used while extracting information
   from passed-in keyframe object, with iterable/iterator protocols.

   Performing that operation in the caller side is okay, since the same thing
   can be done on caller, and the operation doesn't perform any GCThing
   allocation on the target window global.
2018-02-17 17:21:13 +09:00
Tooru Fujisawa
bc0f4e34a3 Backed out changeset c3f16a179c93 (bug 1414674) 2018-02-18 01:24:08 +09:00
Tooru Fujisawa
319f4a707f Bug 1414674 - Do not enter the compartment of the target window when calling KeyframeEffect and KeyframeEffectReadOnly constructor via Xray. r=bz,birtles
KeyframeEffect and KeyframeEffectReadOnly constructors can run in the caller
compartment, which is okay because of the following reasons:

1. The target window global is used for most operation:
     * KeyframeEffectReadOnly::ConstructKeyframeEffect uses the target window
       global instead of current global.
     * KeyframeEffectParamsFromUnion which receives `aGlobal.CallerType()`

   In Xray case, Web Animations API can be disabled on web content
   (currently disabled on beta/release by default), and in that case some API
   won't work even it's triggered from WebExtensions, but it should be fine.

2. GetKeyframesFromObject is executed in the caller's compartment to access
   the passed-in JSObject that is keyframe, with iterable/iterator protocols.
   This operation doesn't perform any GCThing allocation on the target window
   global.
2018-02-17 17:21:13 +09:00
Brian Birtles
5b4ae90b6d Bug 1425548 - Update references to Web Animations spec in dom/webidl; r=bz
MozReview-Commit-ID: OnaTWOWhnk
2017-12-15 14:55:55 -06: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
Brian Birtles
d937cac741 Bug 1357631 - Drop comments about updating the type of target arguments/members in KeyframeEffect(ReadOnly); r=bz DONTBUILD
In bug 1241783 and Github issue #186[1] it was decided to update the WebIDL in
the Web Animations spec so that instead of using a mixin as the type, we instead
use a suitable union type.

This patch removes the comments that indicated that the Gecko WebIDL definition
need to be updated to match the spec, since the spec has now been updated to
match the Gecko WebIDL definition instead.[2]

[1] https://github.com/w3c/web-animations/issues/186
[2] a07f609270
    d0445d2a46
2017-04-19 12:56:25 +09: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
Hiroyuki Ikezoe
e7438cb417 Bug 1305325 - Part 3: Make AnimationPropertyValueDetails::mValue optional. r=birtles,smaug
MozReview-Commit-ID: H2fhRfC0Uoh
2016-12-04 08:07:39 +09: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
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
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
43944667cb Bug 1271904 - Rename KeyframeEffectReadOnly.getFrames() and KeyframeEffect.setFrames() to getKeyframes()/setKeyframes(); r=hiro, r=smaug
MozReview-Commit-ID: GwLLY39l1KE
2016-05-13 09:40:52 +09:00
Boris Chiou
e6d148eb3c Bug 1067769 - Part 5: Support setting KeyframeEffect.target webidl interface. r=smaug
MozReview-Commit-ID: 9494jdI97MT
2016-04-28 23:22:43 +08:00
Ryo Kato
57c2308f33 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
2016-04-09 15:33:34 +09:00
Brian Birtles
265d40049d Bug 1254419 - Throw if we fail to allocate memory for a values array in getProperties(); r=bz
MozReview-Commit-ID: BmDC51qWXcu
2016-03-17 12:47:14 +08:00
Brian Birtles
da47605568 Bug 1254419 - Make always-set members of AnimationProperty(Value)Details required; r=bz
At the same time we also make the 'warning' member of AnimationPropertyDetails
no longer nullable and simply use the absence of the member to indicate "no
warning" (which is what we were already doing -- we were never actually setting
it to null).

MozReview-Commit-ID: HdRDbqhCdmw
2016-03-17 10:13:50 +08:00
Brian Birtles
060fa0bcbc Bug 1254419 - Add values member to AnimationPropertyDetails; r=heycam, r=bz
MozReview-Commit-ID: 2XFh2qLwlaE
2016-03-13 19:20:37 +08:00
Brian Birtles
53eb63df8e Bug 1254419 - Rename getPropertyState() to getProperties(); r=heycam, r=bz
We are now extending this API to include more than just metadata about each
animated property but also the property values themselves.

Note that we can't use the name AnimationProperty for the dictionary since
we already use that name internally and [BinaryName] doesn't seem to apply to
dictionaries.

MozReview-Commit-ID: AcXeN4fsgTz
2016-03-13 19:10:10 +08:00
Hiroyuki Ikezoe
e8f1308737 Bug 1196114 - Part 2: Add AnimationPropertyStatus interface and KeyframeEffectReadOnly.runningStatus(). r=birtles,smaug
MozReview-Commit-ID: CPz3DtWxKll
2016-03-04 06:36:41 +09:00
Hiroyuki Ikezoe
cc2ea942cd Bug 1249278 - Expose KeyframeEffect interface only if nsDocument::IsWebAnimationsEnabled is true. r=smaug 2016-02-18 13:36:00 +01:00
Ryo Motozawa
c134e844d7 Bug 1244586 part 1 - Add KeyframeEffect constructor in dom/webidl/KeyframeEffect.webidl. r=smaug,birtles 2016-02-15 09:34:47 +09:00
Ryo Motozawa
9f647ace74 Bug 1211783 - Add KeyframeEffect interface to dom/webidl/KeyframeEffect.webidl. r=smaug,birtles 2016-02-15 09:34:47 +09:00
Boris Chiou
e65af0f582 Bug 1174575 - Part 2: Replace Element in KeyframeEffectReadOnly WebIDL. r=birtles, r=smaug
Use (Element or CSSPseudoElement)? as the first arguement of constructor and
the type of target.
2016-02-05 19:01:00 +01:00
Brian Birtles
d491093cef Bug 1096773 part 1 - Make the frames argument to the KeyframeEffectReadOnly constructor NOT optional; r=bz
This is to line up with the spec as discussed in:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1096773#c6
2016-01-29 12:37:52 +11:00
Boris Chiou
62c00930c1 Bug 1215406 - Part 4: Add KeyframeEffectOptions. r=smaug
Add KeyframeEffectOptions in KeyframeEffect.webidl
2015-11-12 03:40:00 +01:00
Cameron McCormack
f5fbfc3734 Bug 1208951 - Part 9: Implement KeyframeEffectReadOnly constructor. r=bzbarsky r=birtles 2015-10-22 19:22:38 +11:00
Cameron McCormack
086762822e Bug 1198708 - Part 6: Implement KeyframeEffectReadOnly.getFrames(). r=birtles,bzbarsky
Since getFrames() must gather all properties set at a given keyframe
offset time for a given easing function, we need to provide a total
ordering for ComputedTimingFunction objects.  Until the spec defines how
to do this, we sort first by NS_STYLE_TRANSITION_TIMING_FUNCTION_*
value, then second by the four values in a cubic-bezier() function (in
order) or the integer and optional keyword in a steps() function.

Because we don't support automatic spacing of keyframes yet,
ComputedKeyFrame.computedOffset is always the same as Keyframe.offset.

Another assumption made is that the value of easing for a Keyframe
object at 100% should be the same as the value from the previous
Keyframe for the same property.  An alternative would be to leave off
easing from that Keyframe, which would need the default value for that
IDL dictionary member removed (otherwise it would always be set to
"linear").
2015-09-29 12:20:14 +10:00
Brian Birtles
8a60bb95a9 Bug 1179111 part 4 - Remove KeyframeEffectReadOnly.name; r=smaug 2015-07-01 14:54:39 +09:00
Carsten "Tomcat" Book
89e4344802 Backed out changeset 171d0e4ec35d (bug 1179111) 2015-07-07 14:21:37 +02:00
Brian Birtles
ec33b7c652 Bug 1179111 part 4 - Remove KeyframeEffectReadOnly.name; r=smaug 2015-07-01 14:54:39 +09:00
Brian Birtles
67c6bec9aa Bug 1159082 - Rename *Readonly animation interfaces to *ReadOnly. r=smaug 2015-04-30 09:06:43 -04:00
Carsten "Tomcat" Book
49dcd0d63c Backed out changeset 1b5fc672f0d4 (bug 1159082) for B2G ICS Emulator opt R6 test failures on a CLOSED TREE 2015-04-30 13:15:04 +02:00
Brian Birtles
e3179b0530 Bug 1159082 - Rename *Readonly animation interfaces to *ReadOnly; r=smaug 2015-04-28 10:16:45 +09:00
Brian Birtles
acb8f4f9b4 Bug 1153734 part 5 - Add AnimationEffectReadonly as a superinterface of KeyframeEffectReadonly; r=smaug
This patch also replaces some tabs with spaces in KeyframeEffect.h because I was
in the area.
2015-04-15 08:48:21 +09:00
Brian Birtles
b23bc79d92 Bug 1153734 part 2 - Rename Animation to KeyframeEffectReadonly; r=smaug
We define KeyframeEffectReadonly in KeyframeEffect.cpp since Web Animations also
defines KeyframeEffect and when we come to implement that I expect we'll define
it in the same class, maybe even using the same object.

This patch also adds a few missing includes in places where
KeyframeEffectReadonly is used so that we're not just cargo-culting it in.
2015-04-15 08:48:21 +09:00