aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/testbinding.rs4
-rw-r--r--components/script/dom/webidls/TestBinding.webidl2
-rw-r--r--components/script/dom/window.rs6
3 files changed, 12 insertions, 0 deletions
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index 64fb6fb7578..8ee6dfe8025 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -581,6 +581,10 @@ impl TestBindingMethods for TestBinding {
}
}
+ fn AdvanceClock(&self, ms: i32) {
+ self.global().r().as_window().advance_animation_clock(ms);
+ }
+
fn Panic(&self) { panic!("explicit panic from script") }
}
diff --git a/components/script/dom/webidls/TestBinding.webidl b/components/script/dom/webidls/TestBinding.webidl
index 355141a4d92..48e647ee7bc 100644
--- a/components/script/dom/webidls/TestBinding.webidl
+++ b/components/script/dom/webidls/TestBinding.webidl
@@ -424,6 +424,8 @@ interface TestBinding {
static void prefControlledStaticMethodDisabled();
[Pref="dom.testbinding.prefcontrolled.enabled"]
const unsigned short prefControlledConstDisabled = 0;
+ [Pref="layout.animations.test.enabled"]
+ void advanceClock(long millis);
[Pref="dom.testbinding.prefcontrolled2.enabled"]
readonly attribute boolean prefControlledAttributeEnabled;
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 4878f33f994..07509a92e4a 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -1030,6 +1030,12 @@ impl Window {
recv.recv().unwrap_or((Size2D::zero(), Point2D::zero()))
}
+ /// Advances the layout animation clock by `delta` milliseconds, and then
+ /// forces a reflow.
+ pub fn advance_animation_clock(&self, delta: i32) {
+ self.layout_chan.send(Msg::AdvanceClockMs(delta)).unwrap();
+ }
+
/// Reflows the page unconditionally if possible and not suppressed. This
/// method will wait for the layout thread to complete (but see the `TODO`
/// below). If there is no window size yet, the page is presumed invisible