blob: 96648d9d4a4322b57421e5f6482fe47c6348a051 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <memory>
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/timing/window_performance.h"
namespace blink {
class Event;
// Event timing collects and records the event start time, processing start time
// and processing end time of long-latency events, providing a tool to evalute
// input latency.
// See also:
class CORE_EXPORT EventTiming final {
explicit EventTiming(LocalDOMWindow*);
void WillDispatchEvent(const Event&);
void DidDispatchEvent(const Event&);
void FinishWillDispatch();
bool ShouldReportForEventTiming(const Event& event) const;
// The time the first event handler or default action started to execute.
TimeTicks processing_start_;
bool finished_will_dispatch_event_ = false;
Persistent<WindowPerformance> performance_;
} // namespace blink