chromium/components/media_router/common/mojom/debugger.mojom

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

module media_router.mojom;

import "mojo/public/mojom/base/values.mojom";

// An interface for Media Router debugging and feedback.
interface Debugger {
  // If enabled, a mirroring session will use RTCP receiver reports for stat
  // fetching and analysis.
  ShouldFetchMirroringStats() => (bool should_fetch);

  // Sends the current mirroring stats of the current mirroring session.
  // The stats should be sent as a base::Value::Dict.
  // TODO(b/275409476): Handle multiple mirroring sessions at once. If there are
  // multiple mojom pipes all sending stats at once, the most recently sent stat
  // push will be used.
  OnMirroringStats(mojo_base.mojom.Value json_stats);

  // Binds this debugger to a new pending receiver, allowing any code with
  // access to a Debugger to create a new receiver for it.
  BindReceiver(pending_receiver<Debugger> receiver);
};