| // Copyright 2018 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. |
| |
| module ax.mojom; |
| |
| import "mojo/public/mojom/base/string16.mojom"; |
| import "ui/gfx/geometry/mojo/geometry.mojom"; |
| import "ui/gfx/range/mojo/range.mojom"; |
| import "url/mojom/url.mojom"; |
| |
| // Tree structure for assistant. The tree is represented as a flat array of |
| // nodes, each containing a children_indices vector that points to its child |
| // nodes. The purpose is to work around max depth restriction of recursive |
| // data structure in mojo. |
| struct AssistantTree { |
| array<AssistantNode> nodes; |
| }; |
| |
| // Represents view structure to be passed to assistant. The view structure is |
| // synthesized from the AXNode. |
| struct AssistantNode { |
| array<int32> children_indices; |
| |
| // Geometry of the view in pixels |
| gfx.mojom.Rect rect; |
| |
| // Text of the view. |
| mojo_base.mojom.String16 text; |
| |
| // Text properties |
| float text_size; |
| uint32 color; |
| uint32 bgcolor; |
| bool bold; |
| bool italic; |
| bool underline; |
| bool line_through; |
| |
| // Selected portion of the text. |
| gfx.mojom.Range? selection; |
| |
| // Fake Android view class name of the element. Each node is assigned |
| // a closest approximation of Android's views to keep the server happy. |
| string class_name; |
| |
| // Accessibility functionality of the node inferred from DOM or based on HTML |
| // role attribute. |
| string? role; |
| }; |
| |
| // Additional information to current context. |
| struct AssistantExtra { |
| url.mojom.Url url; |
| gfx.mojom.Rect bounds_pixel; |
| mojo_base.mojom.String16 title; |
| }; |