1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file. 4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef PageAnimator_h 6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define PageAnimator_h 7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 8697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch#include "platform/heap/Handle.h" 9697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 12197021e6b966cfb06891637935ef33fff06433d1Ben Murdochclass LocalFrame; 13d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class Page; 14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 15697ef0c10ac944be8499480c025020e4c282c980Ben Murdochclass PageAnimator final : public RefCountedWillBeGarbageCollected<PageAnimator> { 16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public: 17697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch static PassRefPtrWillBeRawPtr<PageAnimator> create(Page&); 18697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch void trace(Visitor*); 19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void scheduleVisualUpdate(); 20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void serviceScriptedAnimations(double monotonicAnimationStartTime); 21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setAnimationFramePending() { m_animationFramePending = true; } 23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool isServicingAnimations() const { return m_servicingAnimations; } 24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch void updateLayoutAndStyleForPainting(LocalFrame* rootFrame); 25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private: 27697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch explicit PageAnimator(Page&); 28697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch 29697ef0c10ac944be8499480c025020e4c282c980Ben Murdoch RawPtrWillBeMember<Page> m_page; 30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool m_animationFramePending; 31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool m_servicingAnimations; 3207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch bool m_updatingLayoutAndStyleForPainting; 33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}; 34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)} 36d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 37d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // PageAnimator_h 38