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

Side by Side Diff: content/browser/accessibility/browser_accessibility.cc

Issue 2761853004: Rename BrowserAccessibility::GetParent to PlatformGetParent. (Closed)
Patch Set: Created 3 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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.h" 5 #include "content/browser/accessibility/browser_accessibility.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 default: 92 default:
93 return false; 93 return false;
94 } 94 }
95 } 95 }
96 96
97 uint32_t BrowserAccessibility::PlatformChildCount() const { 97 uint32_t BrowserAccessibility::PlatformChildCount() const {
98 if (HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)) { 98 if (HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)) {
99 BrowserAccessibilityManager* child_manager = 99 BrowserAccessibilityManager* child_manager =
100 BrowserAccessibilityManager::FromID( 100 BrowserAccessibilityManager::FromID(
101 GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)); 101 GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID));
102 if (child_manager && child_manager->GetRoot()->GetParent() == this) 102 if (child_manager &&
103 child_manager->GetRoot()->GetAccessibilityParent() == this)
103 return 1; 104 return 1;
104 105
105 return 0; 106 return 0;
106 } 107 }
107 108
108 return PlatformIsLeaf() ? 0 : InternalChildCount(); 109 return PlatformIsLeaf() ? 0 : InternalChildCount();
109 } 110 }
110 111
111 bool BrowserAccessibility::IsNative() const { 112 bool BrowserAccessibility::IsNative() const {
112 return false; 113 return false;
113 } 114 }
114 115
115 bool BrowserAccessibility::IsDescendantOf( 116 bool BrowserAccessibility::IsDescendantOf(
116 const BrowserAccessibility* ancestor) const { 117 const BrowserAccessibility* ancestor) const {
117 if (!ancestor) 118 if (!ancestor)
118 return false; 119 return false;
119 120
120 if (this == ancestor) 121 if (this == ancestor)
121 return true; 122 return true;
122 123
123 if (GetParent()) 124 if (GetAccessibilityParent())
124 return GetParent()->IsDescendantOf(ancestor); 125 return GetAccessibilityParent()->IsDescendantOf(ancestor);
125 126
126 return false; 127 return false;
127 } 128 }
128 129
129 bool BrowserAccessibility::IsTextOnlyObject() const { 130 bool BrowserAccessibility::IsTextOnlyObject() const {
130 return GetRole() == ui::AX_ROLE_STATIC_TEXT || 131 return GetRole() == ui::AX_ROLE_STATIC_TEXT ||
131 GetRole() == ui::AX_ROLE_LINE_BREAK || 132 GetRole() == ui::AX_ROLE_LINE_BREAK ||
132 GetRole() == ui::AX_ROLE_INLINE_TEXT_BOX; 133 GetRole() == ui::AX_ROLE_INLINE_TEXT_BOX;
133 } 134 }
134 135
135 bool BrowserAccessibility::IsLineBreakObject() const { 136 bool BrowserAccessibility::IsLineBreakObject() const {
136 return GetRole() == ui::AX_ROLE_LINE_BREAK || 137 return GetRole() == ui::AX_ROLE_LINE_BREAK ||
137 (IsTextOnlyObject() && GetParent() && 138 (IsTextOnlyObject() && GetAccessibilityParent() &&
138 GetParent()->GetRole() == ui::AX_ROLE_LINE_BREAK); 139 GetAccessibilityParent()->GetRole() == ui::AX_ROLE_LINE_BREAK);
139 } 140 }
140 141
141 BrowserAccessibility* BrowserAccessibility::PlatformGetChild( 142 BrowserAccessibility* BrowserAccessibility::PlatformGetChild(
142 uint32_t child_index) const { 143 uint32_t child_index) const {
143 BrowserAccessibility* result = nullptr; 144 BrowserAccessibility* result = nullptr;
144 145
145 if (child_index == 0 && HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)) { 146 if (child_index == 0 && HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)) {
146 BrowserAccessibilityManager* child_manager = 147 BrowserAccessibilityManager* child_manager =
147 BrowserAccessibilityManager::FromID( 148 BrowserAccessibilityManager::FromID(
148 GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)); 149 GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID));
149 if (child_manager && child_manager->GetRoot()->GetParent() == this) 150 if (child_manager &&
151 child_manager->GetRoot()->GetAccessibilityParent() == this)
150 result = child_manager->GetRoot(); 152 result = child_manager->GetRoot();
151 } else { 153 } else {
152 result = InternalGetChild(child_index); 154 result = InternalGetChild(child_index);
153 } 155 }
154 156
155 return result; 157 return result;
156 } 158 }
157 159
158 bool BrowserAccessibility::PlatformIsChildOfLeaf() const { 160 bool BrowserAccessibility::PlatformIsChildOfLeaf() const {
159 BrowserAccessibility* ancestor = InternalGetParent(); 161 BrowserAccessibility* ancestor = InternalGetParent();
(...skipping 10 matching lines...) Expand all
170 BrowserAccessibility* platform_object = 172 BrowserAccessibility* platform_object =
171 const_cast<BrowserAccessibility*>(this); 173 const_cast<BrowserAccessibility*>(this);
172 while (platform_object && platform_object->PlatformIsChildOfLeaf()) 174 while (platform_object && platform_object->PlatformIsChildOfLeaf())
173 platform_object = platform_object->InternalGetParent(); 175 platform_object = platform_object->InternalGetParent();
174 176
175 DCHECK(platform_object); 177 DCHECK(platform_object);
176 return platform_object; 178 return platform_object;
177 } 179 }
178 180
179 BrowserAccessibility* BrowserAccessibility::GetPreviousSibling() const { 181 BrowserAccessibility* BrowserAccessibility::GetPreviousSibling() const {
180 if (GetParent() && GetIndexInParent() > 0) 182 if (GetAccessibilityParent() && GetIndexInParent() > 0)
dmazzoni 2017/03/21 16:42:20 This actually brings up an interesting question -
181 return GetParent()->InternalGetChild(GetIndexInParent() - 1); 183 return GetAccessibilityParent()->InternalGetChild(GetIndexInParent() - 1);
182 184
183 return nullptr; 185 return nullptr;
184 } 186 }
185 187
186 BrowserAccessibility* BrowserAccessibility::GetNextSibling() const { 188 BrowserAccessibility* BrowserAccessibility::GetNextSibling() const {
187 if (GetParent() && 189 if (GetAccessibilityParent() && GetIndexInParent() >= 0 &&
188 GetIndexInParent() >= 0 && 190 GetIndexInParent() <
189 GetIndexInParent() < static_cast<int>( 191 static_cast<int>(GetAccessibilityParent()->InternalChildCount() -
190 GetParent()->InternalChildCount() - 1)) { 192 1)) {
191 return GetParent()->InternalGetChild(GetIndexInParent() + 1); 193 return GetAccessibilityParent()->InternalGetChild(GetIndexInParent() + 1);
192 } 194 }
193 195
194 return nullptr; 196 return nullptr;
195 } 197 }
196 198
197 bool BrowserAccessibility::IsPreviousSiblingOnSameLine() const { 199 bool BrowserAccessibility::IsPreviousSiblingOnSameLine() const {
198 const BrowserAccessibility* previous_sibling = GetPreviousSibling(); 200 const BrowserAccessibility* previous_sibling = GetPreviousSibling();
199 if (!previous_sibling) 201 if (!previous_sibling)
200 return false; 202 return false;
201 203
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 BrowserAccessibility* BrowserAccessibility::InternalGetChild( 302 BrowserAccessibility* BrowserAccessibility::InternalGetChild(
301 uint32_t child_index) const { 303 uint32_t child_index) const {
302 if (!node_ || !manager_ || child_index >= InternalChildCount()) 304 if (!node_ || !manager_ || child_index >= InternalChildCount())
303 return nullptr; 305 return nullptr;
304 306
305 auto* child_node = node_->ChildAtIndex(child_index); 307 auto* child_node = node_->ChildAtIndex(child_index);
306 DCHECK(child_node); 308 DCHECK(child_node);
307 return manager_->GetFromAXNode(child_node); 309 return manager_->GetFromAXNode(child_node);
308 } 310 }
309 311
310 BrowserAccessibility* BrowserAccessibility::GetParent() const { 312 BrowserAccessibility* BrowserAccessibility::GetAccessibilityParent() const {
311 if (!instance_active()) 313 if (!instance_active())
312 return nullptr; 314 return nullptr;
313 315
314 ui::AXNode* parent = node_->parent(); 316 ui::AXNode* parent = node_->parent();
315 if (parent) 317 if (parent)
316 return manager_->GetFromAXNode(parent); 318 return manager_->GetFromAXNode(parent);
317 319
318 return manager_->GetParentNodeFromParentTree(); 320 return manager_->GetParentNodeFromParentTree();
319 } 321 }
320 322
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 return GetData().GetFloatAttribute(attribute, value); 823 return GetData().GetFloatAttribute(attribute, value);
822 } 824 }
823 825
824 bool BrowserAccessibility::HasInheritedStringAttribute( 826 bool BrowserAccessibility::HasInheritedStringAttribute(
825 ui::AXStringAttribute attribute) const { 827 ui::AXStringAttribute attribute) const {
826 if (!instance_active()) 828 if (!instance_active())
827 return false; 829 return false;
828 830
829 if (GetData().HasStringAttribute(attribute)) 831 if (GetData().HasStringAttribute(attribute))
830 return true; 832 return true;
831 return GetParent() && GetParent()->HasInheritedStringAttribute(attribute); 833 return GetAccessibilityParent() &&
834 GetAccessibilityParent()->HasInheritedStringAttribute(attribute);
832 } 835 }
833 836
834 const std::string& BrowserAccessibility::GetInheritedStringAttribute( 837 const std::string& BrowserAccessibility::GetInheritedStringAttribute(
835 ui::AXStringAttribute attribute) const { 838 ui::AXStringAttribute attribute) const {
836 if (!instance_active()) 839 if (!instance_active())
837 return base::EmptyString(); 840 return base::EmptyString();
838 841
839 const BrowserAccessibility* current_object = this; 842 const BrowserAccessibility* current_object = this;
840 do { 843 do {
841 if (current_object->GetData().HasStringAttribute(attribute)) 844 if (current_object->GetData().HasStringAttribute(attribute))
842 return current_object->GetData().GetStringAttribute(attribute); 845 return current_object->GetData().GetStringAttribute(attribute);
843 current_object = current_object->GetParent(); 846 current_object = current_object->GetAccessibilityParent();
844 } while (current_object); 847 } while (current_object);
845 return base::EmptyString(); 848 return base::EmptyString();
846 } 849 }
847 850
848 bool BrowserAccessibility::GetInheritedStringAttribute( 851 bool BrowserAccessibility::GetInheritedStringAttribute(
849 ui::AXStringAttribute attribute, 852 ui::AXStringAttribute attribute,
850 std::string* value) const { 853 std::string* value) const {
851 if (!instance_active()) { 854 if (!instance_active()) {
852 *value = std::string(); 855 *value = std::string();
853 return false; 856 return false;
854 } 857 }
855 858
856 if (GetData().GetStringAttribute(attribute, value)) 859 if (GetData().GetStringAttribute(attribute, value))
857 return true; 860 return true;
858 return GetParent() && 861 return GetAccessibilityParent() &&
859 GetParent()->GetData().GetStringAttribute(attribute, value); 862 GetAccessibilityParent()->GetData().GetStringAttribute(attribute,
863 value);
860 } 864 }
861 865
862 base::string16 BrowserAccessibility::GetInheritedString16Attribute( 866 base::string16 BrowserAccessibility::GetInheritedString16Attribute(
863 ui::AXStringAttribute attribute) const { 867 ui::AXStringAttribute attribute) const {
864 if (!instance_active()) 868 if (!instance_active())
865 return base::string16(); 869 return base::string16();
866 870
867 const BrowserAccessibility* current_object = this; 871 const BrowserAccessibility* current_object = this;
868 do { 872 do {
869 if (current_object->GetData().HasStringAttribute(attribute)) 873 if (current_object->GetData().HasStringAttribute(attribute))
870 return current_object->GetData().GetString16Attribute(attribute); 874 return current_object->GetData().GetString16Attribute(attribute);
871 current_object = current_object->GetParent(); 875 current_object = current_object->GetAccessibilityParent();
872 } while (current_object); 876 } while (current_object);
873 return base::string16(); 877 return base::string16();
874 } 878 }
875 879
876 bool BrowserAccessibility::GetInheritedString16Attribute( 880 bool BrowserAccessibility::GetInheritedString16Attribute(
877 ui::AXStringAttribute attribute, 881 ui::AXStringAttribute attribute,
878 base::string16* value) const { 882 base::string16* value) const {
879 if (!instance_active()) { 883 if (!instance_active()) {
880 *value = base::string16(); 884 *value = base::string16();
881 return false; 885 return false;
882 } 886 }
883 887
884 if (GetData().GetString16Attribute(attribute, value)) 888 if (GetData().GetString16Attribute(attribute, value))
885 return true; 889 return true;
886 return GetParent() && 890 return GetAccessibilityParent() &&
887 GetParent()->GetData().GetString16Attribute(attribute, value); 891 GetAccessibilityParent()->GetData().GetString16Attribute(attribute,
892 value);
888 } 893 }
889 894
890 bool BrowserAccessibility::HasIntAttribute( 895 bool BrowserAccessibility::HasIntAttribute(
891 ui::AXIntAttribute attribute) const { 896 ui::AXIntAttribute attribute) const {
892 return GetData().HasIntAttribute(attribute); 897 return GetData().HasIntAttribute(attribute);
893 } 898 }
894 899
895 int BrowserAccessibility::GetIntAttribute(ui::AXIntAttribute attribute) const { 900 int BrowserAccessibility::GetIntAttribute(ui::AXIntAttribute attribute) const {
896 return GetData().GetIntAttribute(attribute); 901 return GetData().GetIntAttribute(attribute);
897 } 902 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 1016
1012 return focus_object->IsDescendantOf(this); 1017 return focus_object->IsDescendantOf(this);
1013 } 1018 }
1014 1019
1015 bool BrowserAccessibility::IsWebAreaForPresentationalIframe() const { 1020 bool BrowserAccessibility::IsWebAreaForPresentationalIframe() const {
1016 if (GetRole() != ui::AX_ROLE_WEB_AREA && 1021 if (GetRole() != ui::AX_ROLE_WEB_AREA &&
1017 GetRole() != ui::AX_ROLE_ROOT_WEB_AREA) { 1022 GetRole() != ui::AX_ROLE_ROOT_WEB_AREA) {
1018 return false; 1023 return false;
1019 } 1024 }
1020 1025
1021 BrowserAccessibility* parent = GetParent(); 1026 BrowserAccessibility* parent = GetAccessibilityParent();
1022 if (!parent) 1027 if (!parent)
1023 return false; 1028 return false;
1024 1029
1025 return parent->GetRole() == ui::AX_ROLE_IFRAME_PRESENTATIONAL; 1030 return parent->GetRole() == ui::AX_ROLE_IFRAME_PRESENTATIONAL;
1026 } 1031 }
1027 1032
1028 bool BrowserAccessibility::IsClickable() const { 1033 bool BrowserAccessibility::IsClickable() const {
1029 return ui::IsRoleClickable(GetRole()); 1034 return ui::IsRoleClickable(GetRole());
1030 } 1035 }
1031 1036
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 case ui::AX_ROLE_TEXT_FIELD: 1107 case ui::AX_ROLE_TEXT_FIELD:
1103 return !HasState(ui::AX_STATE_RICHLY_EDITABLE); 1108 return !HasState(ui::AX_STATE_RICHLY_EDITABLE);
1104 default: 1109 default:
1105 return false; 1110 return false;
1106 } 1111 }
1107 } 1112 }
1108 1113
1109 // Indicates if this object is at the root of a rich edit text control. 1114 // Indicates if this object is at the root of a rich edit text control.
1110 bool BrowserAccessibility::IsRichTextControl() const { 1115 bool BrowserAccessibility::IsRichTextControl() const {
1111 return HasState(ui::AX_STATE_RICHLY_EDITABLE) && 1116 return HasState(ui::AX_STATE_RICHLY_EDITABLE) &&
1112 (!GetParent() || !GetParent()->HasState(ui::AX_STATE_RICHLY_EDITABLE)); 1117 (!GetAccessibilityParent() ||
1118 !GetAccessibilityParent()->HasState(ui::AX_STATE_RICHLY_EDITABLE));
1113 } 1119 }
1114 1120
1115 std::string BrowserAccessibility::ComputeAccessibleNameFromDescendants() { 1121 std::string BrowserAccessibility::ComputeAccessibleNameFromDescendants() {
1116 std::string name; 1122 std::string name;
1117 for (size_t i = 0; i < InternalChildCount(); ++i) { 1123 for (size_t i = 0; i < InternalChildCount(); ++i) {
1118 BrowserAccessibility* child = InternalGetChild(i); 1124 BrowserAccessibility* child = InternalGetChild(i);
1119 std::string child_name; 1125 std::string child_name;
1120 if (child->GetStringAttribute(ui::AX_ATTR_NAME, &child_name)) { 1126 if (child->GetStringAttribute(ui::AX_ATTR_NAME, &child_name)) {
1121 if (!name.empty()) 1127 if (!name.empty())
1122 name += " "; 1128 name += " ";
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 bool frame_only) const { 1193 bool frame_only) const {
1188 const BrowserAccessibility* node = this; 1194 const BrowserAccessibility* node = this;
1189 while (node) { 1195 while (node) {
1190 if (node->GetData().transform) 1196 if (node->GetData().transform)
1191 node->GetData().transform->TransformRect(&bounds); 1197 node->GetData().transform->TransformRect(&bounds);
1192 1198
1193 const BrowserAccessibility* container = 1199 const BrowserAccessibility* container =
1194 node->manager()->GetFromID(node->GetData().offset_container_id); 1200 node->manager()->GetFromID(node->GetData().offset_container_id);
1195 if (!container) { 1201 if (!container) {
1196 if (node == node->manager()->GetRoot() && !frame_only) { 1202 if (node == node->manager()->GetRoot() && !frame_only) {
1197 container = node->GetParent(); 1203 container = node->GetAccessibilityParent();
1198 } else { 1204 } else {
1199 container = node->manager()->GetRoot(); 1205 container = node->manager()->GetRoot();
1200 } 1206 }
1201 } 1207 }
1202 1208
1203 if (!container || container == node) 1209 if (!container || container == node)
1204 break; 1210 break;
1205 1211
1206 gfx::RectF container_bounds = container->GetLocation(); 1212 gfx::RectF container_bounds = container->GetLocation();
1207 bounds.Offset(container_bounds.x(), container_bounds.y()); 1213 bounds.Offset(container_bounds.x(), container_bounds.y());
1208 1214
1209 if (container->manager()->UseRootScrollOffsetsWhenComputingBounds() || 1215 if (container->manager()->UseRootScrollOffsetsWhenComputingBounds() ||
1210 container->GetParent()) { 1216 container->GetAccessibilityParent()) {
1211 int sx = 0; 1217 int sx = 0;
1212 int sy = 0; 1218 int sy = 0;
1213 if (container->GetIntAttribute(ui::AX_ATTR_SCROLL_X, &sx) && 1219 if (container->GetIntAttribute(ui::AX_ATTR_SCROLL_X, &sx) &&
1214 container->GetIntAttribute(ui::AX_ATTR_SCROLL_Y, &sy)) { 1220 container->GetIntAttribute(ui::AX_ATTR_SCROLL_Y, &sy)) {
1215 bounds.Offset(-sx, -sy); 1221 bounds.Offset(-sx, -sy);
1216 } 1222 }
1217 } 1223 }
1218 1224
1219 node = container; 1225 node = container;
1220 } 1226 }
1221 1227
1222 return gfx::ToEnclosingRect(bounds); 1228 return gfx::ToEnclosingRect(bounds);
1223 } 1229 }
1224 1230
1225 } // namespace content 1231 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698