1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef PageAnimator_h 6#define PageAnimator_h 7 8#include "platform/heap/Handle.h" 9 10namespace blink { 11 12class LocalFrame; 13class Page; 14 15class PageAnimator final : public RefCountedWillBeGarbageCollected<PageAnimator> { 16public: 17 static PassRefPtrWillBeRawPtr<PageAnimator> create(Page&); 18 void trace(Visitor*); 19 void scheduleVisualUpdate(); 20 void serviceScriptedAnimations(double monotonicAnimationStartTime); 21 22 void setAnimationFramePending() { m_animationFramePending = true; } 23 bool isServicingAnimations() const { return m_servicingAnimations; } 24 void updateLayoutAndStyleForPainting(LocalFrame* rootFrame); 25 26private: 27 explicit PageAnimator(Page&); 28 29 RawPtrWillBeMember<Page> m_page; 30 bool m_animationFramePending; 31 bool m_servicingAnimations; 32 bool m_updatingLayoutAndStyleForPainting; 33}; 34 35} 36 37#endif // PageAnimator_h 38