mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 12:15:33 +00:00
382fd2fe39
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 --HG-- rename : dom/animation/test/mozilla/file_disable_animations_api_core.html => dom/animation/test/mozilla/file_disable_animations_api_compositing.html rename : dom/animation/test/mozilla/test_disable_animations_api_core.html => dom/animation/test/mozilla/test_disable_animations_api_compositing.html extra : rebase_source : 7715a25e59568eb122ba3f7dbd2c2b2ffdd19954
59 lines
2.2 KiB
Plaintext
59 lines
2.2 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* https://drafts.csswg.org/web-animations/#the-keyframeeffect-interfaces
|
|
*
|
|
* Copyright © 2015 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
|
|
* liability, trademark and document use rules apply.
|
|
*/
|
|
|
|
enum IterationCompositeOperation {
|
|
"replace",
|
|
"accumulate"
|
|
};
|
|
|
|
dictionary KeyframeEffectOptions : EffectTiming {
|
|
IterationCompositeOperation iterationComposite = "replace";
|
|
CompositeOperation composite = "replace";
|
|
};
|
|
|
|
// KeyframeEffect should run in the caller's compartment to do custom
|
|
// processing on the `keyframes` object.
|
|
[Func="nsDocument::IsWebAnimationsEnabled",
|
|
RunConstructorInCallerCompartment,
|
|
Constructor ((Element or CSSPseudoElement)? target,
|
|
object? keyframes,
|
|
optional (unrestricted double or KeyframeEffectOptions) options),
|
|
Constructor (KeyframeEffect source)]
|
|
interface KeyframeEffect : AnimationEffect {
|
|
attribute (Element or CSSPseudoElement)? target;
|
|
[Pref="dom.animations-api.compositing.enabled"]
|
|
attribute IterationCompositeOperation iterationComposite;
|
|
[Pref="dom.animations-api.compositing.enabled"]
|
|
attribute CompositeOperation composite;
|
|
[Throws] sequence<object> getKeyframes ();
|
|
[Throws] void setKeyframes (object? keyframes);
|
|
};
|
|
|
|
// Non-standard extensions
|
|
dictionary AnimationPropertyValueDetails {
|
|
required double offset;
|
|
DOMString value;
|
|
DOMString easing;
|
|
required CompositeOperation composite;
|
|
};
|
|
|
|
dictionary AnimationPropertyDetails {
|
|
required DOMString property;
|
|
required boolean runningOnCompositor;
|
|
DOMString warning;
|
|
required sequence<AnimationPropertyValueDetails> values;
|
|
};
|
|
|
|
partial interface KeyframeEffect {
|
|
[ChromeOnly, Throws] sequence<AnimationPropertyDetails> getProperties();
|
|
};
|