From 103feca08bf368935a1854afd6a09082e1f79277 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Fri, 28 Aug 2015 07:55:18 +1000 Subject: [PATCH] Fix requestAnimationFrame in headless mode. Fixes #7296. --- components/compositing/headless.rs | 14 +++++++++++++- .../mozilla/window_requestAnimationFrame2.html.ini | 6 ------ .../mozilla/window_requestAnimationFrame.html | 2 -- 3 files changed, 13 insertions(+), 9 deletions(-) delete mode 100644 tests/wpt/mozilla/meta/mozilla/window_requestAnimationFrame2.html.ini diff --git a/components/compositing/headless.rs b/components/compositing/headless.rs index d56c50de1d2..d8f952beada 100644 --- a/components/compositing/headless.rs +++ b/components/compositing/headless.rs @@ -7,6 +7,7 @@ use windowing::WindowEvent; use euclid::scale_factor::ScaleFactor; use euclid::size::Size2D; +use msg::constellation_msg::AnimationState; use msg::constellation_msg::Msg as ConstellationMsg; use msg::constellation_msg::{ConstellationChan, WindowSizeData}; use profile_traits::mem; @@ -88,6 +89,18 @@ impl CompositorEventListener for NullCompositor { response_chan.send(()).unwrap(); } + Msg::ChangeRunningAnimationsState(pipeline_id, animation_state) => { + match animation_state { + AnimationState::AnimationsPresent | + AnimationState::NoAnimationsPresent | + AnimationState::NoAnimationCallbacksPresent => {} + AnimationState::AnimationCallbacksPresent => { + let msg = ConstellationMsg::TickAnimation(pipeline_id); + self.constellation_chan.0.send(msg).unwrap() + } + } + } + // Explicitly list ignored messages so that when we add a new one, // we'll notice and think about whether it needs a response, like // SetFrameTree. @@ -95,7 +108,6 @@ impl CompositorEventListener for NullCompositor { Msg::InitializeLayersForPipeline(..) | Msg::SetLayerRect(..) | Msg::AssignPaintedBuffers(..) | - Msg::ChangeRunningAnimationsState(..) | Msg::ScrollFragmentPoint(..) | Msg::Status(..) | Msg::LoadStart(..) | diff --git a/tests/wpt/mozilla/meta/mozilla/window_requestAnimationFrame2.html.ini b/tests/wpt/mozilla/meta/mozilla/window_requestAnimationFrame2.html.ini deleted file mode 100644 index 6dfbd043f37..00000000000 --- a/tests/wpt/mozilla/meta/mozilla/window_requestAnimationFrame2.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[window_requestAnimationFrame2.html] - type: testharness - expected: TIMEOUT - [Test throwing an error inside requestAnimationFrame callback] - expected: NOTRUN - diff --git a/tests/wpt/mozilla/tests/mozilla/window_requestAnimationFrame.html b/tests/wpt/mozilla/tests/mozilla/window_requestAnimationFrame.html index e9c9e5789b0..8738fcc707e 100644 --- a/tests/wpt/mozilla/tests/mozilla/window_requestAnimationFrame.html +++ b/tests/wpt/mozilla/tests/mozilla/window_requestAnimationFrame.html @@ -8,8 +8,6 @@