blob: c136b1283bbef2358a48f65c17d9cf52868f0cc5 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[
{
"namespace":"webstorePrivate",
"description": "none",
"types": [
{
"id": "Result",
"type": "string",
"enum": [{
"name": "",
"description": "Empty string, used to indicate success by beginInstallWithManifest3"
}, {
"name": "success",
"description": "Installation was successful"
}, {
"name": "user_gesture_required",
"description": "Function was called without a user gesture"
}, {
"name": "unknown_error",
"description": "An unknown error occured"
}, {
"name": "feature_disabled",
"description": "The requested feature is not available"
}, {
"name": "unsupported_extension_type",
"description": "The requested feature is not availabe for this type of extension"
}, {
"name": "missing_dependencies",
"description": "There were unsatisfied dependencies, such as shared modules"
}, {
"name": "install_error",
"description": "An error occured during installation"
}, {
"name": "user_cancelled",
"description": "The user canceled the operation"
}, {
"name": "invalid_id",
"description": "An invalid Chrome Web Store item ID was provided"
}, {
"name": "blacklisted",
"description": "The given extension is blacklisted"
}, {
"name": "blocked_by_policy",
"description": "The given extension is blocked by management policy"
}, {
"name": "install_in_progress",
"description": "An installation of the same extension is already in progress"
}, {
"name": "launch_in_progress",
"description": "A launch of the same extension is already in progress"
}, {
"name": "manifest_error",
"description": "Parsing of the extension manifest failed"
}, {
"name": "icon_error",
"description": "Failed to retrieve the extension's icon from the Web Store, or the icon was invalid"
}, {
"name": "invalid_icon_url",
"description": "An invalid icon URL was provided"
}, {
"name": "already_installed",
"description": "The extension is already installed"
}, {
"name": "blocked_for_child_account",
"description": "The user is signed in to a child account, and not allowed to perform the operation"
}],
"description": "Whether the API call succeeded, or the reason for failure."
},
{
"id": "WebGlStatus",
"type": "string",
"enum": ["webgl_allowed", "webgl_blocked"]
},
{
"id": "ExtensionInstallStatus",
"type": "string",
"enum" : [{
"name": "can_request",
"description": "The extension install request feature is enabled and the extension can be requested."
}, {
"name": "request_pending",
"description": "The extension install request has been sent and is waiting to be reviewed."
}, {
"name": "blocked_by_policy",
"description": "The extension cannot be installed due to enterprise policy."
}, {
"name": "installable",
"description": "The extension can be installed."
}, {
"name": "enabled",
"description": "The extension has been installed already and it's enabled."
}, {
"name": "disabled",
"description": "The extension has been installed already but it's disabled."
}, {
"name": "terminated",
"description": "The extension has been installed already but it's terminated."
}, {
"name": "blacklisted",
"description": "The extension has been blacklisted."
}, {
"name": "custodian_approval_required",
"description": "The extension cannot be enabled due to lack of custodian approval for child users."
}, {
"name": "force_installed",
"description": "The extension is force installed or recommended by policy."
}]
}
],
"functions": [
{
"name": "install",
"nocompile": true,
"description": "Installs the extension corresponding to the given id",
"parameters": [
{
"name": "expected_id",
"type": "string",
"description": "The id of the extension to install."
}
],
"returns_async": {
"name": "callback",
"optional": true,
"parameters": []
}
},
{
"name": "beginInstallWithManifest3",
"description": "Initiates the install process for the given extension.",
"parameters": [
{
"name": "details",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the extension to be installed.",
"minLength": 32,
"maxLength": 32
},
"manifest": {
"type": "string",
"description": "A string with the contents of the extension's manifest.json file. During the install process, the browser will check that the downloaded extension's manifest matches what was passed in here.",
"minLength": 1
},
"iconUrl": {
"type": "string",
"optional": true,
"desciption": "A URL for the image to display in the confirmation dialog"
},
"localizedName": {
"type": "string",
"optional": true,
"description": "A string to use instead of the raw value of the 'name' key from manifest.json."
},
"locale": {
"type": "string",
"optional": true,
"description": "The name of the locale used for generating localizedName. This should be the name of one of the directories in the _locales folder of the extension, or the default_locale setting from the manifest."
},
"appInstallBubble": {
"type": "boolean",
"optional": true,
"description": "A flag to change the UI we show when an app is installed - a value of true means to show a bubble pointing at the new tab button (instead of the default behavior of opening the new tab page and animating the app icon)."
},
"enableLauncher": {
"type": "boolean",
"optional": true,
"description": "A flag to cause the app launcher to be installed before installing the extension, if it isn't installed already."
},
"authuser": {
"type": "string",
"optional": true,
"description": "The authuser index to be included with CRX download requests in multi-login sessions."
},
"esbAllowlist": {
"type": "boolean",
"optional": true,
"description": "A flag to specify if the extension is included in the ESB allowlist."
}
},
"additionalProperties": { "type": "any" }
}
],
"returns_async": {
"name": "callback",
"description": "Called when the user has either accepted/rejected the dialog, or some error occurred (such as invalid manifest or icon image data).",
"optional": true,
"parameters": [
{
"name": "result",
"$ref": "Result",
"description": "A string result code, which will be empty upon success. The possible values in the case of errors include 'unknown_error', 'user_cancelled', 'manifest_error', 'icon_error', 'invalid_id', 'permission_denied', 'invalid_icon_url' and 'already_installed'."
}
]
}
},
{
"name": "completeInstall",
"description": "",
"parameters": [
{
"name": "expected_id",
"type": "string",
"description": "The id of the extension to be installed. This should match a previous call to beginInstallWithManifest3."
}
],
"returns_async": {
"name": "callback",
"optional": true,
"parameters": []
}
},
{
"name": "enableAppLauncher",
"description": "",
"parameters": [],
"returns_async": {
"name": "callback",
"optional": true,
"parameters": []
}
},
{
"name": "getBrowserLogin",
"description": "Returns the logged-in sync user login if there is one, or the empty string otherwise.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "info",
"type": "object",
"properties": {
"login": { "type": "string" }
}
}
]
}
},
{
"name": "getStoreLogin",
"description": "Returns the previous value set by setStoreLogin, or the empty string if there is none.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "login", "type": "string" }
]
}
},
{
"name": "setStoreLogin",
"description": "Sets a preference value with the store login.",
"parameters": [
{ "name": "login", "type": "string" }
],
"returns_async": {
"name": "callback",
"optional": true,
"parameters": []
}
},
{
"name": "getWebGLStatus",
"description": "Invokes a callback that returns whether WebGL is blacklisted or not.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "webgl_status",
"$ref": "WebGlStatus"
}
]
}
},
{
"name": "getIsLauncherEnabled",
"description": "Returns whether the apps launcher is enabled or not.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "is_enabled", "type": "boolean" }
]
}
},
{
"name": "isInIncognitoMode",
"description": "Returns whether the browser is in incognito mode or not.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "is_incognito", "type": "boolean" }
]
}
},
{
"name": "isPendingCustodianApproval",
"description": "Checks if an extension installed on a Supervised User profile is pending custodian approval.",
"parameters": [
{
"name": "id",
"type": "string",
"description": "The extension id of the extension to be checked."
}
],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "is_pending_approval", "type": "boolean" }
]
}
},
{
"name": "getReferrerChain",
"description": "Returns a base-64 encoded referrer chain leading to the webstore page. Should only be used for extension anti-abuse purposes.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "referrerChain", "type": "string" }
]
}
},
{
"name": "getExtensionStatus",
"description": "Returns the install status of the extension.",
"parameters": [
{
"name": "id",
"type": "string",
"description": "The id of the extension"
}, {
"name": "manifest",
"type": "string",
"optional": true,
"description": "The manifest of the extension"
}
],
"returns_async": {
"name": "callback",
"parameters": [
{ "name": "status", "$ref": "ExtensionInstallStatus" }
]
}
}
]
}
]