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_ |