[WTF] Import std::optional reference implementation as WTF::Optional
[WebKit-https.git] / Source / WebCore / page / DOMTimer.h
index eb0de83..39a0461 100644 (file)
  *
  */
 
-#ifndef DOMTimer_h
-#define DOMTimer_h
+#pragma once
 
 #include "SuspendableTimer.h"
+#include "UserGestureIndicator.h"
 #include <memory>
 #include <wtf/RefCounted.h>
 
@@ -35,9 +35,7 @@ namespace WebCore {
 
 class DOMTimerFireState;
 class Document;
-class Element;
 class HTMLPlugInElement;
-class IntRect;
 class ScheduledAction;
 
 class DOMTimer final : public RefCounted<DOMTimer>, public SuspendableTimer {
@@ -46,9 +44,9 @@ class DOMTimer final : public RefCounted<DOMTimer>, public SuspendableTimer {
 public:
     virtual ~DOMTimer();
 
-    static std::chrono::milliseconds defaultMinimumInterval() { return std::chrono::milliseconds(4); }
-    static std::chrono::milliseconds defaultAlignmentInterval() { return std::chrono::milliseconds::zero(); }
-    static std::chrono::milliseconds hiddenPageAlignmentInterval() { return std::chrono::milliseconds(1000); }
+    static std::chrono::milliseconds defaultMinimumInterval() { return 4ms; }
+    static std::chrono::milliseconds defaultAlignmentInterval() { return 0ms; }
+    static std::chrono::milliseconds hiddenPageAlignmentInterval() { return 1000ms; }
 
     // Creates a new timer owned by specified ScriptExecutionContext, starts it
     // and returns its Id.
@@ -73,7 +71,7 @@ private:
     // SuspendableTimer
     void fired() override;
     void didStop() override;
-    Optional<std::chrono::milliseconds> alignedFireTime(std::chrono::milliseconds) const override;
+    std::optional<std::chrono::milliseconds> alignedFireTime(std::chrono::milliseconds) const override;
 
     // ActiveDOMObject API.
     const char* activeDOMObjectName() const override;
@@ -90,10 +88,7 @@ private:
     std::chrono::milliseconds m_originalInterval;
     TimerThrottleState m_throttleState;
     std::chrono::milliseconds m_currentTimerInterval;
-    bool m_shouldForwardUserGesture;
+    RefPtr<UserGestureToken> m_userGestureTokenToForward;
 };
 
 } // namespace WebCore
-
-#endif // DOMTimer_h
-