Upstream version 11.39.266.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                   "experimental": {
144                     "type": "boolean",
145                     "description": "True if experimental features are enabled."
146                   }
147                 }
148               }
149             ]
150           }
151         ]
152       },
153       {
154         "name": "openSettings",
155         "type": "function",
156         "description": "Opens chrome://settings/languages page.",
157         "parameters": [
158         ]
159       }
160     ],
161     "events": [
162       {
163         "name": "onTextInputBoxFocused",
164         "type": "function",
165         "description": "This event is sent when focus enters a text input box.",
166         "parameters": [
167           {
168             "type": "object",
169             "name": "context",
170             "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.",
171             "properties": {
172               "type": {
173                 "type": "string",
174                 "description": "The value of type attribute of the focused text input box.",
175                 "enum": ["text", "number", "password", "date", "url", "tel", "email"]
176               }
177             }
178           }
179         ]
180       }
181     ]
182   }
183 ]