blob: ec95d7e2eee3a26956d704d10e94ff322df37cd5 [file] [log] [blame]
// Copyright 2013 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": "virtualKeyboardPrivate",
"compiler_options": {
"implemented_in": "extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.h"
},
"platforms": ["chromeos"],
"description": "none",
"types": [
{
"id": "VirtualKeyboardEventType",
"type": "string",
"description": "One of keyup or keydown.",
"enum": ["keyup", "keydown"]
},
{
"id": "VirtualKeyboardEvent",
"type": "object",
"properties": {
"type": {"$ref": "VirtualKeyboardEventType"},
"charValue": {"type": "integer", "description": "Unicode value of the key."},
"keyCode": {"type": "integer", "description": "Virtual key code, which is independent of the keyboard layout or modifier state."},
"keyName": {"type": "string", "description": "Name of the key, which is independent of modifier state."},
"modifiers": {"type": "integer", "optional": true, "description": "Flag for modifiers that are active. None = 0, Shift = 2, Control = 4, Alt = 8."}
}
},
{
"id": "KeyboardMode",
"type": "string",
"enum": [ "FULL_WIDTH", "FLOATING" ],
"description": "The value of the virtual keyboard mode to set to."
},
{
"id": "KeyboardState",
"type": "string",
"enum": [ "ENABLED", "DISABLED", "AUTO"],
"description": "The value of the virtual keyboard state to change to."
},
{
"id": "Bounds",
"type": "object",
"properties": {
"left": {"type": "integer", "description": "The position of the virtual keyboard window's left edge."},
"top": {"type": "integer", "description": "The position of the virtual keyboard window's top edge."},
"width": {"type": "integer", "description": "The width of the virtual keyboard window."},
"height": {"type": "integer", "description": "The height of the virtual keyboard window."}
}
},
{
"id": "KeyboardConfig",
"type": "object",
"properties": {
"layout": {
"type": "string",
"minLength": 1,
"description": "Virtual keyboard layout string."
},
"hotrodmode": {
"type": "boolean",
"description": "Virtual keyboard is in hotrod mode."
},
"a11ymode": {
"type": "boolean",
"description": "True if accessibility virtual keyboard is enabled."
},
"features": {
"type": "array",
"items": { "type": "string" },
"description": "List of experimental feature flags."
}
}
},
{
"id": "ContainerBehaviorOptions",
"type": "object",
"properties": {
"mode": {
"$ref": "KeyboardMode",
"name": "mode",
"description": "The value of the virtual keyboard mode to set to."
},
"bounds": {
"$ref": "Bounds",
"description": "The bounds of the virtual keyboard after changing mode",
"optional": true
}
}
}
],
"functions": [
{
"name": "insertText",
"type": "function",
"description": "Inserts text into the currently focused text field.",
"parameters": [
{ "name": "text",
"type": "string",
"description": "The text that will be inserted."
},
{ "type": "function",
"name": "callback",
"optional": true,
"description": "Called when the insertion is completed.",
"parameters": []
}
]
},
{
"name": "sendKeyEvent",
"type": "function",
"description": "Sends a fabricated key event to the focused input field.",
"parameters": [
{ "name": "keyEvent",
"$ref": "VirtualKeyboardEvent",
"description": ""
},
{ "name": "callback",
"type": "function",
"optional": true,
"description": "Called after processing the event.",
"parameters": []
}
]
},
{
"name": "hideKeyboard",
"type": "function",
"description": "Hides the virtual keyboard.",
"parameters": [
{ "type": "function",
"name": "callback",
"optional": true,
"description": "Called when the keyboard is hidden.",
"parameters": []
}
]
},
{
"name": "setHotrodKeyboard",
"type": "function",
"description": "Sets the state of the hotrod virtual keyboard. This API should only be used by hotrod.",
"parameters": [
{
"type": "boolean",
"name": "enable"
}
]
},
{
"name": "lockKeyboard",
"type": "function",
"description": "Sets the lock state of the virtual keyboard. A locked keyboard remains visible even after a text area loses input focus.",
"parameters": [
{
"type": "boolean",
"name": "lock"
}
]
},
{
"name": "keyboardLoaded",
"type": "function",
"description": "Inform the system that the keyboard has loaded.",
"parameters": [
{ "type": "function",
"name": "callback",
"optional": true,
"description": "Called when load acknowledgement is complete.",
"parameters": []
}
]
},
{
"name": "getKeyboardConfig",
"type": "function",
"description": "Gets the virtual keyboard configuration.",
"parameters": [
{
"type": "function",
"name": "callback",
"description": "Called when querying virtual keyboard configuration is complete.",
"parameters": [
{
"$ref": "KeyboardConfig",
"name": "config"
}
]
}
]
},
{
"name": "openSettings",
"type": "function",
"description": "Opens chrome://settings/languages page.",
"parameters": [
]
},
{
"name": "setContainerBehavior",
"type": "function",
"description": "Sets the virtual keyboard container behavior",
"parameters": [
{
"$ref": "ContainerBehaviorOptions",
"name": "options",
"description": "Optional parameters for new container behavior."
},
{
"type": "function",
"name": "callback",
"optional": true,
"description": "Called when container mode is ready to change, or if the operation failed.",
"parameters": [
{
"name": "success",
"type": "boolean",
"description": "Whether the container mode changed successfully"
}
]
}
]
},
{
"name": "setDraggableArea",
"type": "function",
"description": "Sets the virtual keyboard draggable area bounds.",
"parameters": [
{
"$ref": "Bounds",
"name": "bounds",
"description": "The value of draggable rect area of floating keyboard."
}
]
},
{
"name": "setKeyboardState",
"type": "function",
"description": "Requests the virtual keyboard to change state.",
"parameters": [
{
"$ref": "KeyboardState",
"name": "state",
"description": "The value of the virtual keyboard state to change to."
}
]
},
{
"name": "setOccludedBounds",
"type": "function",
"description": "Sets the areas on the screen that are blocked by the virtual keyboard.",
"parameters": [
{
"name": "boundsList",
"type": "array",
"description": "List of rectangles representing regions occluded by the keyboard.",
"items": { "$ref": "Bounds" }
}
]
},
{
"name": "setHitTestBounds",
"type": "function",
"description": "Sets the areas on the keyboard window where events are handled. Any event outside of these areas are passed on to the window behind it.",
"parameters": [
{
"name": "boundsList",
"type": "array",
"description": "List of rectangles representing regions where events targeting the keyboard should be handled.",
"items": { "$ref": "Bounds" }
}
]
},
{
"name": "setAreaToRemainOnScreen",
"type": "function",
"description": "Sets the area of the keyboard window that should not move off screen. Any area outside of this can be moved off the user's screen.",
"parameters": [
{
"name": "bounds",
"description": "The bounds of the area inside the keyboard window, relative to the window origin, that should not be moved off screen. Any area outside of this bounds can be moved off screen.",
"$ref": "Bounds"
}
]
}
],
"events": [
{
"name": "onBoundsChanged",
"type": "function",
"description": "This event is sent when virtual keyboard bounds changed and overscroll/resize is enabled.",
"parameters": [
{
"name": "bounds",
"description": "The virtual keyboard bounds",
"$ref": "Bounds"
}
]
},
{
"name": "onKeyboardClosed",
"type": "function",
"description": "Fired when the virtual keyboard window has been closed. For example, this can happen when turning off on-screen keyboard or exiting tablet mode."
},
{
"name": "onKeyboardConfigChanged",
"type": "function",
"description": "Fired when a configuration for virtual keyboard IME has changed, e.g. auto complete disabled.",
"parameters": [
{
"name": "config",
"description": "The virtual keyboard config",
"$ref": "KeyboardConfig"
}
]
}
]
}
]