| // 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. |
| |
| #include "ui/accessibility/ax_tree_manager_map.h" |
| |
| #include "base/containers/contains.h" |
| |
| namespace ui { |
| |
| AXTreeManagerMap::AXTreeManagerMap() = default; |
| |
| AXTreeManagerMap::~AXTreeManagerMap() = default; |
| |
| void AXTreeManagerMap::AddTreeManager(const AXTreeID& tree_id, |
| AXTreeManager* manager) { |
| if (tree_id != AXTreeIDUnknown()) |
| map_[tree_id] = manager; |
| } |
| |
| void AXTreeManagerMap::RemoveTreeManager(const AXTreeID& tree_id) { |
| if (auto* manager = GetManager(tree_id)) { |
| manager->WillBeRemovedFromMap(); |
| map_.erase(tree_id); |
| } |
| } |
| |
| AXTreeManager* AXTreeManagerMap::GetManager(const AXTreeID& tree_id) { |
| if (tree_id == AXTreeIDUnknown()) |
| return nullptr; |
| auto iter = map_.find(tree_id); |
| if (iter == map_.end()) |
| return nullptr; |
| |
| return iter->second; |
| } |
| |
| } // namespace ui |