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

Side by Side Diff: content/browser/accessibility/browser_accessibility_android.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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/accessibility/browser_accessibility_android.h" 5 #include "content/browser/accessibility/browser_accessibility_android.h"
6 6
7 #include "base/containers/hash_tables.h"
8 #include "base/i18n/break_iterator.h" 7 #include "base/i18n/break_iterator.h"
9 #include "base/lazy_instance.h"
10 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
12 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
13 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
14 #include "content/app/strings/grit/content_strings.h" 12 #include "content/app/strings/grit/content_strings.h"
15 #include "content/browser/accessibility/browser_accessibility_manager_android.h" 13 #include "content/browser/accessibility/browser_accessibility_manager_android.h"
16 #include "content/common/accessibility_messages.h" 14 #include "content/common/accessibility_messages.h"
17 #include "content/public/common/content_client.h" 15 #include "content/public/common/content_client.h"
18 #include "third_party/skia/include/core/SkColor.h" 16 #include "third_party/skia/include/core/SkColor.h"
19 #include "ui/accessibility/ax_role_properties.h" 17 #include "ui/accessibility/ax_role_properties.h"
20 #include "ui/accessibility/platform/ax_android_constants.h" 18 #include "ui/accessibility/platform/ax_android_constants.h"
21 #include "ui/accessibility/platform/ax_platform_unique_id.h"
22 #include "ui/accessibility/platform/ax_snapshot_node_android_platform.h" 19 #include "ui/accessibility/platform/ax_snapshot_node_android_platform.h"
23 20
24 namespace aria_strings { 21 namespace aria_strings {
25 const char kAriaLivePolite[] = "polite"; 22 const char kAriaLivePolite[] = "polite";
26 const char kAriaLiveAssertive[] = "assertive"; 23 const char kAriaLiveAssertive[] = "assertive";
27 } 24 }
28 25
29 namespace { 26 namespace {
30 27
31 // These are enums from android.text.InputType in Java: 28 // These are enums from android.text.InputType in Java:
(...skipping 26 matching lines...) Expand all
58 55
59 } // namespace 56 } // namespace
60 57
61 namespace content { 58 namespace content {
62 59
63 // static 60 // static
64 BrowserAccessibility* BrowserAccessibility::Create() { 61 BrowserAccessibility* BrowserAccessibility::Create() {
65 return new BrowserAccessibilityAndroid(); 62 return new BrowserAccessibilityAndroid();
66 } 63 }
67 64
68 using UniqueIdMap = base::hash_map<int32_t, BrowserAccessibilityAndroid*>; 65 BrowserAccessibilityAndroid::BrowserAccessibilityAndroid() {
69 // Map from each AXPlatformNode's unique id to its instance.
70 base::LazyInstance<UniqueIdMap>::DestructorAtExit g_unique_id_map =
71 LAZY_INSTANCE_INITIALIZER;
72
73 // static
74 BrowserAccessibilityAndroid* BrowserAccessibilityAndroid::GetFromUniqueId(
75 int32_t unique_id) {
76 UniqueIdMap* unique_ids = g_unique_id_map.Pointer();
77 auto iter = unique_ids->find(unique_id);
78 if (iter != unique_ids->end())
79 return iter->second;
80
81 return nullptr;
82 }
83
84 BrowserAccessibilityAndroid::BrowserAccessibilityAndroid()
85 : unique_id_(ui::GetNextAXPlatformNodeUniqueId()) {
86 g_unique_id_map.Get()[unique_id_] = this;
87 first_time_ = true; 66 first_time_ = true;
88 } 67 }
89 68
90 BrowserAccessibilityAndroid::~BrowserAccessibilityAndroid() {
91 if (unique_id_)
92 g_unique_id_map.Get().erase(unique_id_);
93 }
94
95 bool BrowserAccessibilityAndroid::IsNative() const { 69 bool BrowserAccessibilityAndroid::IsNative() const {
96 return true; 70 return true;
97 } 71 }
98 72
99 void BrowserAccessibilityAndroid::OnLocationChanged() { 73 void BrowserAccessibilityAndroid::OnLocationChanged() {
100 manager()->NotifyAccessibilityEvent( 74 manager()->NotifyAccessibilityEvent(
101 BrowserAccessibilityEvent::FromTreeChange, 75 BrowserAccessibilityEvent::FromTreeChange,
102 ui::AX_EVENT_LOCATION_CHANGED, 76 ui::AX_EVENT_LOCATION_CHANGED,
103 this); 77 this);
104 } 78 }
(...skipping 1330 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const { 1409 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const {
1436 int count = 0; 1410 int count = 0;
1437 for (uint32_t i = 0; i < PlatformChildCount(); i++) { 1411 for (uint32_t i = 0; i < PlatformChildCount(); i++) {
1438 if (PlatformGetChild(i)->GetRole() == role) 1412 if (PlatformGetChild(i)->GetRole() == role)
1439 count++; 1413 count++;
1440 } 1414 }
1441 return count; 1415 return count;
1442 } 1416 }
1443 1417
1444 } // namespace content 1418 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698