chromium/chromeos/crosapi/mojom/metrics_reporting.mojom

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

module crosapi.mojom;

// Interface for observers of metrics reporting consent. Implemented by
// lacros-chrome. Used by ash-chrome to send update notifications.
// Next version: 2
[Stable, Uuid="3bfcacbc-ab16-4731-9e11-3523983915d0"]
interface MetricsReportingObserver {
  // Called when the metrics reporting state changes.
  // If enabled is set to true, the client_id must be provided.
  OnMetricsReportingChanged@0(bool enabled, [MinVersion=1] string? client_id);
};

// Interface for metrics reporting consent. Implemented by ash-chrome.
// Next version: 1
// Next method id: 2
[Stable, Uuid="a2336315-84ad-413f-9190-9eb2906408f6"]
interface MetricsReporting {
  // Adds an observer for metrics-related state. The observer is fired
  // immediately with the current state.
  AddObserver@0(pending_remote<MetricsReportingObserver> observer);

  // Sets the OS-level metrics reporting consent. This also affects crash
  // report uploads. Lacros is allowed to do this for UX reasons. We have a
  // toggle for metrics consent in lacros browser settings, in addition to the
  // one in OS settings, and we want to keep both. Returns a value for possible
  // future extension.
  SetMetricsReportingEnabled@1(bool enabled) => ();
};