chromium/content/browser/xr/metrics/session_metrics_helper.h

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

#ifndef CONTENT_BROWSER_XR_METRICS_SESSION_METRICS_HELPER_H_
#define CONTENT_BROWSER_XR_METRICS_SESSION_METRICS_HELPER_H_

#include <memory>
#include <unordered_map>
#include <unordered_set>

#include "content/common/content_export.h"
#include "content/public/browser/web_contents_observer.h"
#include "device/vr/public/mojom/vr_service.mojom-forward.h"
#include "device/vr/public/mojom/xr_device.mojom-forward.h"
#include "device/vr/public/mojom/xr_session.mojom-forward.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_source_id.h"

namespace content {
class SessionTimer;
class WebXRSessionTracker;

// This class is not thread-safe and must only be used from the main thread.
// This class tracks metrics for various kinds of sessions, including VR
// browsing sessions, WebXR presentation sessions, and others. It mainly tracks
// metrics that require state monitoring, such as durations, but also tracks
// data we want attached to that, such as number of videos watched and how the
// session was started.
class CONTENT_EXPORT SessionMetricsHelper
    : public content::WebContentsObserver {};

}  // namespace content

#endif  // CONTENT_BROWSER_XR_METRICS_SESSION_METRICS_HELPER_H_