Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / api / virtual_keyboard_private.json
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 [
6   {
7     "namespace": "virtualKeyboardPrivate",
8     "compiler_options": {
9       "implemented_in": "chrome/browser/extensions/api/input/input.h"
10     },
11     "platforms": ["chromeos"],
12     "description": "none",
13     "types": [
14       {
15         "id": "VirtualKeyboardEvent",
16         "type": "object",
17         "properties": {
18           "type": {"type": "string", "description": "One of keyup or keydown.", "enum": ["keyup", "keydown"]},
19           "charValue": {"type": "integer", "description": "Unicode value of the key."},
20           "keyCode": {"type": "integer", "description": "Virtual key code, which is independent of the keyboard layout or modifier state."},
21           "keyName": {"type": "string", "description": "Name of the key, which is independent of modifier state."},
22           "modifiers": {"type": "integer", "optional": true, "description": "Flag for modifiers that are active. None = 0, Shift = 2, Control = 4, Alt = 8."}
23         }
24       }
25     ],
26     "functions": [
27       {
28         "name": "insertText",
29         "type": "function",
30         "description": "Inserts text into the currently focused text field.",
31         "parameters": [
32           { "name": "text",
33             "type": "string",
34             "description": "The text that will be inserted."
35           },
36           { "type": "function",
37             "name": "callback",
38             "optional": true,
39             "description": "Called when the insertion is completed.",
40             "parameters": []
41           }
42         ]
43       },
44       {
45         "name": "moveCursor",
46         "type": "function",
47         "description": "Move cursor on the current focused textfield by swipe.",
48         "parameters": [
49           { "name": "swipe_direction",
50             "type": "integer",
51             "discription": "The direction of the cursor movement."
52           },
53           { "name": "modifier_flags",
54             "type": "integer",
55             "description": "Bitmask representing the state of the system modifier keys."
56           },
57           { "type": "function",
58             "name": "callback",
59             "optional": true,
60             "decription": "called when the swipe movement is completed.",
61             "parameters": []
62           }
63         ]
64       },
65       {
66         "name": "sendKeyEvent",
67         "type": "function",
68         "description": "Sends a fabricated key event to the focused input field.",
69         "parameters": [
70           { "name": "keyEvent",
71             "$ref": "VirtualKeyboardEvent",
72             "description": ""
73           },
74           { "name": "callback",
75             "type": "function",
76             "optional": true,
77             "description": "Called after processing the event.",
78             "parameters": []
79           }
80         ]
81       },
82       {
83         "name": "hideKeyboard",
84         "type": "function",
85         "description": "Hides the virtual keyboard.",
86         "parameters": [
87           { "type": "function",
88             "name": "callback",
89             "optional": true,
90             "description": "Called when the keyboard is hidden.",
91             "parameters": []
92           }
93         ]
94       },
95       {
96         "name": "lockKeyboard",
97         "type": "function",
98         "description": "Sets the lock state of the virtual keyboard. A locked keyboard remains visible even after a text area loses input focus.",
99         "parameters": [
100           {
101             "type": "boolean",
102             "name": "lock"
103           }
104         ]
105       },
106       {
107         "name": "keyboardLoaded",
108         "type": "function",
109         "description": "Inform the system that the keyboard has loaded.",
110         "parameters": [
111           { "type": "function",
112             "name": "callback",
113             "optional": true,
114             "description": "Called when load acknowledgement is complete.",
115             "parameters": []
116           }
117         ]
118       },
119       {
120         "name": "getKeyboardConfig",
121         "type": "function",
122         "description": "Gets the virtual keyboard configuration.",
123         "parameters": [
124           {
125             "type": "function",
126             "name": "callback",
127             "optional": true,
128             "description": "Called when querying virtual keyboard configuration is complete.",
129             "parameters": [
130               {
131                 "type": "object",
132                 "name": "config",
133                 "properties": {
134                   "layout": {
135                     "type": "string",
136                     "minLength": 1,
137                     "description": "Virtual keyboard layout string."
138                   },
139                   "a11ymode": {
140                     "type": "boolean",
141                     "description": "True if accessbility virtual keyboard is enabled."
142                   }
143                 }
144               }
145             ]
146           }
147         ]
148       }
149     ],
150     "events": [
151       {
152         "name": "onTextInputBoxFocused",
153         "type": "function",
154         "description": "This event is sent when focus enters a text input box.",
155         "parameters": [
156           {
157             "type": "object",
158             "name": "context",
159             "description": "Describes the text input box that has acquired focus. Note only the type of text input box is passed. This API is intended to be used by non-ime virtual keyboard only. Normal ime virtual keyboard should use chrome.input.ime.onFocus to get the more detailed InputContext.",
160             "properties": {
161               "type": {
162                 "type": "string",
163                 "description": "The value of type attribute of the focused text input box.",
164                 "enum": ["text", "number", "password", "date", "url", "tel", "email"]
165               }
166             }
167           }
168         ]
169       }
170     ]
171   }
172 ]