Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(509)

Unified Diff: content/browser/accessibility/browser_accessibility.cc

Issue 2988753002: Revert of Migrate BrowserAccessibility windows unique id handling to AXPlatformNodeWin. (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility.cc
diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc
index 6a01f3d471f6e593c6b37446d7a636e492eeb9c6..3824914ff94178face04b07104e45331ba0bf2a0 100644
--- a/content/browser/accessibility/browser_accessibility.cc
+++ b/content/browser/accessibility/browser_accessibility.cc
@@ -17,10 +17,19 @@
#include "content/common/accessibility_messages.h"
#include "ui/accessibility/ax_role_properties.h"
#include "ui/accessibility/ax_text_utils.h"
+#include "ui/accessibility/platform/ax_platform_unique_id.h"
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/rect_f.h"
namespace content {
+
+namespace {
+
+// Map from unique_id to BrowserAccessibility
+using UniqueIDMap = base::hash_map<int32_t, BrowserAccessibility*>;
+base::LazyInstance<UniqueIDMap>::DestructorAtExit g_unique_id_map =
+ LAZY_INSTANCE_INITIALIZER;
+}
#if !defined(PLATFORM_HAS_NATIVE_ACCESSIBILITY_IMPL)
// static
@@ -30,9 +39,24 @@
#endif
BrowserAccessibility::BrowserAccessibility()
- : manager_(nullptr), node_(nullptr) {}
+ : manager_(nullptr),
+ node_(nullptr),
+ unique_id_(ui::GetNextAXPlatformNodeUniqueId()) {
+ g_unique_id_map.Get()[unique_id_] = this;
+}
BrowserAccessibility::~BrowserAccessibility() {
+ if (unique_id_)
+ g_unique_id_map.Get().erase(unique_id_);
+}
+
+// static
+BrowserAccessibility* BrowserAccessibility::GetFromUniqueID(int32_t unique_id) {
+ auto iter = g_unique_id_map.Get().find(unique_id);
+ if (iter == g_unique_id_map.Get().end())
+ return nullptr;
+
+ return iter->second;
}
void BrowserAccessibility::Init(BrowserAccessibilityManager* manager,
@@ -549,6 +573,10 @@
node_ = NULL;
manager_ = NULL;
+ if (unique_id_)
+ g_unique_id_map.Get().erase(unique_id_);
+ unique_id_ = 0;
+
NativeReleaseReference();
}
« no previous file with comments | « content/browser/accessibility/browser_accessibility.h ('k') | content/browser/accessibility/browser_accessibility_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698