Throttle timers that change the style of elements outside the viewport
[WebKit-https.git] / Source / WebCore / page / FrameView.h
index 189ff47..bc18fe1 100644 (file)
@@ -4,7 +4,7 @@
              (C) 1998, 1999 Torben Weis (weis@kde.org)
              (C) 1999 Lars Knoll (knoll@kde.org)
              (C) 1999 Antti Koivisto (koivisto@kde.org)
-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+   Copyright (C) 2004-2009, 2014 Apple Inc. All rights reserved.
 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
 #include "ScrollView.h"
 #include <memory>
 #include <wtf/Forward.h>
+#include <wtf/HashSet.h>
 #include <wtf/ListHashSet.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
 class AXObjectCache;
+class DOMTimer;
 class Element;
 class FloatSize;
 class Frame;
@@ -303,6 +305,9 @@ public:
 
     void postLayoutTimerFired(Timer&);
 
+    void registerThrottledDOMTimer(DOMTimer*);
+    void unregisterThrottledDOMTimer(DOMTimer*);
+
     WEBCORE_EXPORT bool wasScrolledByUser() const;
     WEBCORE_EXPORT void setWasScrolledByUser(bool);
 
@@ -561,6 +566,7 @@ private:
     void forceLayoutParentViewIfNeeded();
     void performPostLayoutTasks();
     void autoSizeIfEnabled();
+    void updateThrottledDOMTimersState();
 
     void updateLayerFlushThrottling();
     WEBCORE_EXPORT void adjustTiledBackingCoverage();
@@ -749,6 +755,8 @@ private:
     std::unique_ptr<ScrollableAreaSet> m_scrollableAreas;
     std::unique_ptr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
 
+    HashSet<DOMTimer*> m_throttledTimers;
+
     int m_headerHeight;
     int m_footerHeight;