| // 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) => (); |
| }; |