diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/testbinding.rs | 4 | ||||
-rw-r--r-- | components/script/dom/webidls/TestBinding.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/window.rs | 6 |
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 |