blob: 438540b036c3b53fd6e88b648c7268ae1fd91833 [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" }
}
]
}
],
"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"
}
]
}
]
}
]