aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-12-10 18:04:49 -0500
committerGitHub <noreply@github.com>2018-12-10 18:04:49 -0500
commiteeaca0b26d4bd46668fb792dccfbee0111982f6a (patch)
tree3cd73855120fdfcbbf962707c6c3f1424cca97c1 /components/script
parenta04200ae795d6f177ed77e9f826a8151f48d78ec (diff)
parented74b898a5a5a7227ab68ce7ca68a540fc4dde9a (diff)
downloadservo-eeaca0b26d4bd46668fb792dccfbee0111982f6a.tar.gz
servo-eeaca0b26d4bd46668fb792dccfbee0111982f6a.zip
Auto merge of #22389 - jdm:anim-complete, r=emilio,ferjm
Cancel animations that affect nodes that do not participate in layout. - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #22378 - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22389) <!-- Reviewable:end -->
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/webidls/Window.webidl5
-rw-r--r--components/script/dom/window.rs8
2 files changed, 12 insertions, 1 deletions
diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl
index e438017954b..1679fa42887 100644
--- a/components/script/dom/webidls/Window.webidl
+++ b/components/script/dom/webidls/Window.webidl
@@ -173,3 +173,8 @@ partial interface Window {
readonly attribute TestRunner testRunner;
//readonly attribute EventSender eventSender;
};
+
+partial interface Window {
+ [Pref="css.animations.testing.enabled"]
+ readonly attribute unsigned long runningAnimationCount;
+};
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index d7f6a45257a..d8353157cc1 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -74,7 +74,7 @@ use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarker
use dom_struct::dom_struct;
use embedder_traits::EmbedderMsg;
use euclid::{Point2D, Rect, Size2D, TypedPoint2D, TypedScale, TypedSize2D, Vector2D};
-use ipc_channel::ipc::IpcSender;
+use ipc_channel::ipc::{channel, IpcSender};
use ipc_channel::router::ROUTER;
use js::jsapi::JSAutoCompartment;
use js::jsapi::JSContext;
@@ -1144,6 +1144,12 @@ impl WindowMethods for Window {
self.test_runner.or_init(|| TestRunner::new(self.upcast()))
}
+ fn RunningAnimationCount(&self) -> u32 {
+ let (sender, receiver) = channel().unwrap();
+ let _ = self.layout_chan.send(Msg::GetRunningAnimations(sender));
+ receiver.recv().unwrap_or(0) as u32
+ }
+
// https://html.spec.whatwg.org/multipage/#dom-name
fn SetName(&self, name: DOMString) {
self.window_proxy().set_name(name);