unplugged-system/external/cronet/third_party/metrics_proto/extension_install.proto

185 lines
8.6 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2017 The Chromium Authors
// 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_package = "org.chromium.components.metrics";
option java_outer_classname = "ExtensionInstallProtos";
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 users 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
// users 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 users 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.
SERVICE_WORKER = 3; // The extension has a service worker based
// background context.
}
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.
// The extension is being reinstalled.
REINSTALL = 16;
// The extension has been disabled because it's not allowlisted and the Safe
// Browsing allowlist is enforced in the user profile.
NOT_ALLOWLISTED = 17;
// The extension is disabled because it is not in 1st party ash keep list
// and the 1st party ash extension keep list is enforced in ash.
NOT_ASH_KEEPLISTED = 18;
}
// 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;
}