// Copyright 2019 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_MANAGER_H_ #define UI_ACCESSIBILITY_AX_TREE_MANAGER_H_ #include "base/scoped_observation.h" #include "ui/accessibility/ax_event_generator.h" #include "ui/accessibility/ax_export.h" #include "ui/accessibility/ax_tree.h" #include "ui/accessibility/ax_tree_observer.h" namespace ui { class AXNode; class AXTreeManagerMap; // Interface for a class that owns an AXTree and manages its connections // to other AXTrees in the same page or desktop (parent and child trees) // as well as a mapping of AXNode's by ID for supporting `GetNodeFromTree` // and related methods. // // Note, the tree manager may be created for a tree which has unknown (not // valid) tree id. A such tree is not registered with the tree map and thus // cannot be retrieved from the map. When the tree gets data and tree id, then // it is registered in the map automatically (see OnTreeDataChanged callback // notification). The mechanism implements the tree id data integrirty between // the tree map and trees, also it doesn't allow to register two different trees // with unknown IDs. class AX_EXPORT AXTreeManager : public AXTreeObserver { … }; } // namespace ui #endif // UI_ACCESSIBILITY_AX_TREE_MANAGER_H_