| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/dom/ScriptedAnimationController.h" | 5 #include "core/dom/ScriptedAnimationController.h" |
| 6 | 6 |
| 7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
| 8 #include "core/dom/FrameRequestCallback.h" | 8 #include "core/dom/FrameRequestCallback.h" |
| 9 #include "core/events/Event.h" | 9 #include "core/events/Event.h" |
| 10 #include "core/events/EventListener.h" | 10 #include "core/events/EventListener.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 // Document::ensureScriptedAnimationController is called. | 38 // Document::ensureScriptedAnimationController is called. |
| 39 m_controller = | 39 m_controller = |
| 40 wrapPersistent(ScriptedAnimationController::create(&document())); | 40 wrapPersistent(ScriptedAnimationController::create(&document())); |
| 41 } | 41 } |
| 42 | 42 |
| 43 namespace { | 43 namespace { |
| 44 | 44 |
| 45 class TaskOrderObserver { | 45 class TaskOrderObserver { |
| 46 public: | 46 public: |
| 47 std::unique_ptr<WTF::Closure> createTask(int id) { | 47 std::unique_ptr<WTF::Closure> createTask(int id) { |
| 48 return WTF::bind(&TaskOrderObserver::runTask, unretained(this), id); | 48 return WTF::bind(&TaskOrderObserver::runTask, WTF::unretained(this), id); |
| 49 } | 49 } |
| 50 const Vector<int>& order() const { return m_order; } | 50 const Vector<int>& order() const { return m_order; } |
| 51 | 51 |
| 52 private: | 52 private: |
| 53 void runTask(int id) { m_order.append(id); } | 53 void runTask(int id) { m_order.append(id); } |
| 54 Vector<int> m_order; | 54 Vector<int> m_order; |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 } // anonymous namespace | 57 } // anonymous namespace |
| 58 | 58 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 89 } | 89 } |
| 90 | 90 |
| 91 } // anonymous namespace | 91 } // anonymous namespace |
| 92 | 92 |
| 93 // A task enqueued while running tasks should not be run immediately after, but | 93 // A task enqueued while running tasks should not be run immediately after, but |
| 94 // the next time tasks are run. | 94 // the next time tasks are run. |
| 95 TEST_F(ScriptedAnimationControllerTest, EnqueueWithinTask) { | 95 TEST_F(ScriptedAnimationControllerTest, EnqueueWithinTask) { |
| 96 TaskOrderObserver observer; | 96 TaskOrderObserver observer; |
| 97 | 97 |
| 98 controller().enqueueTask(observer.createTask(1)); | 98 controller().enqueueTask(observer.createTask(1)); |
| 99 controller().enqueueTask(WTF::bind( | 99 controller().enqueueTask(WTF::bind(&enqueueTask, |
| 100 &enqueueTask, wrapPersistent(&controller()), unretained(&observer), 2)); | 100 wrapPersistent(&controller()), |
| 101 WTF::unretained(&observer), 2)); |
| 101 controller().enqueueTask(observer.createTask(3)); | 102 controller().enqueueTask(observer.createTask(3)); |
| 102 EXPECT_EQ(0u, observer.order().size()); | 103 EXPECT_EQ(0u, observer.order().size()); |
| 103 | 104 |
| 104 controller().serviceScriptedAnimations(0); | 105 controller().serviceScriptedAnimations(0); |
| 105 EXPECT_EQ(2u, observer.order().size()); | 106 EXPECT_EQ(2u, observer.order().size()); |
| 106 EXPECT_EQ(1, observer.order()[0]); | 107 EXPECT_EQ(1, observer.order()[0]); |
| 107 EXPECT_EQ(3, observer.order()[1]); | 108 EXPECT_EQ(3, observer.order()[1]); |
| 108 | 109 |
| 109 controller().serviceScriptedAnimations(0); | 110 controller().serviceScriptedAnimations(0); |
| 110 EXPECT_EQ(3u, observer.order().size()); | 111 EXPECT_EQ(3u, observer.order().size()); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 controller().enqueueTask(observer.createTask(2)); | 176 controller().enqueueTask(observer.createTask(2)); |
| 176 EXPECT_EQ(0u, observer.order().size()); | 177 EXPECT_EQ(0u, observer.order().size()); |
| 177 | 178 |
| 178 controller().serviceScriptedAnimations(0); | 179 controller().serviceScriptedAnimations(0); |
| 179 EXPECT_EQ(2u, observer.order().size()); | 180 EXPECT_EQ(2u, observer.order().size()); |
| 180 EXPECT_EQ(2, observer.order()[0]); | 181 EXPECT_EQ(2, observer.order()[0]); |
| 181 EXPECT_EQ(1, observer.order()[1]); | 182 EXPECT_EQ(1, observer.order()[1]); |
| 182 } | 183 } |
| 183 | 184 |
| 184 } // namespace blink | 185 } // namespace blink |
| OLD | NEW |