| // Copyright 2014 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. |
| |
| // This is the implementation layer of the chrome.automation API, and is |
| // essentially a translation of the internal accessibility tree update system |
| // into an extension API. |
| namespace automationInternal { |
| dictionary Rect { |
| long left; |
| long top; |
| long width; |
| long height; |
| }; |
| |
| // A compact representation of the accessibility information for a |
| // single web object, in a form that can be serialized and sent from |
| // one process to another. |
| // See ui/accessibility/ax_node_data.h |
| dictionary AXNodeData { |
| long id; |
| DOMString role; |
| object state; |
| Rect location; |
| |
| object? boolAttributes; |
| object? floatAttributes; |
| object? htmlAttributes; |
| object? intAttributes; |
| object? intlistAttributes; |
| object? stringAttributes; |
| long[] childIds; |
| }; |
| |
| dictionary AXTreeUpdate { |
| // ID of the node, if any, which should be invalidated before the new data |
| // is applied. |
| long nodeIdToClear; |
| |
| // A vector of nodes to update according to the rules described in |
| // ui/accesibility/ax_tree_update.h. |
| AXNodeData[] nodes; |
| }; |
| |
| // Data for an accessibility event and/or an atomic change to an accessibility |
| // tree. See ui/accessibility/ax_tree_update.h for an extended explanation of |
| // the tree update format. |
| dictionary AXEventParams { |
| // The process id of the renderer host. |
| long processID; |
| |
| // The routing id of the web contents that this update is for. |
| long routingID; |
| |
| // ID of the node that the event applies to. |
| long targetID; |
| |
| // The type of event that this update represents. |
| DOMString eventType; |
| |
| // Serialized changes to the tree structure and node data that should be |
| // applied before processing the event. |
| AXTreeUpdate update; |
| }; |
| |
| // All possible actions that can be performed on automation nodes. |
| enum ActionType { |
| focus, |
| doDefault, |
| makeVisible, |
| setSelection |
| }; |
| |
| // Arguments required for all actions supplied to performAction. |
| dictionary PerformActionRequiredParams { |
| long processID; |
| long routingID; |
| long automationNodeID; |
| ActionType actionType; |
| }; |
| |
| // Arguments for the set_selection action supplied to performAction. |
| dictionary SetSelectionParams { |
| long startIndex; |
| long endIndex; |
| }; |
| |
| // Returns the process id and routing id of the tab whose accessibility was |
| // enabled using enable(). |
| callback EnableTabCallback = void(long processID, long routingID); |
| |
| // Callback called when enableDesktop() returns. |
| callback EnableDesktopCallback = void(); |
| |
| interface Functions { |
| // Enable automation of the tab with the given id, or the active tab if no |
| // tab id is given, and retrieves its process and routing ids for use in |
| // future updates. |
| static void enableTab(optional long tabId, EnableTabCallback callback); |
| |
| // Enables desktop automation. |
| static void enableDesktop(EnableDesktopCallback callback); |
| |
| // Performs an action on an automation node. |
| static void performAction(PerformActionRequiredParams args, |
| object opt_args); |
| }; |
| |
| interface Events { |
| // Fired when an accessibility event occurs |
| static void onAccessibilityEvent(AXEventParams update); |
| |
| static void onAccessibilityTreeDestroyed(long processID, long routingID); |
| }; |
| }; |