#ifndef CC_METRICS_FRAME_SEQUENCE_METRICS_H_
#define CC_METRICS_FRAME_SEQUENCE_METRICS_H_
#include <bitset>
#include <cmath>
#include <memory>
#include <vector>
#include "base/check.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/trace_event/traced_value.h"
#include "cc/cc_export.h"
#include "cc/metrics/frame_info.h"
#include "components/viz/common/frame_sinks/begin_frame_args.h"
namespace viz {
struct BeginFrameArgs;
}
namespace cc {
struct FrameInfo;
enum class FrameSequenceTrackerType { … };
ActiveTrackers;
inline bool IsScrollActive(const ActiveTrackers& trackers) { … }
inline bool HasMainThreadAnimation(const ActiveTrackers& trackers) { … }
inline bool HasCompositorThreadAnimation(const ActiveTrackers& trackers) { … }
class CC_EXPORT FrameSequenceMetrics { … };
bool ShouldReportForAnimation(FrameSequenceTrackerType sequence_type,
FrameInfo::SmoothEffectDrivingThread thread_type);
bool ShouldReportForInteraction(
FrameSequenceTrackerType sequence_type,
FrameInfo::SmoothEffectDrivingThread reporting_thread_type,
FrameInfo::SmoothEffectDrivingThread metrics_effective_thread_type);
}
#endif