Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1030)

Side by Side Diff: chrome/common/extensions/api/automation.idl

Issue 655273005: Implement AutomationNode.querySelector(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Address review comments and flesh out error and edge case handling Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // The <code>chrome.automation</code> API allows developers to access the 5 // The <code>chrome.automation</code> API allows developers to access the
6 // automation (accessibility) tree for the browser. The tree resembles the DOM 6 // automation (accessibility) tree for the browser. The tree resembles the DOM
7 // tree, but only exposes the <em>semantic</em> structure of a page. It can be 7 // tree, but only exposes the <em>semantic</em> structure of a page. It can be
8 // used to programmatically interact with a page by examining names, roles, and 8 // used to programmatically interact with a page by examining names, roles, and
9 // states, listening for events, and performing actions on nodes. 9 // states, listening for events, and performing actions on nodes.
10 [nocompile] namespace automation { 10 [nocompile] namespace automation {
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 visited 213 visited
214 }; 214 };
215 215
216 dictionary Rect { 216 dictionary Rect {
217 long left; 217 long left;
218 long top; 218 long top;
219 long width; 219 long width;
220 long height; 220 long height;
221 }; 221 };
222 222
223 // The parameters for a <code>query</code>.
224 dictionary QueryInfo {
225 DOMString? querySelector;
226 };
227
228 // Called when the result for a <code>query</code> is available.
229 callback QueryCallback = void(AutomationNode node);
230
223 // An event in the Automation tree. 231 // An event in the Automation tree.
224 [nocompile, noinline_doc] dictionary AutomationEvent { 232 [nocompile, noinline_doc] dictionary AutomationEvent {
225 // The $(ref:automation.AutomationNode) to which the event was targeted. 233 // The $(ref:automation.AutomationNode) to which the event was targeted.
226 AutomationNode target; 234 AutomationNode target;
227 235
228 // The type of the event. 236 // The type of the event.
229 EventType type; 237 EventType type;
230 238
231 // Stops this event from further processing except for any remaining 239 // Stops this event from further processing except for any remaining
232 // listeners on $(ref:AutomationEvent.target). 240 // listeners on $(ref:AutomationEvent.target).
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 // Sets selection within a text field. 293 // Sets selection within a text field.
286 static void setSelection(long startIndex, long endIndex); 294 static void setSelection(long startIndex, long endIndex);
287 295
288 // Adds a listener for the given event type and event phase. 296 // Adds a listener for the given event type and event phase.
289 static void addEventListener( 297 static void addEventListener(
290 EventType eventType, AutomationListener listener, boolean capture); 298 EventType eventType, AutomationListener listener, boolean capture);
291 299
292 // Removes a listener for the given event type and event phase. 300 // Removes a listener for the given event type and event phase.
293 static void removeEventListener( 301 static void removeEventListener(
294 EventType eventType, AutomationListener listener, boolean capture); 302 EventType eventType, AutomationListener listener, boolean capture);
303
304 // Gets the first node in this node's subtree which matches the given CSS
305 // selector and is within the same DOM context.
306 //
307 // If this node doesn't correspond directly with an HTML node in the DOM,
308 // querySelector will be run on this node's nearest HTML node ancestor. Note
309 // that this may result in the query returning a node which is not an
310 // ancestor of this node.
dmazzoni 2014/10/30 23:32:42 nit: ancestor -> descendant
aboxhall 2014/10/31 20:32:22 Oops, done.
311 //
312 // If the selector matches a node which doesn't directly correspond to an
313 // automation node (for example an element within an ARIA widget, where the
dmazzoni 2014/10/30 23:32:42 Your example doesn't make sense, we don't remove n
aboxhall 2014/10/31 20:32:22 The are ignoredForAccessibility and don't end up i
314 // ARIA widget forms one node of the automation tree), this will return the
315 // nearest ancestor which does correspond to an automation node.
316 static void querySelector(DOMString selector, QueryCallback callback);
295 }; 317 };
296 318
297 // Called when the <code>AutomationRootNode</code> for the page is available. 319 // Called when the <code>AutomationRootNode</code> for the page is available.
298 callback RootCallback = void(AutomationRootNode rootNode); 320 callback RootCallback = void(AutomationRootNode rootNode);
299 321
300 // The root node of the automation tree for a single frame or desktop. 322 // The root node of the automation tree for a single frame or desktop.
301 // This may be: 323 // This may be:
302 // <ul> 324 // <ul>
303 // <li> The desktop 325 // <li> The desktop
304 // <li> The top frame of a page 326 // <li> The top frame of a page
(...skipping 25 matching lines...) Expand all
330 // tree with a placeholder root node; listen for the "loadComplete" event to 352 // tree with a placeholder root node; listen for the "loadComplete" event to
331 // get a notification that the tree has fully loaded (the previous root node 353 // get a notification that the tree has fully loaded (the previous root node
332 // reference will stop working at or before this point). 354 // reference will stop working at or before this point).
333 [nocompile] static void getTree(optional long tabId, RootCallback callback); 355 [nocompile] static void getTree(optional long tabId, RootCallback callback);
334 356
335 // Get the automation tree for the whole desktop which consists of all on 357 // Get the automation tree for the whole desktop which consists of all on
336 // screen views. Note this API is currently only supported on Chrome OS. 358 // screen views. Note this API is currently only supported on Chrome OS.
337 [nocompile] static void getDesktop(RootCallback callback); 359 [nocompile] static void getDesktop(RootCallback callback);
338 }; 360 };
339 }; 361 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698