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

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

option java_outer_classname = "ExtensionInstallProtos";
option java_package = "org.chromium.components.metrics";

package metrics;

// Stores information about an extension installed on a user's machine.
// Next tag: 17.
message ExtensionInstallProto {
  // The type of extension item this is.
  enum Type {
    UNKNOWN_TYPE = 0;            // Unknown (hopefully never used)
    EXTENSION = 1;               // A browser extension
    THEME = 2;                   // A browser theme
    USER_SCRIPT = 3;             // An extension converted from a user script
    HOSTED_APP = 4;              // A hosted app
    LEGACY_PACKAGED_APP = 5;     // A (deprecated) v1 packaged app
    PLATFORM_APP = 6;            // A platform app
    SHARED_MODULE = 7;           // A shared module
    LOGIN_SCREEN_EXTENSION = 8;  // An extension running on the login screen
  }
  optional Type type = 1;

  // The source of the extension.
  enum InstallLocation {
    UNKNOWN_LOCATION = 0;  // Unknown (hopefully never used)
    INTERNAL = 1;  // A crx file from the internal Extensions directory; most
                   // webstore-installed extensions fall into this category.
    EXTERNAL_PREF = 2;  // A crx file from an external directory (via prefs).
    EXTERNAL_REGISTRY = 3;  // A crx file from an external directory (via the
                            // Windows registry)
    UNPACKED = 4;   // An unpacked extension loaded from chrome://extensions.
    COMPONENT = 5;  // An internal component extension.
    EXTERNAL_PREF_DOWNLOAD = 6;    // A crx file from an external directory (via
                                   // prefs), downloaded from an update URL.
    EXTERNAL_POLICY_DOWNLOAD = 7;  // A crx file from an external directory (via
                                   // admin policies), downloaded from an update
                                   // URL.
    COMMAND_LINE = 8;  // Loaded from the commandline (e.g. --load-extension).
    EXTERNAL_POLICY = 9;  // A crx file from an external directory (via admin
                          // policies), cached locally and installed from the
                          // cache.
    EXTERNAL_COMPONENT = 10;  // A component extension that was downloaded
                              // externally via an update url.
  }
  optional InstallLocation install_location = 2;

  // The manifest version in the extension. Note: this refers to the
  // Chrome-required versioning of the manifest, not the extension version.
  // Currently, it is always 1 or 2.
  optional int32 manifest_version = 3;

  // The associated UI action in the extension. Each extension can have at most
  // one type of action.
  enum ActionType {
    NO_ACTION = 0;
    BROWSER_ACTION = 1;
    PAGE_ACTION = 2;
    SYSTEM_INDICATOR = 3;
  }
  optional ActionType action_type = 4;

  // If the extension has been granted file access.
  optional bool has_file_access = 5;

  // If the extension has been granted permission to run in incognito contexts.
  optional bool has_incognito_access = 6;

  // If the extension originated from the Chrome Web Store according to the
  // prefs.
  // This differs from install_location, which specifies from where the location
  // on the user’s machine from where the install originated, but not whether
  // the extension is hosted in the store. For instance, sideloaded extensions
  // that are specified via ID in the registry are downloaded from the store.
  optional bool is_from_store = 7;

  // If the extension automatically updates from the Chrome Web Store.
  optional bool updates_from_store = 8;

  // If the extension is a bookmark app that was generated from a web page. This
  // is distinct from install_location above, which specifies from where on the
  // user’s machine the install originated.
  optional bool is_from_bookmark = 9;

  // If the extension was created from a user script. This is distinct from
  // install_location above, which specifies from where on the user’s machine
  // the install originated.
  optional bool is_converted_from_user_script = 10;

  // If the extension was installed by default when the profile was created.
  // These extensions are specified by Chrome.
  optional bool is_default_installed = 11;

  // If the extension was installed by an OEM. This differs from
  // "is_default_installed", since these extensions are specified by the OEM
  // rather than by Chrome. These are specified in a file that is created as
  // part of the creation of the Chrome image, and can be specific to different
  // OEMs.
  optional bool is_oem_installed = 12;

  // The type of background page this extension has. Each extension can have at
  // most one type of background presence.
  enum BackgroundScriptType {
    NO_BACKGROUND_SCRIPT = 0;        // The extension has no background page.
    PERSISTENT_BACKGROUND_PAGE = 1;  // The extension has a persistent
                                     // background page.
    EVENT_PAGE = 2;                  // The extension has a (lazy) event page.
  }
  optional BackgroundScriptType background_script_type = 13;

  // The reasons an extension may be disabled.
  enum DisableReason {
    USER_ACTION = 0;              // The user disabled the extension.
    PERMISSIONS_INCREASE = 1;     // The extension increased permissions.
    RELOAD = 2;                   // The extension is reloading.
    UNSUPPORTED_REQUIREMENT = 3;  // The extension has requirements that weren't
                                  // met (e.g. graphics capabilities).
    SIDELOAD_WIPEOUT = 4;         // The extension was disabled in the sideload
                                  // wipeout.
    UNKNOWN_FROM_SYNC = 5;        // The extension was disabled by sync.
    NOT_VERIFIED = 6;             // The extension couldn't be verified.
    GREYLIST = 7;                 // The extension was found on the greylist.
    CORRUPTED = 8;  // The extension install was corrupted according to content
                    // verification.
    REMOTE_INSTALL = 9;  // The extension was installed remotely and hasn't been
                         // enabled.
    EXTERNAL_EXTENSION = 10;  // The extension was sideloaded and hasn't been
                              // enabled.
    UPDATE_REQUIRED_BY_POLICY = 11;    // Policy requires an unmet minimum
                                       // version.
    CUSTODIAN_APPROVAL_REQUIRED = 12;  // The extension is pending custodian
                                       // approval for a supervised user.
    BLOCKED_BY_POLICY = 13;  // The extension is disabled because it's blocked
                             // by enterprise policy.
  }
  // Any DisableReasons in effect for the extension. An empty list means the
  // extension is not disabled. Note that an extension that is not disabled may
  // nonetheless not be running, e.g., terminated because the extension process
  // was killed.
  repeated DisableReason disable_reasons = 14;

  // The state of the extension in the safe browsing blacklist.
  // The numeric values here match the values of the respective enum in
  // ClientCRXListInfoResponse proto.
  enum BlacklistState {
    // The extension is not in the blacklist.
    NOT_BLACKLISTED = 0;
    // The extension is malware.
    BLACKLISTED_MALWARE = 1;
    // The extension has a serious security vulnerability.
    BLACKLISTED_SECURITY_VULNERABILITY = 2;
    // The extension violated CWS policy.
    BLACKLISTED_CWS_POLICY_VIOLATION = 3;
    // The extension is considered potentially unwanted.
    BLACKLISTED_POTENTIALLY_UNWANTED = 4;
    // Used when we couldn't connect to server, e.g. when offline.
    BLACKLISTED_UNKNOWN = 5;
  }
  optional BlacklistState blacklist_state = 15;

  // Whether the extension was installed in the current sampling period. This
  // is useful if trying to use extension installation in conjunction with other
  // metrics (e.g. page load). Since some of the metrics from this period will
  // have the extension installed and others won't, these records can be
  // discarded for that analysis.
  optional bool installed_in_this_sample_period = 16;
}
