Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / api / automation_internal.idl
1 // Copyright 2014 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 // This is the implementation layer of the chrome.automation API, and is
6 // essentially a translation of the internal accessibility tree update system
7 // into an extension API.
8 namespace automationInternal {
9   dictionary Rect {
10     long left;
11     long top;
12     long width;
13     long height;
14   };
15
16   // A compact representation of the accessibility information for a
17   // single web object, in a form that can be serialized and sent from
18   // one process to another.
19   // See ui/accessibility/ax_node_data.h
20   dictionary AXNodeData {
21     long id;
22     DOMString role;
23     object state;
24     Rect location;
25
26     object? boolAttributes;
27     object? floatAttributes;
28     object? htmlAttributes;
29     object? intAttributes;
30     object? intlistAttributes;
31     object? stringAttributes;
32     long[] childIds;
33   };
34
35   // Data for an accessibility event and/or an atomic change to an accessibility
36   // tree. See ui/accessibility/ax_tree_update.h for an extended explanation of
37   // the tree update format.
38   dictionary AXEventParams {
39     // The process id of the renderer host.
40     long processID;
41
42     // The routing id of the web contents that this update is for.
43     long routingID;
44
45     // ID of the node that the event applies to.
46     long targetID;
47
48     // The type of event that this update represents.
49     DOMString eventType;
50
51     // A vector of nodes to update according to the rules described in
52     // ui/ax_tree_update.h.
53     AXNodeData[] nodes;
54   };
55
56   // All possible actions that can be performed on automation nodes.
57   enum ActionType {
58     focus,
59     do_default,
60     make_visible,
61     set_selection
62   };
63
64   // Arguments required for all actions supplied to performAction.
65   dictionary PerformActionRequiredParams {
66     long processID;
67     long routingID;
68     long automationNodeID;
69     ActionType actionType;
70   };
71
72   // Arguments for the set_selection action supplied to performAction.
73   dictionary SetSelectionParams {
74     long startIndex;
75     long endIndex;
76   };
77
78   // Returns the process id and routing id of the tab whose accessibility was
79   // enabled using enable().
80   callback EnableCallback = void(long processID, long routingID);
81
82   interface Functions {
83     // Enable automation of the active tab and retrieves its routing id for use
84     // in future updates.
85     static void enableCurrentTab(EnableCallback callback);
86
87     // Enables desktop automation.
88     static void enableDesktop();
89
90     // Performs an action on an automation node.
91     static void performAction(PerformActionRequiredParams args,
92                               object opt_args);
93   };
94
95   interface Events {
96     // Fired when an accessibility event occurs
97     static void onAccessibilityEvent(AXEventParams update);
98   };
99 };