// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_ACCESSIBILITY_AX_TREE_H_ #define UI_ACCESSIBILITY_AX_TREE_H_ #include <stdint.h> #include <map> #include <memory> #include <optional> #include <set> #include <string> #include <unordered_map> #include <vector> #include "base/debug/crash_logging.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_functions.h" #include "base/observer_list.h" #include "ui/accessibility/ax_enums.mojom-forward.h" #include "ui/accessibility/ax_export.h" #include "ui/accessibility/ax_tree_data.h" #include "ui/accessibility/ax_tree_update.h" namespace ui { struct AXEvent; class AXLanguageDetectionManager; class AXNode; struct AXNodeData; class AXTableInfo; class AXTreeObserver; struct AXTreeUpdateState; class AXSelection; // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // LINT.IfChange(AXTreeUnserializeError) enum class AXTreeUnserializeError { … }; // LINT.ThenChange(/tools/metrics/histograms/metadata/accessibility/enums.xml:AccessibilityTreeUnserializeError) #define ACCESSIBILITY_TREE_UNSERIALIZE_ERROR_HISTOGRAM(enum_value) … // AXTree is a live, managed tree of AXNode objects that can receive // updates from another AXTreeSource via AXTreeUpdates, and it can be // used as a source for sending updates to another client tree. // It's designed to be subclassed to implement support for native // accessibility APIs on a specific platform. class AX_EXPORT AXTree { … }; // Sets the flag that indicates whether the accessibility tree is currently // being updated, and ensures that it is reset to its previous value when the // instance is destructed. An accessibility tree that is being updated is // unstable and should not be traversed. class AX_EXPORT ScopedTreeUpdateInProgressStateSetter { … }; } // namespace ui #endif // UI_ACCESSIBILITY_AX_TREE_H_