Index: content/browser/accessibility/browser_accessibility_android.cc |
diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc |
index a74f0082ad154bb8084827df6173b0fbcdca38ac..52d65365a84a931632cde9c0ca2676e0aadd7ccc 100644 |
--- a/content/browser/accessibility/browser_accessibility_android.cc |
+++ b/content/browser/accessibility/browser_accessibility_android.cc |
@@ -15,11 +15,10 @@ |
#include "content/public/common/content_client.h" |
#include "third_party/skia/include/core/SkColor.h" |
#include "ui/accessibility/platform/ax_android_constants.h" |
+#include "ui/accessibility/platform/ax_snapshot_node_android_platform.h" |
namespace { |
-const base::char16 kSecurePasswordBullet = 0x2022; |
- |
// These are enums from android.text.InputType in Java: |
enum { |
ANDROID_TEXT_INPUTTYPE_TYPE_NULL = 0, |
@@ -81,7 +80,7 @@ base::string16 BrowserAccessibilityAndroid::GetValue() const { |
bool should_expose = static_cast<BrowserAccessibilityManagerAndroid*>( |
manager())->ShouldExposePasswordText(); |
if (!should_expose) { |
- value = base::string16(value.size(), kSecurePasswordBullet); |
+ value = base::string16(value.size(), ui::kSecurePasswordBullet); |
} |
} |
@@ -245,8 +244,7 @@ bool BrowserAccessibilityAndroid::IsHierarchical() const { |
} |
bool BrowserAccessibilityAndroid::IsLink() const { |
- return (GetRole() == ui::AX_ROLE_LINK || |
- GetRole() == ui::AX_ROLE_IMAGE_MAP_LINK); |
+ return ui::AXSnapshotNodeAndroid::AXRoleIsLink(GetRole()); |
} |
bool BrowserAccessibilityAndroid::IsMultiLine() const { |
@@ -328,80 +326,8 @@ bool BrowserAccessibilityAndroid::CanOpenPopup() const { |
} |
const char* BrowserAccessibilityAndroid::GetClassName() const { |
- const char* class_name = NULL; |
- |
- switch (GetRole()) { |
- case ui::AX_ROLE_SEARCH_BOX: |
- case ui::AX_ROLE_SPIN_BUTTON: |
- case ui::AX_ROLE_TEXT_FIELD: |
- class_name = ui::kAXEditTextClassname; |
- break; |
- case ui::AX_ROLE_SLIDER: |
- class_name = ui::kAXSeekBarClassname; |
- break; |
- case ui::AX_ROLE_COLOR_WELL: |
- case ui::AX_ROLE_COMBO_BOX: |
- case ui::AX_ROLE_DATE: |
- case ui::AX_ROLE_POP_UP_BUTTON: |
- case ui::AX_ROLE_INPUT_TIME: |
- class_name = ui::kAXSpinnerClassname; |
- break; |
- case ui::AX_ROLE_BUTTON: |
- case ui::AX_ROLE_MENU_BUTTON: |
- class_name = ui::kAXButtonClassname; |
- break; |
- case ui::AX_ROLE_CHECK_BOX: |
- case ui::AX_ROLE_SWITCH: |
- class_name = ui::kAXCheckBoxClassname; |
- break; |
- case ui::AX_ROLE_RADIO_BUTTON: |
- class_name = ui::kAXRadioButtonClassname; |
- break; |
- case ui::AX_ROLE_TOGGLE_BUTTON: |
- class_name = ui::kAXToggleButtonClassname; |
- break; |
- case ui::AX_ROLE_CANVAS: |
- case ui::AX_ROLE_IMAGE: |
- case ui::AX_ROLE_SVG_ROOT: |
- class_name = ui::kAXImageClassname; |
- break; |
- case ui::AX_ROLE_METER: |
- case ui::AX_ROLE_PROGRESS_INDICATOR: |
- class_name = ui::kAXProgressBarClassname; |
- break; |
- case ui::AX_ROLE_TAB_LIST: |
- class_name = ui::kAXTabWidgetClassname; |
- break; |
- case ui::AX_ROLE_GRID: |
- case ui::AX_ROLE_TREE_GRID: |
- case ui::AX_ROLE_TABLE: |
- class_name = ui::kAXGridViewClassname; |
- break; |
- case ui::AX_ROLE_LIST: |
- case ui::AX_ROLE_LIST_BOX: |
- case ui::AX_ROLE_DESCRIPTION_LIST: |
- class_name = ui::kAXListViewClassname; |
- break; |
- case ui::AX_ROLE_DIALOG: |
- class_name = ui::kAXDialogClassname; |
- break; |
- case ui::AX_ROLE_ROOT_WEB_AREA: |
- if (PlatformGetParent() == nullptr) |
- class_name = ui::kAXWebViewClassname; |
- else |
- class_name = ui::kAXViewClassname; |
- break; |
- case ui::AX_ROLE_MENU_ITEM: |
- case ui::AX_ROLE_MENU_ITEM_CHECK_BOX: |
- case ui::AX_ROLE_MENU_ITEM_RADIO: |
- class_name = ui::kAXMenuItemClassname; |
- break; |
- default: |
- class_name = ui::kAXViewClassname; |
- break; |
- } |
- |
- return class_name; |
+ return ui::AXSnapshotNodeAndroid::AXRoleToAndroidClassName( |
+ GetRole(), PlatformGetParent() != nullptr); |
} |
base::string16 BrowserAccessibilityAndroid::GetText() const { |
@@ -484,22 +410,7 @@ base::string16 BrowserAccessibilityAndroid::GetText() const { |
if (text.empty() && (IsLink() || GetRole() == ui::AX_ROLE_IMAGE)) { |
base::string16 url = GetString16Attribute(ui::AX_ATTR_URL); |
- // Given a url like http://foo.com/bar/baz.png, just return the |
- // base text, e.g., "baz". |
- int trailing_slashes = 0; |
- while (url.size() - trailing_slashes > 0 && |
- url[url.size() - trailing_slashes - 1] == '/') { |
- trailing_slashes++; |
- } |
- if (trailing_slashes) |
- url = url.substr(0, url.size() - trailing_slashes); |
- size_t slash_index = url.rfind('/'); |
- if (slash_index != std::string::npos) |
- url = url.substr(slash_index + 1); |
- size_t dot_index = url.rfind('.'); |
- if (dot_index != std::string::npos) |
- url = url.substr(0, dot_index); |
- text = url; |
+ text = ui::AXSnapshotNodeAndroid::AXUrlBaseText(url); |
} |
return text; |