diff options
author | Moonchild <moonchild@palemoon.org> | 2021-01-14 17:43:44 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2021-01-14 17:43:44 +0000 |
commit | abc58d2ed0fd7739b31be78d6338ae79206ce879 (patch) | |
tree | b44936cf95aea75ecb8de43d17f46967929f7bfd | |
parent | 931314ef61ce982ac4bae782c67477d48028fc56 (diff) | |
download | UXP-abc58d2ed0fd7739b31be78d6338ae79206ce879.tar UXP-abc58d2ed0fd7739b31be78d6338ae79206ce879.tar.gz UXP-abc58d2ed0fd7739b31be78d6338ae79206ce879.tar.lz UXP-abc58d2ed0fd7739b31be78d6338ae79206ce879.tar.xz UXP-abc58d2ed0fd7739b31be78d6338ae79206ce879.zip |
Issue #1689 - Part 4: Add a preference for {Document,Element}.getAnimations()
This is probably the last thing we will ship (if ever) since it needs the most
spec and implementation work for arbitrary use that is pretty far into a corner.
-rw-r--r-- | dom/animation/test/mochitest.ini | 1 | ||||
-rw-r--r-- | dom/base/nsDocument.cpp | 9 | ||||
-rw-r--r-- | dom/base/nsDocument.h | 1 | ||||
-rw-r--r-- | dom/webidl/Animatable.webidl | 2 | ||||
-rw-r--r-- | dom/webidl/CSSPseudoElement.webidl | 2 | ||||
-rw-r--r-- | dom/webidl/Document.webidl | 2 | ||||
-rw-r--r-- | modules/libpref/init/all.js | 5 |
7 files changed, 16 insertions, 6 deletions
diff --git a/dom/animation/test/mochitest.ini b/dom/animation/test/mochitest.ini index fff62ac7c..ecdb674fe 100644 --- a/dom/animation/test/mochitest.ini +++ b/dom/animation/test/mochitest.ini @@ -2,6 +2,7 @@ prefs = dom.animations-api.compositing.enabled=true dom.animations-api.core.enabled=true + dom.animations-api.getAnimations.enabled=true dom.animations-api.implicit-keyframes.enabled=true dom.animations-api.timelines.enabled=true # Support files for chrome tests that we want to load over HTTP need diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index 43f11c031..1c3e7a421 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -2941,6 +2941,15 @@ nsDocument::AreWebAnimationsImplicitKeyframesEnabled(JSContext* /*unused*/, JSOb Preferences::GetBool("dom.animations-api.implicit-keyframes.enabled"); } +bool +nsDocument::IsWebAnimationsGetAnimationsEnabled(JSContext* /*unused*/, JSObject* /*unused*/) +{ + MOZ_ASSERT(NS_IsMainThread()); + + return nsContentUtils::IsCallerChrome() || + Preferences::GetBool("dom.animations-api.getAnimations.enabled"); +} + DocumentTimeline* nsDocument::Timeline() { diff --git a/dom/base/nsDocument.h b/dom/base/nsDocument.h index f544166c2..010f95ae2 100644 --- a/dom/base/nsDocument.h +++ b/dom/base/nsDocument.h @@ -435,6 +435,7 @@ public: static bool IsWebAnimationsEnabled(JSContext* aCx, JSObject* aObject); static bool AreWebAnimationsImplicitKeyframesEnabled(JSContext* aCx, JSObject* aObject); static bool AreWebAnimationsTimelinesEnabled(JSContext* aCx, JSObject* aObject); + static bool IsWebAnimationsGetAnimationsEnabled(JSContext* aCx, JSObject* aObject); virtual mozilla::dom::DocumentTimeline* Timeline() override; virtual void GetAnimations( diff --git a/dom/webidl/Animatable.webidl b/dom/webidl/Animatable.webidl index 4c1396c99..decc13960 100644 --- a/dom/webidl/Animatable.webidl +++ b/dom/webidl/Animatable.webidl @@ -23,6 +23,6 @@ interface Animatable { [Func="nsDocument::IsElementAnimateEnabled", Throws] Animation animate(object? keyframes, optional UnrestrictedDoubleOrKeyframeAnimationOptions options); - [Func="nsDocument::IsWebAnimationsEnabled"] + [Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"] sequence<Animation> getAnimations(optional AnimationFilter filter); }; diff --git a/dom/webidl/CSSPseudoElement.webidl b/dom/webidl/CSSPseudoElement.webidl index 96d191e3a..250bef03c 100644 --- a/dom/webidl/CSSPseudoElement.webidl +++ b/dom/webidl/CSSPseudoElement.webidl @@ -15,7 +15,7 @@ // this interface. // What we implement here is a minimal subset of the two definitions which we // ship behind a pref until the specification issues have been resolved. -[Func="nsDocument::IsWebAnimationsEnabled"] +[Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"] interface CSSPseudoElement { readonly attribute DOMString type; readonly attribute Element parentElement; diff --git a/dom/webidl/Document.webidl b/dom/webidl/Document.webidl index 46db00876..2ade9a2c9 100644 --- a/dom/webidl/Document.webidl +++ b/dom/webidl/Document.webidl @@ -314,7 +314,7 @@ partial interface Document { partial interface Document { [Func="nsDocument::AreWebAnimationsTimelinesEnabled"] readonly attribute DocumentTimeline timeline; - [Func="nsDocument::IsWebAnimationsEnabled"] + [Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"] sequence<Animation> getAnimations(); }; diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 3319045e7..a8799f69a 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -2710,17 +2710,16 @@ pref("layout.idle_period.required_quiescent_frames", 2); pref("layout.idle_period.time_limit", 1); // Is support for the Web Animations API enabled? -// Before enabling this by default, make sure also CSSPseudoElement interface -// has been spec'ed properly, or we should add a separate pref for -// CSSPseudoElement interface. See Bug 1174575 for further details. #ifdef RELEASE_OR_BETA pref("dom.animations-api.core.enabled", false); #else pref("dom.animations-api.core.enabled", true); #endif + pref("dom.animations-api.timelines.enabled", false); pref("dom.animations-api.implicit-keyframes.enabled", false); pref("dom.animations-api.compositing.enabled", false); +pref("dom.animations-api.getAnimations.enabled", false); // Is support for the Element.animate() function (a subset of the Web Animations // API) enabled? |