blob: 1194ab63daa5c047efeb165bccb2934b60cecb57 [file] [log] [blame]
// Copyright (c) 2012 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.
[
{
"namespace": "webstore",
"description": "Use the <code>chrome.webstore</code> API to initiate app and extension installations \"inline\" from your site.",
"types": [
{
"id": "InstallStage",
"type": "string",
"enum": ["installing", "downloading"],
"description": "Enum used to indicate the stage of the installation process. 'downloading' indicates that the necessary files are being downloaded, and 'installing' indicates that the files are downloaded and are being actively installed.",
"deprecated": "Inline installation is deprecated."
},
{
"id": "ErrorCode",
"type": "string",
"description": "Enum of the possible install results, including error codes sent back in the event that an inline installation has failed.",
"enum": [
// Keep this list of enums in sync with
// chrome/common/extensions/webstore_install_result.h and
// chrome/common/extensions/api/webstore/webstore_api_constants.cc!
{
"description": "An uncommon, unrecognized, or unexpected error. In some cases, the readable error string can provide more information.",
"name": "otherError"
},
{
"description": "The operation was aborted as the requestor is no longer alive.",
"name": "aborted"
},
{
"description": "An installation of the same extension is in progress.",
"name": "installInProgress"
},
{
"description": "The installation is not permitted.",
"name": "notPermitted"
},
{
"description": "Invalid Chrome Web Store item ID.",
"name": "invalidId"
},
{
"description": "Failed to retrieve extension metadata from the Web Store.",
"name": "webstoreRequestError"
},
{
"description": "The extension metadata retrieved from the Web Store was invalid.",
"name": "invalidWebstoreResponse"
},
{
"description": "An error occurred while parsing the extension manifest retrieved from the Web Store.",
"name": "invalidManifest"
},
{
"description": "Failed to retrieve the extension's icon from the Web Store, or the icon was invalid.",
"name": "iconError"
},
{
"description": "The user canceled the operation.",
"name": "userCanceled"
},
{
"description": "The extension is blacklisted.",
"name": "blacklisted"
},
{
"description": "Unsatisfied dependencies, such as shared modules.",
"name": "missingDependencies"
},
{
"description": "Unsatisfied requirements, such as webgl.",
"name": "requirementViolations"
},
{
"description": "The extension is blocked by management policies.",
"name": "blockedByPolicy"
},
{
"description": "The launch feature is not available.",
"name": "launchFeatureDisabled"
},
{
"description": "The launch feature is not supported for the extension type.",
"name": "launchUnsupportedExtensionType"
},
{
"description": "A launch of the same extension is in progress.",
"name": "launchInProgress"
}
],
"deprecated": "Inline installation is deprecated."
}
], // types
"events": [
{
"name": "onInstallStageChanged",
"description": "Fired when an inline installation enters a new InstallStage. In order to receive notifications about this event, listeners must be registered before the inline installation begins.",
"type": "function",
"parameters": [
{
"name": "stage",
"$ref": "InstallStage",
"description": "The InstallStage that just began."
}
],
"deprecated": "Inline installation is deprecated."
}, // onInstallStageChanged
{
"name": "onDownloadProgress",
"description": "Fired periodically with the download progress of an inline install. In order to receive notifications about this event, listeners must be registered before the inline installation begins.",
"type": "function",
"parameters": [
{
"name": "percentDownloaded",
"type": "number",
"description": "The progress of the download, between 0 and 1. 0 indicates no progress; 1.0 indicates complete."
}
],
"deprecated": "Inline installation is deprecated."
} // onDownloadProgress
], // events
"functions": [
{
"name": "install",
"allowAmbiguousOptionalArguments": true,
"parameters": [
{
"name": "url",
"type": "string",
"optional": true,
"description": "If you have more than one <code>&lt;link&gt;</code> tag on your page with the <code>chrome-webstore-item</code> relation, you can choose which item you'd like to install by passing in its URL here. If it is omitted, then the first (or only) link will be used. An exception will be thrown if the passed in URL does not exist on the page."
},
{
"name": "successCallback",
"type": "function",
"optional": true,
"parameters": [],
"description": "This function is invoked when inline installation successfully completes (after the dialog is shown and the user agrees to add the item to Chrome). You may wish to use this to hide the user interface element that prompted the user to install the app or extension."
},
{
"name": "failureCallback",
"type": "function",
"optional": true,
"parameters": [
{
"name": "error",
"type": "string",
"description": "The failure detail. You may wish to inspect or log this for debugging purposes, but you should not rely on specific strings being passed back."
},
{
"name": "errorCode",
"$ref": "ErrorCode",
"optional": "true",
"description": "The error code from the stable set of possible errors."
}
],
"description": "This function is invoked when inline installation does not successfully complete. Possible reasons for this include the user canceling the dialog, the linked item not being found in the store, or the install being initiated from a non-verified site."
}
],
"deprecated": "Inline installation is deprecated."
} // install
] // functions
} // webstore
]