Chromium Code Reviews| Index: ui/accessibility/ax_tree_id_registry.h |
| diff --git a/ui/accessibility/ax_tree_id_registry.h b/ui/accessibility/ax_tree_id_registry.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d230859175276ebe2a288468e77f37c2d59134be |
| --- /dev/null |
| +++ b/ui/accessibility/ax_tree_id_registry.h |
| @@ -0,0 +1,55 @@ |
| +// Copyright 2014 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. |
| + |
| +#ifndef UI_ACCESSIBILITY_AX_TREE_ID_REGISTRY_H_ |
| +#define UI_ACCESSIBILITY_AX_TREE_ID_REGISTRY_H_ |
| + |
| +#include <map> |
| + |
| +#include "base/stl_util.h" |
| +#include "ui/accessibility/ax_export.h" |
| + |
| +template <typename T> |
| +struct DefaultSingletonTraits; |
| + |
| +namespace ui { |
| + |
| +// A class which generates a unique id given a process id and routing id. |
| +// Currently, placeholder implementation pending finalization of out of process |
| +// iframes. |
| +class AX_EXPORT AXTreeIDRegistry { |
|
dmazzoni
2014/10/31 22:20:26
This class looks great, but it can't go in ui/acce
David Tseng
2014/11/03 15:45:08
Technically, no deps violations, but yeah, it shou
|
| + public: |
| + typedef int AXTreeID; |
| + typedef std::pair<int, int> FrameID; |
| + |
| + // Get the single instance of this class. |
| + static AXTreeIDRegistry* GetInstance(); |
| + |
| + // Obtains a unique id given a |process_id| and |routing_id|. Placeholder |
| + // for full implementation once out of process iframe accessibility finalizes. |
| + int GetOrCreateAXTreeID(int process_id, int routing_id); |
| + FrameID GetFrameID(int ax_tree_id); |
| + void RemoveAXTreeID(int ax_tree_id);0 |
| + |
| + private: |
| + friend struct DefaultSingletonTraits<AXTreeIDRegistry>; |
| + |
| + AXTreeIDRegistry(); |
| + virtual ~AXTreeIDRegistry(); |
| + |
| + // Tracks the current unique ax frame id. |
| + int ax_tree_id_counter_; |
| + |
| + // Maps an accessibility tree to its frame via ids. |
| + std::map<AXTreeID, FrameID> ax_tree_to_frame_id_map_; |
| + |
| + // Maps frames to an accessibility tree via ids. |
| + std::map<FrameID, AXTreeID> frame_to_ax_tree_id_map_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AXTreeIDRegistry); |
| +}; |
| + |
| +} // namespace ui |
| + |
| +#endif // UI_ACCESSIBILITY_AX_TREE_ID_REGISTRY_H_ |