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.
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
{
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
{
26 object? boolAttributes
;
27 object? floatAttributes
;
28 object? htmlAttributes
;
29 object? intAttributes
;
30 object? intlistAttributes
;
31 object? stringAttributes
;
35 dictionary AXTreeUpdate
{
36 // ID of the node, if any, which should be invalidated before the new data
40 // A vector of nodes to update according to the rules described in
41 // ui/accessibility/ax_tree_update.h.
45 // Data for an accessibility event and/or an atomic change to an accessibility
46 // tree. See ui/accessibility/ax_tree_update.h for an extended explanation of
47 // the tree update format.
48 dictionary AXEventParams
{
49 // The tree id of the web contents that this update is for.
52 // ID of the node that the event applies to.
55 // The type of event that this update represents.
58 // Serialized changes to the tree structure and node data that should be
59 // applied before processing the event.
63 // All possible actions that can be performed on automation nodes.
71 // Arguments required for all actions supplied to performAction.
72 dictionary PerformActionRequiredParams
{
74 long automationNodeID
;
75 ActionType actionType
;
78 // Arguments for the set_selection action supplied to performAction.
79 dictionary SetSelectionParams
{
84 // Arguments for the querySelector function.
85 dictionary QuerySelectorRequiredParams
{
87 long automationNodeID
;
91 // Returns the accessibility tree id of the web contents who's accessibility
92 // was enabled using enableTab().
93 callback EnableTabCallback
= void(long tree_id
);
95 // Callback called when enableDesktop() returns.
96 callback EnableDesktopCallback
= void();
98 // Callback called when querySelector() returns.
99 callback QuerySelectorCallback
= void(long resultAutomationNodeID
);
101 interface Functions
{
102 // Enable automation of the tab with the given id, or the active tab if no
103 // tab id is given, and retrieves accessibility tree id for use in
105 static
void enableTab
(optional long tabId
, EnableTabCallback
callback);
107 // Enable automation of the frame with the given tree id.
108 static
void enableFrame
(long tree_id
);
110 // Enables desktop automation.
111 static
void enableDesktop
(EnableDesktopCallback
callback);
113 // Performs an action on an automation node.
114 static
void performAction
(PerformActionRequiredParams args
,
117 // Performs a query selector query.
118 static
void querySelector
(QuerySelectorRequiredParams args
,
119 QuerySelectorCallback
callback);
123 // Fired when an accessibility event occurs
124 static
void onAccessibilityEvent
(AXEventParams update
);
126 static
void onAccessibilityTreeDestroyed
(long treeID
);