chromium/chrome/browser/ui/views/media_preview/media_preview_metrics.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_VIEWS_MEDIA_PREVIEW_MEDIA_PREVIEW_METRICS_H_
#define CHROME_BROWSER_UI_VIEWS_MEDIA_PREVIEW_MEDIA_PREVIEW_METRICS_H_

#include "base/time/time.h"

namespace media_preview_metrics {

enum class UiLocation {};
enum class PreviewType {};

struct Context {};

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class MediaPreviewDeviceSelectionUserAction {};

void RecordPageInfoNumInUseDevices(const Context& context, int devices);
void RecordMediaPreviewDuration(const Context& context,
                                const base::TimeDelta& delta);

void RecordDeviceSelectionTotalDevices(const Context& context, int devices);
void RecordDeviceSelectionAction(
    const Context& context,
    MediaPreviewDeviceSelectionUserAction user_action);

void RecordPreviewCameraPixelHeight(const Context& context, int pixel_height);
void RecordPreviewVideoExpectedFPS(const Context& context, int expected_fps);
void RecordPreviewVideoActualFPS(const Context& context, int actual_fps);
void RecordPreviewVideoFramesRenderedPercent(const Context& context,
                                             float percent);
void RecordTotalVisiblePreviewDuration(const Context& context,
                                       const base::TimeDelta& delta);
void RecordTimeToActionWithoutPreview(const Context& context,
                                      const base::TimeDelta& delta);
void RecordPreviewDelayTime(const Context& context,
                            const base::TimeDelta& delta);

void RecordOriginTrialAllowed(UiLocation location, bool allowed);

}  // namespace media_preview_metrics

#endif  // CHROME_BROWSER_UI_VIEWS_MEDIA_PREVIEW_MEDIA_PREVIEW_METRICS_H_