chromium/ash/components/arc/mojom/anr.mojom

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

module arc.mojom;

[Extensible]
enum AnrType {
  // Other types of ANR which are not explicitly defined.
  UNKNOWN = 0,
  // ANR while handling input events.
  INPUT = 1,
  // ANR in foreground services.
  FOREGROUND_SERVICE = 2,
  // ANR in broadcasts.
  BROADCAST = 3,
  // ANR in content provider.
  CONTENT_PROVIDER = 4,
  // App custom ANR.
  APP_REQUESTED = 5,
  // ANR in processes.
  PROCESS = 6,
  // ANR in background services.
  BACKGROUND_SERVICE = 7
};

[Extensible]
enum AnrSource {
  // ANR coming from anything else than explicitly defined.
  OTHER = 0,
  // ANR coming from system server.
  SYSTEM_SERVER = 1,
  // ANR coming from system apps.
  SYSTEM_APP = 2,
  // ANR coming from GMS core.
  GMS_CORE = 3,
  // ANR coming from Play Store.
  PLAY_STORE = 4,
  // ANR coming from first party Google apps
  FIRST_PARTY = 5,
  // ANR coming from ARC apps other than explicitly defined.
  ARC_OTHER = 6,
  // ANR coming from ARC App launcher.
  ARC_APP_LAUNCHER = 7,
};

// Describes an ANR event.
struct Anr {
  // Type of ANR event.
  AnrType type;
  // ANR source.
  AnrSource source;
};