// media/mojo/mojom/media_metrics_provider.mojom-blink-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_BLINK_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_BLINK_TEST_UTILS_H_

#include "media/mojo/mojom/media_metrics_provider.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace media::mojom::blink {


class BLINK_PLATFORM_EXPORT MediaMetricsProviderInterceptorForTesting : public MediaMetricsProvider {
  virtual MediaMetricsProvider* GetForwardingInterface() = 0;
  void Initialize(bool is_mse, MediaURLScheme url_scheme, ::media::mojom::blink::MediaStreamType stream_type) override;
  void OnStarted(const ::media::PipelineStatus& status) override;
  void OnError(const ::media::PipelineStatus& status) override;
  void OnFallback(const ::media::PipelineStatus& status) override;
  void SetHasPlayed() override;
  void SetHaveEnough() override;
  void SetIsEME() override;
  void SetTimeToMetadata(::base::TimeDelta elapsed) override;
  void SetTimeToFirstFrame(::base::TimeDelta elapsed) override;
  void SetTimeToPlayReady(::base::TimeDelta elapsed) override;
  void SetVisibilityRatioAtPlaybackStart(double ratio) override;
  void SetRendererType(::media::RendererType renderer_type) override;
  void SetDemuxerType(::media::DemuxerType demuxer_type) override;
  void SetKeySystem(const ::blink::String& key_system) override;
  void SetHasWaitingForKey() override;
  void SetIsHardwareSecure() override;
  void SetHasTrackChange() override;
  void SetContainerName(::media::container_names::MediaContainerName container_name) override;
  void AcquireWatchTimeRecorder(::media::mojom::blink::PlaybackPropertiesPtr properties, ::mojo::PendingReceiver<::media::mojom::blink::WatchTimeRecorder> recorder) override;
  void AcquireVideoDecodeStatsRecorder(::mojo::PendingReceiver<::media::mojom::blink::VideoDecodeStatsRecorder> recorder) override;
  void AcquirePlaybackEventsRecorder(::mojo::PendingReceiver<::media::mojom::blink::PlaybackEventsRecorder> receiver) override;
  void SetHasAudio(::media::AudioCodec codec) override;
  void SetHasVideo(::media::VideoCodec codec) override;
  void SetVideoPipelineInfo(const ::media::VideoPipelineInfo& info) override;
  void SetAudioPipelineInfo(const ::media::AudioPipelineInfo& info) override;
};
class BLINK_PLATFORM_EXPORT MediaMetricsProviderAsyncWaiter {
 public:
  explicit MediaMetricsProviderAsyncWaiter(MediaMetricsProvider* proxy);

  MediaMetricsProviderAsyncWaiter(const MediaMetricsProviderAsyncWaiter&) = delete;
  MediaMetricsProviderAsyncWaiter& operator=(const MediaMetricsProviderAsyncWaiter&) = delete;

  ~MediaMetricsProviderAsyncWaiter();

 private:
  MediaMetricsProvider* const proxy_;
};




}  // media::mojom::blink

#endif  // MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_BLINK_TEST_UTILS_H_