| // 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 { |
| // 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. |
| [nocompile] dictionary AXEventParams { |
| // The tree id of the web contents that this update is for. |
| long treeID; |
| |
| // ID of the node that the event applies to. |
| long targetID; |
| |
| // The type of event that this update represents. |
| DOMString eventType; |
| }; |
| |
| // All possible actions that can be performed on automation nodes. |
| enum ActionType { |
| focus, |
| doDefault, |
| makeVisible, |
| setSelection, |
| showContextMenu |
| }; |
| |
| // Arguments required for all actions supplied to performAction. |
| dictionary PerformActionRequiredParams { |
| long treeID; |
| long automationNodeID; |
| ActionType actionType; |
| }; |
| |
| // Arguments for the setSelection action supplied to performAction. |
| dictionary SetSelectionParams { |
| // Reuses ActionRequiredParams automationNodeID to mean anchor node id, |
| // and treeID to apply to both anchor and focus node ids. |
| long focusNodeID; |
| long anchorOffset; |
| long focusOffset; |
| }; |
| |
| // Arguments for the querySelector function. |
| dictionary QuerySelectorRequiredParams { |
| long treeID; |
| long automationNodeID; |
| DOMString selector; |
| }; |
| |
| // Arguments for the enableTab function. |
| dictionary EnableTabParams { |
| long routingID; |
| long? tabID; |
| }; |
| |
| // Returns the accessibility tree id of the web contents who's accessibility |
| // was enabled using enableTab(). |
| callback EnableTabCallback = void(long tree_id); |
| |
| // Callback called when enableDesktop() returns. |
| callback EnableDesktopCallback = void(); |
| |
| // Callback called when querySelector() returns. |
| callback QuerySelectorCallback = void(long resultAutomationNodeID); |
| |
| interface Functions { |
| // Enable automation of the tab with the given id, or the active tab if no |
| // tab id is given, and retrieves accessibility tree id for use in |
| // future updates. |
| static void enableTab(EnableTabParams args, |
| EnableTabCallback callback); |
| |
| // Enable automation of the frame with the given tree id. |
| static void enableFrame(long tree_id); |
| |
| // Enables desktop automation. |
| static void enableDesktop(long routingID, |
| EnableDesktopCallback callback); |
| |
| // Performs an action on an automation node. |
| static void performAction(PerformActionRequiredParams args, |
| object opt_args); |
| |
| // Performs a query selector query. |
| static void querySelector(QuerySelectorRequiredParams args, |
| QuerySelectorCallback callback); |
| }; |
| |
| interface Events { |
| // Fired when an accessibility event occurs |
| static void onAccessibilityEvent(AXEventParams update); |
| |
| static void onAccessibilityTreeDestroyed(long treeID); |
| |
| static void onTreeChange(long observerID, |
| long treeID, |
| long nodeID, |
| DOMString changeType); |
| |
| static void onChildTreeID(long treeID, long nodeID); |
| |
| static void onNodesRemoved(long treeID, long[] nodeIDs); |
| }; |
| }; |