// 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": "manifest", "types": [ { "id": "KeyName", "type": "string", "format": "manifestShortcutKey" }, { "$extend": "WebExtensionManifest", "properties": { "commands": { "type": "object", "optional": true, "additionalProperties": { "type": "object", "additionalProperties": { "$ref": "UnrecognizedProperty" }, "properties": { "suggested_key": { "type": "object", "optional": true, "properties": { "default": { "$ref": "KeyName", "optional": true }, "mac": { "$ref": "KeyName", "optional": true }, "linux": { "$ref": "KeyName", "optional": true }, "windows": { "$ref": "KeyName", "optional": true }, "chromeos": { "type": "string", "optional": true }, "android": { "type": "string", "optional": true }, "ios": { "type": "string", "optional": true }, "additionalProperties": { "type": "string", "deprecated": "Unknown platform name", "optional": true } } }, "description": { "type": "string", "preprocess": "localize", "optional": true } } } } } } ] }, { "namespace": "commands", "description": "Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the xtension.", "permissions": ["manifest:commands"], "types": [ { "id": "Command", "type": "object", "properties": { "name": { "type": "string", "optional": true, "description": "The name of the Extension Command" }, "description": { "type": "string", "optional": true, "description": "The Extension Command description" }, "shortcut": { "type": "string", "optional": true, "description": "The shortcut active for this command, or blank if not active." } } } ], "events": [ { "name": "onCommand", "description": "Fired when a registered command is activated using a keyboard shortcut.", "type": "function", "parameters": [ { "name": "command", "type": "string" } ] }, { "name": "onChanged", "description": "Fired when a registered command's shortcut is changed.", "type": "function", "parameters": [ { "type": "object", "name": "changeInfo", "properties": { "name": { "type": "string", "description": "The name of the shortcut." }, "newShortcut": { "type": "string", "description": "The new shortcut active for this command, or blank if not active." }, "oldShortcut": { "type": "string", "description": "The old shortcut which is no longer active for this command, or blank if the shortcut was previously inactive." } } } ] } ], "functions": [ { "name": "update", "type": "function", "async": true, "description": "Update the details of an already defined command.", "parameters": [ { "type": "object", "name": "detail", "description": "The new description for the command.", "properties": { "name": { "type": "string", "description": "The name of the command." }, "description": { "type": "string", "optional": true, "description": "The new description for the command." }, "shortcut": { "type": "string", "format": "manifestShortcutKeyOrEmpty", "optional": true } } } ] }, { "name": "reset", "type": "function", "async": true, "description": "Reset a command's details to what is specified in the manifest.", "parameters": [ { "type": "string", "name": "name", "description": "The name of the command." } ] }, { "name": "getAll", "type": "function", "async": "callback", "description": "Returns all the registered extension commands for this extension and their shortcut (if active).", "parameters": [ { "type": "function", "name": "callback", "optional": true, "parameters": [ { "name": "commands", "type": "array", "items": { "$ref": "Command" } } ], "description": "Called to return the registered commands." } ] } ] } ]