Source/JavaScriptCore:
[WebKit-https.git] / Source / WebCore / replay / EventLoopInput.h
index b4e3b70..1081ac0 100644 (file)
 #include <replay/NondeterministicInput.h>
 #include <wtf/CurrentTime.h>
 
 #include <replay/NondeterministicInput.h>
 #include <wtf/CurrentTime.h>
 
+namespace JSC {
+class InputCursor;
+};
+
 namespace WebCore {
 
 class ReplayController;
 
 namespace WebCore {
 
 class ReplayController;
 
-class EventLoopInputBase : public NondeterministicInputBase {
+// This is an RAII helper used during capturing which sets a flag on the input cursor
+// to track the dynamic extent of a captured event loop input. This extent approximates
+// the interval in which EventLoopInputDispatcher::dispatching() is true.
+class EventLoopInputExtent {
+    WTF_MAKE_NONCOPYABLE(EventLoopInputExtent);
 public:
 public:
-    EventLoopInputBase()
-        : m_timestamp(monotonicallyIncreasingTime())
-    {
-    }
+    EventLoopInputExtent(JSC::InputCursor&);
+    EventLoopInputExtent(JSC::InputCursor*);
+    ~EventLoopInputExtent();
+private:
+    JSC::InputCursor* m_cursor;
+};
 
 
+class EventLoopInputBase : public NondeterministicInputBase {
+public:
     virtual ~EventLoopInputBase() { }
     virtual InputQueue queue() const override final { return InputQueue::EventLoopInput; }
 
     virtual void dispatch(ReplayController&) = 0;
     virtual ~EventLoopInputBase() { }
     virtual InputQueue queue() const override final { return InputQueue::EventLoopInput; }
 
     virtual void dispatch(ReplayController&) = 0;
-
-    double timestamp() const { return m_timestamp; }
-    void setTimestamp(double timestamp) { m_timestamp = timestamp; }
-protected:
-    double m_timestamp;
 };
 
 template <typename InputType>
 };
 
 template <typename InputType>