1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130

ash / components / arc / metrics / arc_metrics_constants.h [blame]

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

#ifndef ASH_COMPONENTS_ARC_METRICS_ARC_METRICS_CONSTANTS_H_
#define ASH_COMPONENTS_ARC_METRICS_ARC_METRICS_CONSTANTS_H_

namespace arc {

// Native bridge types for UMA recording (Arc.NativeBridge). These values are
// persisted to logs, and should therefore never be renumbered nor reused.
// Should be synced with ArcNativeBridgeType in
// tools/metrics/histograms/enums.xml.
enum class NativeBridgeType {
  // Native bridge value has not been received from the container yet.
  UNKNOWN = 0,
  // Native bridge is not used.
  NONE = 1,
  // Using houdini translator.
  HOUDINI = 2,
  // Using ndk-translation translator.
  NDK_TRANSLATION = 3,
  kMaxValue = NDK_TRANSLATION,
};

// Defines ARC App user interaction types to track how users use ARC apps.
// These enums are used to define the buckets for an enumerated UMA histogram
// and need to be synced with the ArcUserInteraction enum in
// tools/metrics/histograms/metadata/arc/enums.xml.
enum class UserInteractionType {
  // Default to not user-initiated.
  // Can be used temporarily for a new action path or to denote an action
  // that was not directly user-initiated.
  NOT_USER_INITIATED = 0,

  // User started an app from the launcher.
  APP_STARTED_FROM_LAUNCHER = 1,

  // User started an app from a context menu click in the launcher.
  APP_STARTED_FROM_LAUNCHER_CONTEXT_MENU = 2,

  // User started an app from a launcher search result.
  APP_STARTED_FROM_LAUNCHER_SEARCH = 3,

  // User started an app from a a context menu click on a search result.
  APP_STARTED_FROM_LAUNCHER_SEARCH_CONTEXT_MENU = 4,

  // User started a suggested app in the launcher.
  APP_STARTED_FROM_LAUNCHER_SUGGESTED_APP = 5,

  // User started a suggested app using the context menu in the launcher.
  APP_STARTED_FROM_LAUNCHER_SUGGESTED_APP_CONTEXT_MENU = 6,

  // User started an app from the shelf.
  APP_STARTED_FROM_SHELF = 7,

  // User started an app from the shelf using the context menu.
  // TODO(crbug.com/862901): Record this separately from APP_STARTED_FROM_SHELF
  APP_STARTED_FROM_SHELF_CONTEXT_MENU = 8,

  // User started an app from settings.
  APP_STARTED_FROM_SETTINGS = 9,

  // User interacted with an ARC++ notification. Dismissal of notifications such
  // as closing and swiping out are not being considered.
  NOTIFICATION_INTERACTION = 10,

  // User interacted with the content window.
  APP_CONTENT_WINDOW_INTERACTION = 11,

  // User started an app from chrome.arcAppsPrivate.launchApp.
  APP_STARTED_FROM_EXTENSION_API = 12,

  // User started note-taking app from stylus tools.
  APP_STARTED_FROM_STYLUS_TOOLS = 13,

  // User started an app by opening files in the file manager.
  APP_STARTED_FROM_FILE_MANAGER = 14,

  // User started an app by left-clicking on links in the browser.
  APP_STARTED_FROM_LINK = 15,

  // User started an app from context menu by right-clicking on links in the
  // browser.
  APP_STARTED_FROM_LINK_CONTEXT_MENU = 16,

  // User started an app from Smart Text Selection context menu.
  APP_STARTED_FROM_SMART_TEXT_SELECTION_CONTEXT_MENU = 17,

  // User started an app from the Kiosk Next Home app.
  APP_STARTED_FROM_KIOSK_NEXT_HOME = 18,

  // User interacted with an app using a gamepad.
  GAMEPAD_INTERACTION = 19,

  // User started an app from entering URL in the Omnibox in the browser.
  APP_STARTED_FROM_OMNIBOX = 20,

  // User started an app from Chrome OS sharesheet.
  APP_STARTED_FROM_SHARESHEET = 21,

  // User started an app from Chrome OS full restore.
  APP_STARTED_FROM_FULL_RESTORE = 22,

  // User started an app from another app.
  APP_STARTED_FROM_OTHER_APP = 23,

  // User started the app by interacting with the App Install Service installer.
  APP_STARTED_FROM_INSTALLER = 24,

  kMaxValue = APP_STARTED_FROM_INSTALLER,
};

// Enumerates relevant Mojo connections.
// These values are  persisted to logs, and should therefore never be renumbered
// nor reused. Should be synced with ArcMojoConnectionType in
// tools/metrics/histograms/enums.xml.
enum class MojoConnectionType {
  // Mojo connection to AppLauncher was lost.
  APP_LAUNCHER = 0,

  // Mojo connection to IntentHelper was lost.
  INTENT_HELPER = 1,

  kMaxValue = INTENT_HELPER,
};

}  // namespace arc

#endif  // ASH_COMPONENTS_ARC_METRICS_ARC_METRICS_CONSTANTS_H_