[Views AX] Move BrowserAccessibility* to //ui/accessibility/platform
This change moves all BrowserAccessibility* classes except for android from content/browser/accessibility to ui/accessibility/platform/ OneShotAccessibilityTreeSearch is also moved in this change, as it both depends on BrowserAccessibility, and is used by it. Why is android not moved? Android's implementation of BrowserAccessibility* is coupled with the concept of web contents, and since Android does not use views, working to uncouple Android will arguably add more complexity than having the types split. See https://chromium-review.googlesource.com/c/chromium/src/+/5350788 for an example of what this would look like. For unchanged code where we moved a file into ui and should now drop ui:: in the ui namespace, I'll be putting together a follow up change that does this for all of ui/accessibility. ui/accessibility/ already has heavy usage of ui:: within the ui namespace and leaving these changes out for now helps highlight any functional differences exist in these moved files. Why do this at all? Moving BrowserAccessibility and BrowserAccessibilityManager to the UI layer will allow us to share the functionality of these classes with Views as well, allowing us to have a consistent accessibility implementation, while also enabling Views to utilize our caching mechanisms, allowing us to stop recomputing everything on each accessibility API call to views. See Design Document for additional details: https://docs.google.com/document/d/1Ku7HOyDsiZem1yaV6ccZ-tz3lO2XR2NEcm8HjR6d-VY/edit#heading=h.dmka4gmkfbri Bug: 40672441 Change-Id: I36b3c7913f059f77ddfaaa2b046976fb65062c8a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5520052 Reviewed-by: Vladimir Levin <vmpstr@chromium.org> Reviewed-by: Benjamin Beaudry <benjamin.beaudry@microsoft.com> Reviewed-by: Greg Thompson <grt@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Aaron Leventhal <aleventhal@chromium.org> Commit-Queue: Jacques Newman <janewman@microsoft.com> Cr-Commit-Position: refs/heads/main@{#1346888}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
3c6161ef62
commit
6f230d781e
WATCHLISTS
content
app_shim_remote_cocoa
browser
BUILD.gn
accessibility
accessibility_action_browsertest.ccaccessibility_auralinux_browsertest.ccaccessibility_browsertest.ccaccessibility_content_browsertest.ccaccessibility_content_browsertest.haccessibility_mode_browsertest.ccaccessibility_tree_formatter_android.ccaccessibility_tree_formatter_android_external.ccaccessibility_tree_formatter_blink.ccaccessibility_tree_formatter_blink.haccessibility_tree_formatter_fuchsia.ccaccessibility_win_browsertest.ccandroid_granularity_movement_browsertest.ccaom_browsertest.ccax_platform_node_textprovider_win_browsertest.ccax_platform_node_textrangeprovider_win_browsertest.ccax_platform_node_win_browsertest.ccax_tree_formatter_mac_browsertest.mmbrowser_accessibility_android.ccbrowser_accessibility_android.hbrowser_accessibility_android_unittest.ccbrowser_accessibility_cocoa_browsertest.mmbrowser_accessibility_manager_android.ccbrowser_accessibility_manager_android.hbrowser_accessibility_manager_unittest.ccbrowser_accessibility_state_impl_browsertest.ccbrowser_accessibility_state_impl_unittest.ccbrowser_accessibility_unittest.cccross_platform_accessibility_browsertest.ccdump_accessibility_browsertest_base.ccdump_accessibility_browsertest_base.hdump_accessibility_events_browsertest.ccdump_accessibility_node_browsertest.ccdump_accessibility_scripts_browsertest.ccdump_accessibility_tree_browsertest.ccfullscreen_browsertest.cchit_testing_browsertest.cchit_testing_browsertest.hhit_testing_mac_browsertest.mmhit_testing_win_browsertest.ccline_layout_browsertest.ccone_shot_accessibility_tree_search_unittest.ccsite_per_process_accessibility_browsertest.cctouch_accessibility_aura_browsertest.ccweb_contents_accessibility_android.cc
back_forward_cache_internal_browsertest.ccrenderer_host
accessibility_tree_linkage_win_browsertest.cclegacy_render_widget_host_win.ccrender_frame_host_impl.ccrender_frame_host_impl.hrender_widget_host_delegate.ccrender_widget_host_delegate.hrender_widget_host_impl.ccrender_widget_host_impl.hrender_widget_host_view_aura.ccrender_widget_host_view_aura.hrender_widget_host_view_aura_vk_browsertest.ccrender_widget_host_view_child_frame.ccrender_widget_host_view_mac.mm
web_contents
public
browser
ax_inspect_factory.ccax_inspect_factory_android.ccax_inspect_factory_auralinux.ccax_inspect_factory_fuchsia.ccax_inspect_factory_mac.mmax_inspect_factory_win.cc
test
test
docs/accessibility
tools/cfi
ui/accessibility
BUILD.gn
platform
BUILD.gnDEPSbrowser_accessibility.ccbrowser_accessibility.hbrowser_accessibility_auralinux.ccbrowser_accessibility_auralinux.hbrowser_accessibility_auralinux_unittest.ccbrowser_accessibility_cocoa.hbrowser_accessibility_cocoa.mmbrowser_accessibility_com_win.ccbrowser_accessibility_com_win.hbrowser_accessibility_ios.hbrowser_accessibility_ios.mmbrowser_accessibility_mac.hbrowser_accessibility_mac.mmbrowser_accessibility_mac_unittest.mmbrowser_accessibility_manager.ccbrowser_accessibility_manager.hbrowser_accessibility_manager_auralinux.ccbrowser_accessibility_manager_auralinux.hbrowser_accessibility_manager_auralinux_unittest.ccbrowser_accessibility_manager_ios.hbrowser_accessibility_manager_ios.mmbrowser_accessibility_manager_mac.hbrowser_accessibility_manager_mac.mmbrowser_accessibility_manager_win.ccbrowser_accessibility_manager_win.hbrowser_accessibility_manager_win_unittest.ccbrowser_accessibility_win.ccbrowser_accessibility_win.hbrowser_accessibility_win_unittest.cc
fuchsia
browser_accessibility_fuchsia.ccbrowser_accessibility_fuchsia.hbrowser_accessibility_fuchsia_unittest.ccbrowser_accessibility_manager_fuchsia.ccbrowser_accessibility_manager_fuchsia.hbrowser_accessibility_manager_fuchsia_unittest.cc
one_shot_accessibility_tree_search.ccone_shot_accessibility_tree_search.h@ -37,7 +37,7 @@
|
||||
'|ui/accessibility/platform/ax_platform_node_(base|mac|win)' \
|
||||
'|third_party/(WebKit|blink)/.*(accessibility|ax_object|web_ax|ax_node|ax_layout)' \
|
||||
'|content/renderer/accessibility/render_accessibility_impl' \
|
||||
'|content/browser/accessibility/browser_accessibility(\.|_manager|_win|_com|_cocoa)'
|
||||
'|ui/accessibility/platform/browser_accessibility(\.|_manager|_win|_com|_cocoa)'
|
||||
},
|
||||
'accessibility_reading': {
|
||||
'filepath': 'read_anything/|'\
|
||||
|
@ -6,9 +6,6 @@ include_rules = [
|
||||
"+components/input/native_web_keyboard_event.h",
|
||||
"+components/remote_cocoa/app_shim",
|
||||
"+content/app_shim_remote_cocoa",
|
||||
"+content/browser/accessibility/browser_accessibility_cocoa.h",
|
||||
"+content/browser/accessibility/browser_accessibility_mac.h",
|
||||
"+content/browser/accessibility/browser_accessibility_manager_mac.h",
|
||||
"+content/browser/cocoa/system_hotkey_helper_mac.h",
|
||||
"+content/browser/cocoa/system_hotkey_map.h",
|
||||
"+content/browser/download/drag_download_file.h",
|
||||
@ -32,4 +29,7 @@ include_rules = [
|
||||
"+content/public/common/drop_data.h",
|
||||
"+content/public/common/widget_type.h",
|
||||
"+third_party/blink/public/mojom/webshare/webshare.mojom.h",
|
||||
"+ui/accessibility/platform/browser_accessibility_cocoa.h",
|
||||
"+ui/accessibility/platform/browser_accessibility_mac.h",
|
||||
"+ui/accessibility/platform/browser_accessibility_manager_mac.h",
|
||||
]
|
||||
|
@ -27,9 +27,6 @@
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "components/input/web_input_event_builders_mac.h"
|
||||
#include "components/remote_cocoa/app_shim/ns_view_ids.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#import "content/browser/cocoa/system_hotkey_helper_mac.h"
|
||||
#import "content/browser/cocoa/system_hotkey_map.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_mac.h"
|
||||
@ -43,6 +40,9 @@
|
||||
#include "third_party/blink/public/mojom/input/input_handler.mojom.h"
|
||||
#include "third_party/blink/public/platform/web_text_input_type.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
#import "ui/base/clipboard/clipboard_util_mac.h"
|
||||
#import "ui/base/cocoa/appkit_utils.h"
|
||||
#import "ui/base/cocoa/nsmenu_additions.h"
|
||||
|
@ -395,14 +395,8 @@ source_set("browser") {
|
||||
"about_url_loader_factory.h",
|
||||
"accessibility/accessibility_tree_formatter_blink.cc",
|
||||
"accessibility/accessibility_tree_formatter_blink.h",
|
||||
"accessibility/browser_accessibility.cc",
|
||||
"accessibility/browser_accessibility.h",
|
||||
"accessibility/browser_accessibility_manager.cc",
|
||||
"accessibility/browser_accessibility_manager.h",
|
||||
"accessibility/browser_accessibility_state_impl.cc",
|
||||
"accessibility/browser_accessibility_state_impl.h",
|
||||
"accessibility/one_shot_accessibility_tree_search.cc",
|
||||
"accessibility/one_shot_accessibility_tree_search.h",
|
||||
"accessibility/render_accessibility_host.cc",
|
||||
"accessibility/render_accessibility_host.h",
|
||||
"accessibility/scoped_mode_collection.cc",
|
||||
@ -2550,10 +2544,6 @@ source_set("browser") {
|
||||
sources += [
|
||||
"accessibility/accessibility_tree_formatter_fuchsia.cc",
|
||||
"accessibility/accessibility_tree_formatter_fuchsia.h",
|
||||
"accessibility/browser_accessibility_fuchsia.cc",
|
||||
"accessibility/browser_accessibility_fuchsia.h",
|
||||
"accessibility/browser_accessibility_manager_fuchsia.cc",
|
||||
"accessibility/browser_accessibility_manager_fuchsia.h",
|
||||
"child_process_launcher_helper_fuchsia.cc",
|
||||
"file_system_access/file_path_watcher/file_path_watcher_stub.cc", # See
|
||||
# crbug.com/42050618
|
||||
@ -2627,12 +2617,6 @@ source_set("browser") {
|
||||
"../app_shim_remote_cocoa/web_drag_source_mac.mm",
|
||||
"../app_shim_remote_cocoa/web_menu_runner_mac.h",
|
||||
"../app_shim_remote_cocoa/web_menu_runner_mac.mm",
|
||||
"accessibility/browser_accessibility_cocoa.h",
|
||||
"accessibility/browser_accessibility_cocoa.mm",
|
||||
"accessibility/browser_accessibility_mac.h",
|
||||
"accessibility/browser_accessibility_mac.mm",
|
||||
"accessibility/browser_accessibility_manager_mac.h",
|
||||
"accessibility/browser_accessibility_manager_mac.mm",
|
||||
"accessibility/browser_accessibility_state_impl_mac.mm",
|
||||
"child_process_launcher_helper_mac.cc",
|
||||
"cocoa/system_hotkey_helper_mac.h",
|
||||
@ -2709,10 +2693,6 @@ source_set("browser") {
|
||||
]
|
||||
} else if (is_ios) {
|
||||
sources += [
|
||||
"accessibility/browser_accessibility_ios.h",
|
||||
"accessibility/browser_accessibility_ios.mm",
|
||||
"accessibility/browser_accessibility_manager_ios.h",
|
||||
"accessibility/browser_accessibility_manager_ios.mm",
|
||||
"child_process_launcher_helper_ios.mm",
|
||||
"date_time_chooser/ios/date_time_chooser_coordinator.h",
|
||||
"date_time_chooser/ios/date_time_chooser_coordinator.mm",
|
||||
@ -2860,13 +2840,7 @@ source_set("browser") {
|
||||
|
||||
if (is_win) {
|
||||
sources += [
|
||||
"accessibility/browser_accessibility_com_win.cc",
|
||||
"accessibility/browser_accessibility_com_win.h",
|
||||
"accessibility/browser_accessibility_manager_win.cc",
|
||||
"accessibility/browser_accessibility_manager_win.h",
|
||||
"accessibility/browser_accessibility_state_impl_win.cc",
|
||||
"accessibility/browser_accessibility_win.cc",
|
||||
"accessibility/browser_accessibility_win.h",
|
||||
"child_process_launcher_helper_win.cc",
|
||||
"device_posture/device_posture_platform_provider_win.cc",
|
||||
"device_posture/device_posture_platform_provider_win.h",
|
||||
@ -3066,13 +3040,6 @@ source_set("browser") {
|
||||
}
|
||||
|
||||
if (use_atk) {
|
||||
sources += [
|
||||
"accessibility/browser_accessibility_auralinux.cc",
|
||||
"accessibility/browser_accessibility_auralinux.h",
|
||||
"accessibility/browser_accessibility_manager_auralinux.cc",
|
||||
"accessibility/browser_accessibility_manager_auralinux.h",
|
||||
]
|
||||
|
||||
configs += [
|
||||
"//build/config/linux/atk",
|
||||
"//build/config/linux/atspi2",
|
||||
|
@ -17,8 +17,6 @@
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
@ -37,6 +35,8 @@
|
||||
#include "ui/accessibility/ax_enums.mojom.h"
|
||||
#include "ui/accessibility/ax_node_position.h"
|
||||
#include "ui/accessibility/mojom/ax_tree_data.mojom-shared-internal.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/gfx/codec/png_codec.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
@ -55,20 +55,21 @@ class AccessibilityActionBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
protected:
|
||||
BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
CHECK(root);
|
||||
return FindNodeInSubtree(*root, role, name_or_value);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() {
|
||||
ui::BrowserAccessibilityManager* GetManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
}
|
||||
|
||||
void GetBitmapFromImageDataURL(BrowserAccessibility* target,
|
||||
void GetBitmapFromImageDataURL(ui::BrowserAccessibility* target,
|
||||
SkBitmap* bitmap) {
|
||||
std::string image_data_url =
|
||||
target->GetStringAttribute(ax::mojom::StringAttribute::kImageDataUrl);
|
||||
@ -95,7 +96,7 @@ class AccessibilityActionBrowserTest : public ContentBrowserTest {
|
||||
std::ignore = waiter.WaitForNotification();
|
||||
}
|
||||
|
||||
void ScrollNodeIntoView(BrowserAccessibility* node,
|
||||
void ScrollNodeIntoView(ui::BrowserAccessibility* node,
|
||||
ax::mojom::ScrollAlignment horizontal_alignment,
|
||||
ax::mojom::ScrollAlignment vertical_alignment,
|
||||
bool wait_for_event = true) {
|
||||
@ -124,7 +125,7 @@ class AccessibilityActionBrowserTest : public ContentBrowserTest {
|
||||
will_scroll_horizontally
|
||||
? ui::AXEventGenerator::Event::SCROLL_HORIZONTAL_POSITION_CHANGED
|
||||
: ui::AXEventGenerator::Event::SCROLL_VERTICAL_POSITION_CHANGED);
|
||||
BrowserAccessibility* document =
|
||||
ui::BrowserAccessibility* document =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::AXActionData action_data;
|
||||
action_data.target_node_id = document->GetData().id;
|
||||
@ -135,9 +136,10 @@ class AccessibilityActionBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
const std::string& name =
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
// Note that in the case of a text field,
|
||||
@ -154,7 +156,7 @@ class AccessibilityActionBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
@ -189,7 +191,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, DoDefaultAction) {
|
||||
</script>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kButton, "Click");
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kButton, "Click");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
// Call DoDefaultAction.
|
||||
@ -205,7 +208,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, DoDefaultAction) {
|
||||
|
||||
// When calling DoDefault on a focusable element, the element should get
|
||||
// focused, just like what happens when you click it with the mouse.
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ASSERT_NE(nullptr, focus);
|
||||
EXPECT_EQ(target->GetId(), focus->GetId());
|
||||
}
|
||||
@ -257,7 +260,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusAction) {
|
||||
<button>Three</button>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kButton, "One");
|
||||
ui::BrowserAccessibility* target = FindNode(ax::mojom::Role::kButton, "One");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(
|
||||
@ -265,7 +268,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusAction) {
|
||||
GetManager()->SetFocus(*target);
|
||||
ASSERT_TRUE(waiter2.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ASSERT_NE(nullptr, focus);
|
||||
EXPECT_EQ(target->GetId(), focus->GetId());
|
||||
}
|
||||
@ -277,7 +280,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, BlurAction) {
|
||||
<button>Three</button>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kButton, "One");
|
||||
ui::BrowserAccessibility* target = FindNode(ax::mojom::Role::kButton, "One");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
// First, set the focus.
|
||||
@ -286,7 +289,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, BlurAction) {
|
||||
GetManager()->SetFocus(*target);
|
||||
ASSERT_TRUE(waiter1.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ASSERT_NE(nullptr, focus);
|
||||
EXPECT_EQ(target->GetId(), focus->GetId());
|
||||
|
||||
@ -315,7 +318,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
<input type=range min=2 value=8 max=10 step=2>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kSlider, "");
|
||||
ui::BrowserAccessibility* target = FindNode(ax::mojom::Role::kSlider, "");
|
||||
ASSERT_NE(nullptr, target);
|
||||
EXPECT_EQ(8.0, target->GetFloatAttribute(
|
||||
ax::mojom::FloatAttribute::kValueForRange));
|
||||
@ -365,7 +368,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, VerticalScroll) {
|
||||
</div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kGroup, "shakespeare");
|
||||
EXPECT_NE(target, nullptr);
|
||||
|
||||
@ -420,7 +423,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, HorizontalScroll) {
|
||||
</div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kGroup, "shakespeare");
|
||||
EXPECT_NE(target, nullptr);
|
||||
|
||||
@ -495,7 +498,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityCanvasActionBrowserTest,
|
||||
</body>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kCanvas, "canvas");
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kCanvas, "canvas");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(shell()->web_contents(),
|
||||
@ -542,7 +546,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityCanvasActionBrowserTest,
|
||||
</body>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kCanvas, "canvas");
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kCanvas, "canvas");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(shell()->web_contents(),
|
||||
@ -583,7 +588,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ImgElementGetImage) {
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kImage, "");
|
||||
ui::BrowserAccessibility* target = FindNode(ax::mojom::Role::kImage, "");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(shell()->web_contents(),
|
||||
@ -612,7 +617,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
<div><button>After</button></div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "Editable text");
|
||||
ASSERT_NE(nullptr, target);
|
||||
|
||||
@ -621,7 +626,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
GetManager()->DoDefaultAction(*target);
|
||||
ASSERT_TRUE(waiter2.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
EXPECT_EQ(focus->GetId(), target->GetId());
|
||||
}
|
||||
|
||||
@ -630,7 +635,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, InputSetValue) {
|
||||
<input aria-label="Answer" value="Before">
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kTextField, "Answer");
|
||||
ASSERT_NE(nullptr, target);
|
||||
EXPECT_EQ(u"Before", target->GetValueForControl());
|
||||
@ -649,7 +654,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, TextareaSetValue) {
|
||||
<textarea aria-label="Answer">Before</textarea>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kTextField, "Answer");
|
||||
ASSERT_NE(nullptr, target);
|
||||
EXPECT_EQ(u"Before", target->GetValueForControl());
|
||||
@ -668,9 +673,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, TextareaSetValue) {
|
||||
// We should do it with accessibility flags instead. http://crbug.com/672205
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
// Check that it really does contain two lines.
|
||||
BrowserAccessibility::AXPosition start_position =
|
||||
ui::BrowserAccessibility::AXPosition start_position =
|
||||
target->CreateTextPositionAt(0);
|
||||
BrowserAccessibility::AXPosition end_of_line_1 =
|
||||
ui::BrowserAccessibility::AXPosition end_of_line_1 =
|
||||
start_position->CreateNextLineEndPosition(
|
||||
{ui::AXBoundaryBehavior::kCrossBoundary,
|
||||
ui::AXBoundaryDetection::kDontCheckInitialPosition});
|
||||
@ -684,7 +689,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
<div contenteditable aria-label="Answer">Before</div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "Answer");
|
||||
ASSERT_NE(nullptr, target);
|
||||
EXPECT_EQ(u"Before", target->GetValueForControl());
|
||||
@ -703,9 +708,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
// We should do it with accessibility flags instead. http://crbug.com/672205
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
// Check that it really does contain two lines.
|
||||
BrowserAccessibility::AXPosition start_position =
|
||||
ui::BrowserAccessibility::AXPosition start_position =
|
||||
target->CreateTextPositionAt(0);
|
||||
BrowserAccessibility::AXPosition end_of_line_1 =
|
||||
ui::BrowserAccessibility::AXPosition end_of_line_1 =
|
||||
start_position->CreateNextLineEndPosition(
|
||||
{ui::AXBoundaryBehavior::kCrossBoundary,
|
||||
ui::AXBoundaryDetection::kDontCheckInitialPosition});
|
||||
@ -719,7 +724,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ShowContextMenu) {
|
||||
<a href="about:blank">2</a>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target_node = FindNode(ax::mojom::Role::kLink, "2");
|
||||
ui::BrowserAccessibility* target_node = FindNode(ax::mojom::Role::kLink, "2");
|
||||
EXPECT_NE(target_node, nullptr);
|
||||
|
||||
// Create a ContextMenuInterceptor to intercept the ShowContextMenu event
|
||||
@ -748,7 +753,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
This is a <br><br><br><br>multiline link.</a>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kLink, "This is a multiline link.");
|
||||
EXPECT_NE(target_node, nullptr);
|
||||
|
||||
@ -785,7 +790,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
Offscreen</a></div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kLink, "Offscreen");
|
||||
EXPECT_NE(target_node, nullptr);
|
||||
|
||||
@ -819,7 +824,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
left: 0px; background-color:red; line-height: 16px"></div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kLink, "Obscured");
|
||||
EXPECT_NE(target_node, nullptr);
|
||||
|
||||
@ -874,10 +879,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* cell1 = FindNode(ax::mojom::Role::kGridCell, "A");
|
||||
ui::BrowserAccessibility* cell1 = FindNode(ax::mojom::Role::kGridCell, "A");
|
||||
ASSERT_NE(nullptr, cell1);
|
||||
|
||||
BrowserAccessibility* cell2 = FindNode(ax::mojom::Role::kGridCell, "B");
|
||||
ui::BrowserAccessibility* cell2 = FindNode(ax::mojom::Role::kGridCell, "B");
|
||||
ASSERT_NE(nullptr, cell2);
|
||||
|
||||
// Initial state
|
||||
@ -945,13 +950,13 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kRadioGroup, "group");
|
||||
ASSERT_NE(nullptr, target);
|
||||
BrowserAccessibility* radio1 =
|
||||
ui::BrowserAccessibility* radio1 =
|
||||
FindNode(ax::mojom::Role::kRadioButton, "radio1");
|
||||
ASSERT_NE(nullptr, radio1);
|
||||
BrowserAccessibility* radio2 =
|
||||
ui::BrowserAccessibility* radio2 =
|
||||
FindNode(ax::mojom::Role::kRadioButton, "radio2");
|
||||
ASSERT_NE(nullptr, radio2);
|
||||
|
||||
@ -987,7 +992,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusLostOnDeletedNode) {
|
||||
const std::string& focus_node_script) {
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
node_name);
|
||||
BrowserAccessibility* node = FindNode(ax::mojom::Role::kButton, node_name);
|
||||
ui::BrowserAccessibility* node =
|
||||
FindNode(ax::mojom::Role::kButton, node_name);
|
||||
ASSERT_NE(nullptr, node);
|
||||
|
||||
EXPECT_TRUE(ExecJs(shell(), focus_node_script));
|
||||
@ -1063,7 +1069,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
EXPECT_EQ(shell()->web_contents()->GetFocusedFrame(), inner_iframe.get());
|
||||
// WaitForAccessibilityTreeToContainNodeWithName seems to flake when waiting
|
||||
// for button 3, so we poll instead.
|
||||
BrowserAccessibility* node_button_3 = FindNode(ax::mojom::Role::kButton, "3");
|
||||
ui::BrowserAccessibility* node_button_3 =
|
||||
FindNode(ax::mojom::Role::kButton, "3");
|
||||
EXPECT_TRUE(base::test::RunUntil([&]() {
|
||||
node_button_3 = FindNode(ax::mojom::Role::kButton, "3");
|
||||
return node_button_3 != nullptr;
|
||||
@ -1137,7 +1144,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ScrollIntoView) {
|
||||
</html>"
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
gfx::Rect doc_bounds = root->GetClippedScreenBoundsRect();
|
||||
|
||||
int one_third_doc_height = base::ClampRound(doc_bounds.height() / 3.0f);
|
||||
@ -1153,7 +1160,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ScrollIntoView) {
|
||||
gfx::Rect doc_right_third = doc_left_third;
|
||||
doc_right_third.set_x(doc_bounds.right() - one_third_doc_width);
|
||||
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kGroup, "target");
|
||||
EXPECT_NE(target_node, nullptr);
|
||||
|
||||
@ -1275,11 +1282,11 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, StitchChildTree) {
|
||||
</html>"
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* link = FindNode(ax::mojom::Role::kLink,
|
||||
/*name_or_value=*/"Link");
|
||||
ui::BrowserAccessibility* link = FindNode(ax::mojom::Role::kLink,
|
||||
/*name_or_value=*/"Link");
|
||||
ASSERT_NE(nullptr, link);
|
||||
ASSERT_EQ(1u, link->PlatformChildCount());
|
||||
BrowserAccessibility* paragraph = link->PlatformGetChild(0u);
|
||||
ui::BrowserAccessibility* paragraph = link->PlatformGetChild(0u);
|
||||
ASSERT_NE(nullptr, paragraph);
|
||||
EXPECT_EQ(ax::mojom::Role::kParagraph, paragraph->node()->GetRole());
|
||||
|
||||
@ -1382,7 +1389,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, ClickSVG) {
|
||||
|
||||
AccessibilityNotificationWaiter click_waiter(
|
||||
shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kClicked);
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kSvgRoot, "svg");
|
||||
ASSERT_NE(target_node, nullptr);
|
||||
EXPECT_EQ(1U, target_node->PlatformChildCount());
|
||||
@ -1410,7 +1417,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest,
|
||||
|
||||
AccessibilityNotificationWaiter click_waiter(
|
||||
shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kClicked);
|
||||
BrowserAccessibility* target_node =
|
||||
ui::BrowserAccessibility* target_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Content");
|
||||
ASSERT_NE(target_node, nullptr);
|
||||
GetManager()->DoDefaultAction(*target_node);
|
||||
@ -1431,7 +1438,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, OpenSelectPopup) {
|
||||
</body>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kComboBoxSelect, "One");
|
||||
ASSERT_NE(nullptr, target);
|
||||
EXPECT_EQ(1U, target->InternalChildCount());
|
||||
@ -1444,7 +1451,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, OpenSelectPopup) {
|
||||
#else
|
||||
EXPECT_NE(nullptr, FindNode(ax::mojom::Role::kMenuListPopup, ""));
|
||||
#endif
|
||||
BrowserAccessibility* closed_popup = target->InternalGetChild(0);
|
||||
ui::BrowserAccessibility* closed_popup = target->InternalGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, closed_popup->GetRole());
|
||||
EXPECT_TRUE(closed_popup->HasState(ax::mojom::State::kInvisible));
|
||||
EXPECT_EQ(3U, closed_popup->InternalChildCount());
|
||||
@ -1461,7 +1468,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, OpenSelectPopup) {
|
||||
EXPECT_TRUE(target->HasState(ax::mojom::State::kExpanded));
|
||||
EXPECT_FALSE(target->HasState(ax::mojom::State::kCollapsed));
|
||||
ASSERT_EQ(1U, target->InternalChildCount());
|
||||
BrowserAccessibility* open_popup = target->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* open_popup = target->PlatformGetChild(0);
|
||||
EXPECT_EQ(1U, target->InternalChildCount());
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, open_popup->GetRole());
|
||||
EXPECT_FALSE(open_popup->HasState(ax::mojom::State::kInvisible));
|
||||
@ -1477,9 +1484,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityActionBrowserTest, FocusPermissionElement) {
|
||||
</body>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* invalid_pepc =
|
||||
ui::BrowserAccessibility* invalid_pepc =
|
||||
FindNode(ax::mojom::Role::kButton, "invalid-pepc");
|
||||
BrowserAccessibility* valid_pepc =
|
||||
ui::BrowserAccessibility* valid_pepc =
|
||||
FindNode(ax::mojom::Role::kButton, "valid-pepc");
|
||||
ASSERT_NE(nullptr, invalid_pepc);
|
||||
ASSERT_NE(nullptr, valid_pepc);
|
||||
|
@ -14,7 +14,6 @@
|
||||
#include "base/version.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/accessibility_browsertest.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -23,6 +22,7 @@
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "content/test/content_browser_test_utils_internal.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
// TODO(crbug.com/40248581): Remove this again.
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
@ -270,7 +270,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityAuraLinuxBrowserTest,
|
||||
// Get the BrowserAccessibilityManager.
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, manager);
|
||||
|
||||
@ -2285,7 +2285,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityAuraLinuxBrowserTest,
|
||||
u"document.querySelector('main').style.display = 'inline-block';");
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
manager->SignalEndOfTest();
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
@ -2338,12 +2338,12 @@ IN_PROC_BROWSER_TEST_F(AccessibilityAuraLinuxBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Find a node to hit test. Note that this is a really simple page,
|
||||
// so synchronous hit testing will work fine.
|
||||
BrowserAccessibility* node = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* node = manager->GetBrowserAccessibilityRoot();
|
||||
while (node && node->GetRole() != ax::mojom::Role::kButton)
|
||||
node = manager->NextInTreeOrder(node);
|
||||
DCHECK(node);
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/common/isolated_world_ids.h"
|
||||
@ -16,6 +15,7 @@
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "content/test/content_browser_test_utils_internal.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "net/test/embedded_test_server/embedded_test_server.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
@ -67,48 +67,48 @@ AccessibilityContentBrowserTest::GetWebContentsImplAndAssertNonNull() const {
|
||||
return static_cast<WebContentsImpl*>(GetWebContentsAndAssertNonNull());
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
AccessibilityContentBrowserTest::GetManagerAndAssertNonNull() const {
|
||||
// Perform the null pointer validation inside a void function to allow for a
|
||||
// return type.
|
||||
auto GetManagerAndAssertNonNull =
|
||||
[this](BrowserAccessibilityManager** result) {
|
||||
BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
[this](ui::BrowserAccessibilityManager** result) {
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
GetWebContentsImplAndAssertNonNull()
|
||||
->GetRootBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager);
|
||||
*result = browser_accessibility_manager;
|
||||
};
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager;
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager;
|
||||
GetManagerAndAssertNonNull(&browser_accessibility_manager);
|
||||
return browser_accessibility_manager;
|
||||
}
|
||||
|
||||
BrowserAccessibility* AccessibilityContentBrowserTest::GetRootAndAssertNonNull()
|
||||
const {
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityContentBrowserTest::GetRootAndAssertNonNull() const {
|
||||
// Perform the null pointer validation inside a void function to allow for a
|
||||
// return type.
|
||||
auto GetRootAndAssertNonNull = [this](BrowserAccessibility** result) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
auto GetRootAndAssertNonNull = [this](ui::BrowserAccessibility** result) {
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetManagerAndAssertNonNull()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, result);
|
||||
*result = root_browser_accessibility;
|
||||
};
|
||||
|
||||
BrowserAccessibility* root_browser_accessibility;
|
||||
ui::BrowserAccessibility* root_browser_accessibility;
|
||||
GetRootAndAssertNonNull(&root_browser_accessibility);
|
||||
return root_browser_accessibility;
|
||||
}
|
||||
|
||||
BrowserAccessibility* AccessibilityContentBrowserTest::FindNode(
|
||||
ui::BrowserAccessibility* AccessibilityContentBrowserTest::FindNode(
|
||||
const ax::mojom::Role role,
|
||||
const std::string& name_or_value) const {
|
||||
return FindNodeInSubtree(GetRootAndAssertNonNull(), role, name_or_value);
|
||||
}
|
||||
|
||||
BrowserAccessibility* AccessibilityContentBrowserTest::FindNodeInSubtree(
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* AccessibilityContentBrowserTest::FindNodeInSubtree(
|
||||
ui::BrowserAccessibility* node,
|
||||
const ax::mojom::Role role,
|
||||
const std::string& name_or_value) const {
|
||||
const std::string& name =
|
||||
@ -127,7 +127,7 @@ BrowserAccessibility* AccessibilityContentBrowserTest::FindNodeInSubtree(
|
||||
}
|
||||
|
||||
for (uint32_t i = 0; i < node->PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(node->PlatformGetChild(i), role, name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
|
@ -9,10 +9,13 @@
|
||||
#include "ui/accessibility/ax_enums.mojom-forward.h"
|
||||
#include "ui/accessibility/ax_mode.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
namespace ui {
|
||||
class BrowserAccessibility;
|
||||
class BrowserAccessibilityManager;
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
|
||||
class WebContents;
|
||||
class WebContentsImpl;
|
||||
|
||||
@ -34,16 +37,16 @@ class AccessibilityContentBrowserTest : public ContentBrowserTest {
|
||||
|
||||
WebContentsImpl* GetWebContentsImplAndAssertNonNull() const;
|
||||
|
||||
BrowserAccessibilityManager* GetManagerAndAssertNonNull() const;
|
||||
ui::BrowserAccessibilityManager* GetManagerAndAssertNonNull() const;
|
||||
|
||||
BrowserAccessibility* GetRootAndAssertNonNull() const;
|
||||
ui::BrowserAccessibility* GetRootAndAssertNonNull() const;
|
||||
|
||||
BrowserAccessibility* FindNode(const ax::mojom::Role role,
|
||||
const std::string& name_or_value) const;
|
||||
ui::BrowserAccessibility* FindNode(const ax::mojom::Role role,
|
||||
const std::string& name_or_value) const;
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
ui::BrowserAccessibility* node,
|
||||
const ax::mojom::Role role,
|
||||
const std::string& name_or_value) const;
|
||||
};
|
||||
|
@ -3,7 +3,6 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/renderer_host/render_view_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_base.h"
|
||||
@ -23,6 +22,7 @@
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/ax_mode.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
@ -36,30 +36,30 @@ class AccessibilityModeTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
protected:
|
||||
const BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
CHECK(root);
|
||||
return FindNodeInSubtree(*root, role, name);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() {
|
||||
ui::BrowserAccessibilityManager* GetManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
}
|
||||
|
||||
private:
|
||||
const BrowserAccessibility* FindNodeInSubtree(
|
||||
const BrowserAccessibility& node,
|
||||
const ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
const ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
if (node.GetRole() == role &&
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName) == name)
|
||||
return &node;
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
const BrowserAccessibility* result =
|
||||
const ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name);
|
||||
if (result)
|
||||
return result;
|
||||
@ -189,11 +189,11 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
const BrowserAccessibility* text =
|
||||
const ui::BrowserAccessibility* text =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Para");
|
||||
ASSERT_NE(nullptr, text);
|
||||
ASSERT_EQ(1U, text->InternalChildCount());
|
||||
BrowserAccessibility* inline_text = text->InternalGetChild(0);
|
||||
ui::BrowserAccessibility* inline_text = text->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, inline_text);
|
||||
EXPECT_EQ(ax::mojom::Role::kInlineTextBox, inline_text->GetRole());
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
@ -214,7 +214,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
const BrowserAccessibility* text =
|
||||
const ui::BrowserAccessibility* text =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Para");
|
||||
ASSERT_NE(nullptr, text);
|
||||
EXPECT_EQ(0U, text->InternalChildCount());
|
||||
@ -232,7 +232,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddScreenReaderModeFlag) {
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
const BrowserAccessibility* textbox =
|
||||
const ui::BrowserAccessibility* textbox =
|
||||
FindNode(ax::mojom::Role::kTextField, "Foo");
|
||||
ASSERT_NE(nullptr, textbox);
|
||||
EXPECT_FALSE(
|
||||
@ -244,7 +244,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddScreenReaderModeFlag) {
|
||||
ScopedAccessibilityModeOverride ax_mode_override(ui::AXMode::kScreenReader);
|
||||
ASSERT_TRUE(waiter2.WaitForNotification());
|
||||
|
||||
const BrowserAccessibility* textbox2 =
|
||||
const ui::BrowserAccessibility* textbox2 =
|
||||
FindNode(ax::mojom::Role::kTextField, "Foo");
|
||||
ASSERT_NE(nullptr, textbox2);
|
||||
EXPECT_TRUE(
|
||||
@ -321,10 +321,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, ReEnablingDoesNotAlterUniqueIds) {
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kNativeAPIs));
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kWebContents));
|
||||
EXPECT_NE(nullptr, GetManager());
|
||||
const BrowserAccessibility* button_1 =
|
||||
const ui::BrowserAccessibility* button_1 =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 1");
|
||||
ASSERT_NE(nullptr, button_1);
|
||||
const BrowserAccessibility* button_2 =
|
||||
const ui::BrowserAccessibility* button_2 =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 2");
|
||||
ASSERT_NE(nullptr, button_2);
|
||||
|
||||
@ -350,13 +350,13 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, ReEnablingDoesNotAlterUniqueIds) {
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kNativeAPIs));
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kWebContents));
|
||||
EXPECT_NE(nullptr, GetManager());
|
||||
const BrowserAccessibility* button_1_refresh =
|
||||
const ui::BrowserAccessibility* button_1_refresh =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 1");
|
||||
ASSERT_NE(nullptr, button_1_refresh);
|
||||
// button_1 is now a dangling pointer for the old button.
|
||||
// The pointers are not the same, proving that button_1_refresh is new.
|
||||
ASSERT_NE(button_1, button_1_refresh);
|
||||
const BrowserAccessibility* button_2_refresh =
|
||||
const ui::BrowserAccessibility* button_2_refresh =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 2");
|
||||
ASSERT_NE(nullptr, button_2_refresh);
|
||||
// button_2 is now a dangling pointer for the old button.
|
||||
|
@ -140,7 +140,7 @@ void AccessibilityTreeFormatterAndroid::RecursiveBuildTree(
|
||||
static_cast<const BrowserAccessibilityAndroid*>(&node);
|
||||
|
||||
for (size_t i = 0; i < android_node->PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* child_node = android_node->PlatformGetChild(i);
|
||||
ui::BrowserAccessibility* child_node = android_node->PlatformGetChild(i);
|
||||
CHECK(child_node);
|
||||
base::Value::Dict child_dict;
|
||||
RecursiveBuildTree(*child_node, &child_dict);
|
||||
|
@ -50,7 +50,7 @@ void AccessibilityTreeFormatterAndroidExternal::RecursiveBuildTree(
|
||||
base::Value::List children;
|
||||
|
||||
for (size_t i = 0; i < node.GetChildCount(); ++i) {
|
||||
BrowserAccessibility* child_node = android_node->PlatformGetChild(i);
|
||||
ui::BrowserAccessibility* child_node = android_node->PlatformGetChild(i);
|
||||
base::Value::Dict child_dict;
|
||||
RecursiveBuildTree(*child_node, &child_dict);
|
||||
children.Append(std::move(child_dict));
|
||||
|
@ -14,12 +14,12 @@
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/values.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_enums.mojom.h"
|
||||
#include "ui/accessibility/ax_node_data.h"
|
||||
#include "ui/accessibility/ax_selection.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_delegate.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/compute_attributes.h"
|
||||
#include "ui/gfx/geometry/rect_conversions.h"
|
||||
#include "ui/gfx/geometry/transform.h"
|
||||
@ -253,8 +253,8 @@ base::Value::Dict AccessibilityTreeFormatterBlink::BuildTree(
|
||||
return base::Value::Dict();
|
||||
}
|
||||
|
||||
BrowserAccessibility* root_internal =
|
||||
BrowserAccessibility::FromAXPlatformNodeDelegate(root);
|
||||
ui::BrowserAccessibility* root_internal =
|
||||
ui::BrowserAccessibility::FromAXPlatformNodeDelegate(root);
|
||||
base::Value::Dict dict;
|
||||
RecursiveBuildTree(*root_internal, &dict);
|
||||
return dict;
|
||||
@ -278,7 +278,8 @@ base::Value::Dict AccessibilityTreeFormatterBlink::BuildNode(
|
||||
ui::AXPlatformNodeDelegate* node) const {
|
||||
CHECK(node);
|
||||
base::Value::Dict dict;
|
||||
AddProperties(*BrowserAccessibility::FromAXPlatformNodeDelegate(node), &dict);
|
||||
AddProperties(*ui::BrowserAccessibility::FromAXPlatformNodeDelegate(node),
|
||||
&dict);
|
||||
return dict;
|
||||
}
|
||||
|
||||
@ -292,7 +293,7 @@ std::string AccessibilityTreeFormatterBlink::DumpInternalAccessibilityTree(
|
||||
}
|
||||
|
||||
void AccessibilityTreeFormatterBlink::RecursiveBuildTree(
|
||||
const BrowserAccessibility& node,
|
||||
const ui::BrowserAccessibility& node,
|
||||
base::Value::Dict* dict) const {
|
||||
if (!ShouldDumpNode(node))
|
||||
return;
|
||||
@ -325,7 +326,7 @@ void AccessibilityTreeFormatterBlink::RecursiveBuildTree(
|
||||
}
|
||||
|
||||
void AccessibilityTreeFormatterBlink::AddProperties(
|
||||
const BrowserAccessibility& node,
|
||||
const ui::BrowserAccessibility& node,
|
||||
base::Value::Dict* dict) const {
|
||||
int id = node.GetId();
|
||||
dict->Set("id", id);
|
||||
@ -424,7 +425,7 @@ void AccessibilityTreeFormatterBlink::AddProperties(
|
||||
base::Value::List value_list;
|
||||
for (const int& value : values) {
|
||||
if (ui::IsNodeIdIntListAttribute(attr)) {
|
||||
BrowserAccessibility* target = node.manager()->GetFromID(value);
|
||||
ui::BrowserAccessibility* target = node.manager()->GetFromID(value);
|
||||
if (target)
|
||||
value_list.Append(ui::ToString(target->GetRole()));
|
||||
else
|
||||
|
@ -11,9 +11,12 @@
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_tree_formatter_base.h"
|
||||
|
||||
namespace ui {
|
||||
class BrowserAccessibility;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
|
||||
class BrowserAccessibility;
|
||||
|
||||
class CONTENT_EXPORT AccessibilityTreeFormatterBlink
|
||||
: public ui::AXTreeFormatterBase {
|
||||
@ -34,7 +37,7 @@ class CONTENT_EXPORT AccessibilityTreeFormatterBlink
|
||||
std::vector<AXPropertyFilter>* property_filters) override;
|
||||
|
||||
private:
|
||||
void RecursiveBuildTree(const BrowserAccessibility& node,
|
||||
void RecursiveBuildTree(const ui::BrowserAccessibility& node,
|
||||
base::Value::Dict* dict) const;
|
||||
|
||||
void RecursiveBuildTree(const ui::AXNode& node,
|
||||
@ -42,7 +45,7 @@ class CONTENT_EXPORT AccessibilityTreeFormatterBlink
|
||||
|
||||
base::Value::Dict BuildNode(ui::AXPlatformNodeDelegate* node) const override;
|
||||
|
||||
void AddProperties(const BrowserAccessibility& node,
|
||||
void AddProperties(const ui::BrowserAccessibility& node,
|
||||
base::Value::Dict* dict) const;
|
||||
|
||||
void AddProperties(const ui::AXNode& node, base::Value::Dict* dict) const;
|
||||
|
@ -3,11 +3,12 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_fuchsia.h"
|
||||
|
||||
#include "base/notreached.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/values.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_fuchsia.h"
|
||||
#include "ui/accessibility/platform/fuchsia/browser_accessibility_fuchsia.h"
|
||||
|
||||
namespace content {
|
||||
namespace {
|
||||
@ -225,7 +226,8 @@ void AccessibilityTreeFormatterFuchsia::RecursiveBuildTree(
|
||||
base::Value::List children;
|
||||
|
||||
fuchsia_accessibility_semantics::Node fuchsia_node =
|
||||
static_cast<const BrowserAccessibilityFuchsia&>(node).ToFuchsiaNodeData();
|
||||
static_cast<const ui::BrowserAccessibilityFuchsia&>(node)
|
||||
.ToFuchsiaNodeData();
|
||||
|
||||
for (uint32_t child_id : fuchsia_node.child_ids().value()) {
|
||||
ui::AXPlatformNodeFuchsia* child_node =
|
||||
@ -255,8 +257,8 @@ void AccessibilityTreeFormatterFuchsia::AddProperties(
|
||||
base::Value::Dict* dict) const {
|
||||
dict->Set("id", node.GetId());
|
||||
|
||||
const BrowserAccessibilityFuchsia* browser_accessibility_fuchsia =
|
||||
static_cast<const BrowserAccessibilityFuchsia*>(&node);
|
||||
const ui::BrowserAccessibilityFuchsia* browser_accessibility_fuchsia =
|
||||
static_cast<const ui::BrowserAccessibilityFuchsia*>(&node);
|
||||
|
||||
CHECK(browser_accessibility_fuchsia);
|
||||
|
||||
|
@ -30,9 +30,7 @@
|
||||
#include "base/win/scoped_variant.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/accessibility_browsertest.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_win.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "content/browser/renderer_host/render_view_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
@ -59,6 +57,8 @@
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/ax_event_generator.h"
|
||||
#include "ui/accessibility/platform/ax_fragment_root_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_inspect_utils_win.h"
|
||||
#include "ui/accessibility/platform/uia_registrar_win.h"
|
||||
#include "ui/aura/window.h"
|
||||
@ -124,9 +124,9 @@ class AccessibilityWinBrowserTest : public AccessibilityBrowserTest {
|
||||
ui::AXMode accessibility_mode = ui::kAXModeComplete);
|
||||
void SetUpSampleParagraphInScrollableEditable(
|
||||
Microsoft::WRL::ComPtr<IAccessibleText>* accessible_text);
|
||||
BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value);
|
||||
BrowserAccessibilityManager* GetManager();
|
||||
ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value);
|
||||
ui::BrowserAccessibilityManager* GetManager();
|
||||
static Microsoft::WRL::ComPtr<IAccessible> GetAccessibleFromVariant(
|
||||
IAccessible* parent,
|
||||
VARIANT* var);
|
||||
@ -152,9 +152,9 @@ class AccessibilityWinBrowserTest : public AccessibilityBrowserTest {
|
||||
Microsoft::WRL::ComPtr<IAccessibleText>* input_text);
|
||||
void SetUpSampleParagraphHelper(
|
||||
Microsoft::WRL::ComPtr<IAccessibleText>* accessible_text);
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value);
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value);
|
||||
};
|
||||
|
||||
AccessibilityWinBrowserTest::AccessibilityWinBrowserTest() = default;
|
||||
@ -447,17 +447,17 @@ void AccessibilityWinBrowserTest::SetUpSampleParagraphHelper(
|
||||
|
||||
// Retrieve the accessibility node, starting from the root node, that matches
|
||||
// the accessibility role, name or value.
|
||||
BrowserAccessibility* AccessibilityWinBrowserTest::FindNode(
|
||||
ui::BrowserAccessibility* AccessibilityWinBrowserTest::FindNode(
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
CHECK(root);
|
||||
return FindNodeInSubtree(*root, role, name_or_value);
|
||||
}
|
||||
|
||||
// Retrieve the browser accessibility manager object for the current web
|
||||
// contents.
|
||||
BrowserAccessibilityManager* AccessibilityWinBrowserTest::GetManager() {
|
||||
ui::BrowserAccessibilityManager* AccessibilityWinBrowserTest::GetManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetOrCreateRootBrowserAccessibilityManager();
|
||||
@ -465,8 +465,8 @@ BrowserAccessibilityManager* AccessibilityWinBrowserTest::GetManager() {
|
||||
|
||||
// Retrieve the accessibility node in the subtree that matches the accessibility
|
||||
// role, name or value.
|
||||
BrowserAccessibility* AccessibilityWinBrowserTest::FindNodeInSubtree(
|
||||
BrowserAccessibility& node,
|
||||
ui::BrowserAccessibility* AccessibilityWinBrowserTest::FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
const std::string& name =
|
||||
@ -485,7 +485,7 @@ BrowserAccessibility* AccessibilityWinBrowserTest::FindNodeInSubtree(
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
@ -838,7 +838,7 @@ void AccessibilityWinBrowserTest::AccessibleChecker::CheckAccessibleChildren(
|
||||
// event string matches the given match pattern.
|
||||
class NativeWinEventWaiter {
|
||||
public:
|
||||
NativeWinEventWaiter(BrowserAccessibilityManager* manager,
|
||||
NativeWinEventWaiter(ui::BrowserAccessibilityManager* manager,
|
||||
const std::string& match_pattern,
|
||||
ui::AXApiType::Type type = ui::AXApiType::kWinIA2)
|
||||
: event_recorder_(AXInspectFactory::CreateRecorder(
|
||||
@ -870,7 +870,7 @@ class NativeWinEventWaiter {
|
||||
std::unique_ptr<ui::AXEventRecorder> event_recorder_;
|
||||
std::string match_pattern_;
|
||||
base::RunLoop run_loop_;
|
||||
raw_ptr<BrowserAccessibilityManager> browser_accessibility_manager_;
|
||||
raw_ptr<ui::BrowserAccessibilityManager> browser_accessibility_manager_;
|
||||
};
|
||||
|
||||
// Helper class that reproduces a specific crash when UIA parent navigation
|
||||
@ -1188,7 +1188,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, FocusEventOnPageLoad) {
|
||||
GURL html_data_url(
|
||||
"data:text/html," +
|
||||
base::EscapeQueryParamValue(R"HTML(<p> Hello</ p>)HTML", false));
|
||||
BrowserAccessibilityManager::SetFocusChangeCallbackForTesting(
|
||||
ui::BrowserAccessibilityManager::SetFocusChangeCallbackForTesting(
|
||||
run_loop.QuitClosure());
|
||||
EXPECT_TRUE(NavigateToURL(shell(), html_data_url));
|
||||
run_loop.Run(); // Wait for the focus change.
|
||||
@ -1256,7 +1256,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
WaitForAccessibilityFocusChange();
|
||||
ASSERT_TRUE(iframe_waiter.WaitForNotification());
|
||||
|
||||
const BrowserAccessibility* inner_button =
|
||||
const ui::BrowserAccessibility* inner_button =
|
||||
FindNode(ax::mojom::Role::kButton, "Inner button");
|
||||
ASSERT_NE(nullptr, inner_button);
|
||||
const auto* inner_button_win =
|
||||
@ -1293,7 +1293,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
Microsoft::WRL::ComPtr<IAccessible> document(GetRendererAccessible());
|
||||
ASSERT_TRUE(document);
|
||||
|
||||
const BrowserAccessibility* outer_button =
|
||||
const ui::BrowserAccessibility* outer_button =
|
||||
FindNode(ax::mojom::Role::kButton, "Outer button");
|
||||
ASSERT_NE(nullptr, outer_button);
|
||||
const auto* outer_button_win =
|
||||
@ -2289,7 +2289,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
// Inline text boxes should have been enabled by this point but since the tree
|
||||
// has been updated, any previously retrieved IAccessibles would have been
|
||||
// invalidated.
|
||||
BrowserAccessibility* updated_paragraph_text =
|
||||
ui::BrowserAccessibility* updated_paragraph_text =
|
||||
FindNode(ax::mojom::Role::kParagraph, "");
|
||||
ASSERT_NE(nullptr, updated_paragraph_text);
|
||||
auto* updated_paragraph_text_win =
|
||||
@ -3198,7 +3198,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* list_item = FindNode(ax::mojom::Role::kListItem, "");
|
||||
ui::BrowserAccessibility* list_item =
|
||||
FindNode(ax::mojom::Role::kListItem, "");
|
||||
ASSERT_NE(nullptr, list_item);
|
||||
gfx::NativeViewAccessible list_item_win =
|
||||
list_item->GetNativeViewAccessible();
|
||||
@ -3299,9 +3300,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* list_item = FindNode(ax::mojom::Role::kListItem, "");
|
||||
ui::BrowserAccessibility* list_item =
|
||||
FindNode(ax::mojom::Role::kListItem, "");
|
||||
ASSERT_NE(nullptr, list_item);
|
||||
BrowserAccessibility* list = list_item->PlatformGetParent();
|
||||
ui::BrowserAccessibility* list = list_item->PlatformGetParent();
|
||||
ASSERT_NE(nullptr, list);
|
||||
|
||||
gfx::NativeViewAccessible list_item_win =
|
||||
@ -4458,8 +4460,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, HasHWNDAfterNavigation) {
|
||||
|
||||
// At this point the root of the accessibility tree shouldn't have an HWND
|
||||
// because we never gave a parent window to the RWHVA.
|
||||
BrowserAccessibilityManagerWin* manager =
|
||||
static_cast<BrowserAccessibilityManagerWin*>(GetManager());
|
||||
ui::BrowserAccessibilityManagerWin* manager =
|
||||
static_cast<ui::BrowserAccessibilityManagerWin*>(GetManager());
|
||||
ASSERT_EQ(nullptr, manager->GetParentHWND());
|
||||
|
||||
// Now add the RWHVA's window to the root window and ensure that we have
|
||||
@ -4738,7 +4740,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
// that if you cancel a reload, events are no longer suppressed.
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
NativeWinEventWaiter win_event_waiter(
|
||||
manager, "EVENT_OBJECT_FOCUS on <input> role=ROLE_SYSTEM_TEXT*");
|
||||
@ -4816,11 +4818,11 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest, TestIScrollProvider) {
|
||||
{"x", true, false, 50.0, 0.0},
|
||||
{"y", false, true, 0.0, 50.0}};
|
||||
for (auto& expected : all_expected) {
|
||||
BrowserAccessibility* browser_accessibility =
|
||||
ui::BrowserAccessibility* browser_accessibility =
|
||||
FindNode(ax::mojom::Role::kGroup, expected.node_name);
|
||||
EXPECT_NE(browser_accessibility, nullptr);
|
||||
|
||||
BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(browser_accessibility)->GetCOM();
|
||||
Microsoft::WRL::ComPtr<IScrollProvider> scroll_provider;
|
||||
|
||||
@ -4930,10 +4932,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
</table>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kRowHeader, "header");
|
||||
EXPECT_NE(nullptr, target);
|
||||
BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(target)->GetCOM();
|
||||
EXPECT_NE(nullptr, accessibility_com_win);
|
||||
|
||||
@ -4941,7 +4943,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
accessibility_com_win->GetPropertyValue(UIA_IsContentElementPropertyId,
|
||||
result.Receive());
|
||||
|
||||
BrowserAccessibility* child = target->PlatformDeepestFirstChild();
|
||||
ui::BrowserAccessibility* child = target->PlatformDeepestFirstChild();
|
||||
EXPECT_NE(nullptr, child);
|
||||
accessibility_com_win = ToBrowserAccessibilityWin(child)->GetCOM();
|
||||
EXPECT_NE(nullptr, accessibility_com_win);
|
||||
@ -4962,10 +4964,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
<button>offscreen</button>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kButton, "offscreen");
|
||||
EXPECT_NE(nullptr, target);
|
||||
BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(target)->GetCOM();
|
||||
EXPECT_NE(nullptr, accessibility_com_win);
|
||||
|
||||
@ -4992,10 +4994,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
<button>onscreen</button>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kButton, "onscreen");
|
||||
EXPECT_NE(nullptr, target);
|
||||
BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(target)->GetCOM();
|
||||
EXPECT_NE(nullptr, accessibility_com_win);
|
||||
|
||||
@ -5547,9 +5549,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIASelectivelyEnabledBrowserTest,
|
||||
// crbug 703277 is tracking separating this out so that kHTML can be removed
|
||||
// altogether.
|
||||
expected_mode |= ui::AXMode::kHTML;
|
||||
EXPECT_EQ(
|
||||
expected_mode,
|
||||
BrowserAccessibilityStateImpl::GetInstance()->GetAccessibilityMode());
|
||||
EXPECT_EQ(expected_mode, content::BrowserAccessibilityStateImpl::GetInstance()
|
||||
->GetAccessibilityMode());
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
@ -5612,7 +5613,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIABrowserTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL)));
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
web_contents->GetOrCreateRootBrowserAccessibilityManager();
|
||||
|
||||
NativeWinEventWaiter win_event_waiter(
|
||||
@ -5733,7 +5734,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, FixedRuntimeId) {
|
||||
<div id="newParent">bar</div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target = FindNode(ax::mojom::Role::kStaticText, "foo");
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kStaticText, "foo");
|
||||
Microsoft::WRL::ComPtr<IRawElementProviderFragment> target_as_fragment;
|
||||
EXPECT_HRESULT_SUCCEEDED(target->GetNativeViewAccessible()->QueryInterface(
|
||||
IID_PPV_ARGS(&target_as_fragment)));
|
||||
@ -5744,7 +5746,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, FixedRuntimeId) {
|
||||
|
||||
// First verify that the ids of 'target' and 'newParent' are in fact
|
||||
// different.
|
||||
BrowserAccessibility* new_parent =
|
||||
ui::BrowserAccessibility* new_parent =
|
||||
FindNode(ax::mojom::Role::kStaticText, "bar");
|
||||
Microsoft::WRL::ComPtr<IRawElementProviderFragment> new_parent_as_fragment;
|
||||
EXPECT_HRESULT_SUCCEEDED(
|
||||
@ -5867,10 +5869,10 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kNativeAPIs));
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kWebContents));
|
||||
EXPECT_NE(nullptr, GetManager());
|
||||
const BrowserAccessibility* button_1 =
|
||||
const ui::BrowserAccessibility* button_1 =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 1");
|
||||
ASSERT_NE(nullptr, button_1);
|
||||
const BrowserAccessibility* button_2 =
|
||||
const ui::BrowserAccessibility* button_2 =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 2");
|
||||
ASSERT_NE(nullptr, button_2);
|
||||
int32_t unique_id_1 = button_1->GetAXPlatformNode()->GetUniqueId();
|
||||
@ -5894,13 +5896,13 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kNativeAPIs));
|
||||
ASSERT_TRUE(accessibility_mode.has_mode(ui::AXMode::kWebContents));
|
||||
EXPECT_NE(nullptr, GetManager());
|
||||
const BrowserAccessibility* button_1_refresh =
|
||||
const ui::BrowserAccessibility* button_1_refresh =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 1");
|
||||
ASSERT_NE(nullptr, button_1_refresh);
|
||||
// button_1 is now a dangling pointer for the old button.
|
||||
// The pointers are not the same, proving that button_1_refresh is new.
|
||||
ASSERT_NE(button_1, button_1_refresh);
|
||||
const BrowserAccessibility* button_2_refresh =
|
||||
const ui::BrowserAccessibility* button_2_refresh =
|
||||
FindNode(ax::mojom::Role::kButton, "Button 2");
|
||||
ASSERT_NE(nullptr, button_2_refresh);
|
||||
// button_2 is now a dangling pointer for the old button.
|
||||
|
@ -35,7 +35,7 @@ class AndroidGranularityMovementBrowserTest : public ContentBrowserTest {
|
||||
AndroidGranularityMovementBrowserTest() {}
|
||||
~AndroidGranularityMovementBrowserTest() override {}
|
||||
|
||||
BrowserAccessibility* LoadUrlAndGetAccessibilityRoot(const GURL& url) {
|
||||
ui::BrowserAccessibility* LoadUrlAndGetAccessibilityRoot(const GURL& url) {
|
||||
EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL)));
|
||||
|
||||
// Load the page.
|
||||
@ -67,7 +67,7 @@ class AndroidGranularityMovementBrowserTest : public ContentBrowserTest {
|
||||
// and fails (by logging an error and returning the empty string) if
|
||||
// the result when traversing backwards is not the same
|
||||
// (but in reverse order).
|
||||
std::u16string TraverseNodeAtGranularity(BrowserAccessibility* node,
|
||||
std::u16string TraverseNodeAtGranularity(ui::BrowserAccessibility* node,
|
||||
int granularity) {
|
||||
AccessibilityNotificationWaiter waiter(shell()->web_contents(),
|
||||
ui::kAXModeComplete,
|
||||
@ -149,13 +149,13 @@ IN_PROC_BROWSER_TEST_F(AndroidGranularityMovementBrowserTest,
|
||||
"<button aria-label='Seven, eight, nine!'>Four, five, six!</button>"
|
||||
"</p>"
|
||||
"</body></html>");
|
||||
BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ui::BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ASSERT_EQ(2U, root->PlatformChildCount());
|
||||
BrowserAccessibility* para = root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(0U, para->PlatformChildCount());
|
||||
BrowserAccessibility* button_container = root->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* button_container = root->PlatformGetChild(1);
|
||||
ASSERT_EQ(1U, button_container->PlatformChildCount());
|
||||
BrowserAccessibility* button = button_container->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* button = button_container->PlatformGetChild(0);
|
||||
ASSERT_EQ(0U, button->PlatformChildCount());
|
||||
|
||||
EXPECT_EQ(
|
||||
@ -177,13 +177,13 @@ IN_PROC_BROWSER_TEST_F(AndroidGranularityMovementBrowserTest, NavigateByWords) {
|
||||
"<button aria-label='Seven, eight, nine!'>Four, five, six!</button>"
|
||||
"</p>"
|
||||
"</body></html>");
|
||||
BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ui::BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ASSERT_EQ(2U, root->PlatformChildCount());
|
||||
BrowserAccessibility* para = root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(0U, para->PlatformChildCount());
|
||||
BrowserAccessibility* button_container = root->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* button_container = root->PlatformGetChild(1);
|
||||
ASSERT_EQ(1U, button_container->PlatformChildCount());
|
||||
BrowserAccessibility* button = button_container->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* button = button_container->PlatformGetChild(0);
|
||||
ASSERT_EQ(0U, button->PlatformChildCount());
|
||||
|
||||
EXPECT_EQ(u"'One', ',', 'two', ',', 'three', '!'",
|
||||
@ -198,9 +198,9 @@ IN_PROC_BROWSER_TEST_F(AndroidGranularityMovementBrowserTest, NavigateByLine) {
|
||||
"<body>"
|
||||
"<pre>One,%0dtwo,%0dthree!</pre>"
|
||||
"</body>");
|
||||
BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ui::BrowserAccessibility* root = LoadUrlAndGetAccessibilityRoot(url);
|
||||
ASSERT_EQ(1U, root->PlatformChildCount());
|
||||
BrowserAccessibility* pre = root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* pre = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(0U, pre->PlatformChildCount());
|
||||
|
||||
EXPECT_EQ(u"'One,', 'two,', 'three!'",
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
#include "base/check.h"
|
||||
#include "base/command_line.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -18,6 +16,8 @@
|
||||
#include "net/base/data_url.h"
|
||||
#include "net/test/embedded_test_server/embedded_test_server.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
namespace content {
|
||||
@ -35,28 +35,29 @@ class AccessibilityObjectModelBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
protected:
|
||||
BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
CHECK(root);
|
||||
return FindNodeInSubtree(*root, role, name);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() {
|
||||
ui::BrowserAccessibilityManager* GetManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name) {
|
||||
if (node.GetRole() == role &&
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName) == name)
|
||||
return &node;
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name);
|
||||
if (result)
|
||||
return result;
|
||||
@ -81,10 +82,11 @@ IN_PROC_BROWSER_TEST_F(AccessibilityObjectModelBrowserTest,
|
||||
EXPECT_TRUE(NavigateToURL(shell(), url));
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* button = FindNode(ax::mojom::Role::kButton, "FocusMe");
|
||||
ui::BrowserAccessibility* button =
|
||||
FindNode(ax::mojom::Role::kButton, "FocusMe");
|
||||
ASSERT_NE(nullptr, button);
|
||||
|
||||
BrowserAccessibility* link = FindNode(ax::mojom::Role::kLink, "ClickMe");
|
||||
ui::BrowserAccessibility* link = FindNode(ax::mojom::Role::kLink, "ClickMe");
|
||||
ASSERT_NE(nullptr, link);
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(
|
||||
@ -92,7 +94,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityObjectModelBrowserTest,
|
||||
GetManager()->DoDefaultAction(*link);
|
||||
ASSERT_TRUE(waiter2.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ASSERT_NE(nullptr, focus);
|
||||
EXPECT_EQ(button->GetId(), focus->GetId());
|
||||
}
|
||||
|
@ -7,9 +7,7 @@
|
||||
#pragma allow_unsafe_buffers
|
||||
#endif
|
||||
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_textprovider_win.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h"
|
||||
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
@ -17,16 +15,18 @@
|
||||
#include "base/win/scoped_bstr.h"
|
||||
#include "base/win/scoped_safearray.h"
|
||||
#include "base/win/scoped_variant.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_com_win.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "content/public/test/content_browser_test.h"
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "net/test/embedded_test_server/embedded_test_server.h"
|
||||
#include "testing/gmock/include/gmock/gmock-matchers.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_com_win.h"
|
||||
|
||||
using Microsoft::WRL::ComPtr;
|
||||
|
||||
@ -84,44 +84,44 @@ class AXPlatformNodeTextProviderWinBrowserTest : public ContentBrowserTest {
|
||||
accessibility_mode);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManagerAndAssertNonNull() {
|
||||
ui::BrowserAccessibilityManager* GetManagerAndAssertNonNull() {
|
||||
auto GetManagerAndAssertNonNull =
|
||||
[this](BrowserAccessibilityManager** result) {
|
||||
[this](ui::BrowserAccessibilityManager** result) {
|
||||
WebContentsImpl* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
ASSERT_NE(nullptr, web_contents_impl);
|
||||
BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager);
|
||||
*result = browser_accessibility_manager;
|
||||
};
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager;
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager;
|
||||
GetManagerAndAssertNonNull(&browser_accessibility_manager);
|
||||
return browser_accessibility_manager;
|
||||
}
|
||||
|
||||
BrowserAccessibility* GetRootAndAssertNonNull() {
|
||||
auto GetRootAndAssertNonNull = [this](BrowserAccessibility** result) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* GetRootAndAssertNonNull() {
|
||||
auto GetRootAndAssertNonNull = [this](ui::BrowserAccessibility** result) {
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetManagerAndAssertNonNull()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, result);
|
||||
*result = root_browser_accessibility;
|
||||
};
|
||||
|
||||
BrowserAccessibility* root_browser_accessibility;
|
||||
ui::BrowserAccessibility* root_browser_accessibility;
|
||||
GetRootAndAssertNonNull(&root_browser_accessibility);
|
||||
return root_browser_accessibility;
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
return FindNodeInSubtree(*GetRootAndAssertNonNull(), role, name_or_value);
|
||||
}
|
||||
|
||||
void GetTextProviderFromTextNode(
|
||||
ComPtr<ITextProvider>& text_provider,
|
||||
BrowserAccessibility* target_browser_accessibility) {
|
||||
ui::BrowserAccessibility* target_browser_accessibility) {
|
||||
auto* provider_simple =
|
||||
ToBrowserAccessibilityWin(target_browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, provider_simple);
|
||||
@ -132,9 +132,10 @@ class AXPlatformNodeTextProviderWinBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
const std::string& name =
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
// Note that in the case of a text field,
|
||||
@ -151,7 +152,7 @@ class AXPlatformNodeTextProviderWinBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
|
@ -15,9 +15,6 @@
|
||||
#include "base/win/scoped_safearray.h"
|
||||
#include "base/win/scoped_variant.h"
|
||||
#include "content/browser/accessibility/accessibility_content_browsertest.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_com_win.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
@ -31,6 +28,9 @@
|
||||
#include "ui/accessibility/ax_node_position.h"
|
||||
#include "ui/accessibility/ax_selection.h"
|
||||
#include "ui/accessibility/ax_tree_id.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_com_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
using Microsoft::WRL::ComPtr;
|
||||
|
||||
@ -140,16 +140,16 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
observer.Wait();
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() const {
|
||||
ui::BrowserAccessibilityManager* GetManager() const {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
}
|
||||
|
||||
void GetTextRangeProviderFromTextNode(
|
||||
BrowserAccessibility& target_node,
|
||||
ui::BrowserAccessibility& target_node,
|
||||
ITextRangeProvider** text_range_provider) {
|
||||
BrowserAccessibilityComWin* target_node_com =
|
||||
ui::BrowserAccessibilityComWin* target_node_com =
|
||||
ToBrowserAccessibilityWin(&target_node)->GetCOM();
|
||||
ASSERT_NE(nullptr, target_node_com);
|
||||
|
||||
@ -187,19 +187,19 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
// bottom viewport alignment
|
||||
void ScrollIntoViewBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_start_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)() const,
|
||||
const ax::mojom::Role expected_end_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)() const,
|
||||
const bool align_to_top) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
|
||||
BrowserAccessibility* browser_accessibility_start =
|
||||
ui::BrowserAccessibility* browser_accessibility_start =
|
||||
(root_browser_accessibility->*fstart)();
|
||||
ASSERT_NE(nullptr, browser_accessibility_start);
|
||||
ASSERT_EQ(expected_start_role, browser_accessibility_start->GetRole());
|
||||
|
||||
BrowserAccessibility* browser_accessibility_end =
|
||||
ui::BrowserAccessibility* browser_accessibility_end =
|
||||
(root_browser_accessibility->*fend)();
|
||||
ASSERT_NE(nullptr, browser_accessibility_end);
|
||||
ASSERT_EQ(expected_end_role, browser_accessibility_end->GetRole());
|
||||
@ -229,21 +229,22 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
// bottom viewport alignment
|
||||
void ScrollIntoViewBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_start_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)(size_t)
|
||||
const,
|
||||
const size_t fstart_arg,
|
||||
const ax::mojom::Role expected_end_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)(size_t) const,
|
||||
const size_t fend_arg,
|
||||
const bool align_to_top) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
|
||||
BrowserAccessibility* browser_accessibility_start =
|
||||
ui::BrowserAccessibility* browser_accessibility_start =
|
||||
(root_browser_accessibility->*fstart)(fstart_arg);
|
||||
ASSERT_NE(nullptr, browser_accessibility_start);
|
||||
ASSERT_EQ(expected_start_role, browser_accessibility_start->GetRole());
|
||||
|
||||
BrowserAccessibility* browser_accessibility_end =
|
||||
ui::BrowserAccessibility* browser_accessibility_end =
|
||||
(root_browser_accessibility->*fend)(fend_arg);
|
||||
ASSERT_NE(nullptr, browser_accessibility_end);
|
||||
ASSERT_EQ(expected_end_role, browser_accessibility_end->GetRole());
|
||||
@ -255,13 +256,13 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
|
||||
void ScrollIntoViewFromIframeBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_start_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)() const,
|
||||
const ax::mojom::Role expected_end_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)() const,
|
||||
const bool align_to_top) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestLastChild();
|
||||
ASSERT_NE(nullptr, leaf_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kIframe,
|
||||
@ -270,21 +271,21 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
ui::AXTreeID iframe_tree_id = ui::AXTreeID::FromString(
|
||||
leaf_iframe_browser_accessibility->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kChildTreeId));
|
||||
BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ui::BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, iframe_browser_accessibility_manager);
|
||||
BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
iframe_browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
root_iframe_browser_accessibility->GetRole());
|
||||
|
||||
BrowserAccessibility* browser_accessibility_start =
|
||||
ui::BrowserAccessibility* browser_accessibility_start =
|
||||
(root_iframe_browser_accessibility->*fstart)();
|
||||
ASSERT_NE(nullptr, browser_accessibility_start);
|
||||
ASSERT_EQ(expected_start_role, browser_accessibility_start->GetRole());
|
||||
|
||||
BrowserAccessibility* browser_accessibility_end =
|
||||
ui::BrowserAccessibility* browser_accessibility_end =
|
||||
(root_iframe_browser_accessibility->*fend)();
|
||||
ASSERT_NE(nullptr, browser_accessibility_end);
|
||||
ASSERT_EQ(expected_end_role, browser_accessibility_end->GetRole());
|
||||
@ -294,17 +295,18 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
align_to_top);
|
||||
}
|
||||
|
||||
void AssertScrollIntoView(BrowserAccessibility* root_browser_accessibility,
|
||||
BrowserAccessibility* browser_accessibility_start,
|
||||
BrowserAccessibility* browser_accessibility_end,
|
||||
const bool align_to_top) {
|
||||
BrowserAccessibility::AXPosition start =
|
||||
void AssertScrollIntoView(
|
||||
ui::BrowserAccessibility* root_browser_accessibility,
|
||||
ui::BrowserAccessibility* browser_accessibility_start,
|
||||
ui::BrowserAccessibility* browser_accessibility_end,
|
||||
const bool align_to_top) {
|
||||
ui::BrowserAccessibility::AXPosition start =
|
||||
browser_accessibility_start->CreateTextPositionAt(0);
|
||||
BrowserAccessibility::AXPosition end =
|
||||
ui::BrowserAccessibility::AXPosition end =
|
||||
browser_accessibility_end->CreateTextPositionAt(0)
|
||||
->CreatePositionAtEndOfAnchor();
|
||||
|
||||
BrowserAccessibilityComWin* start_browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* start_browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(browser_accessibility_start)->GetCOM();
|
||||
ASSERT_NE(nullptr, start_browser_accessibility_com_win);
|
||||
|
||||
@ -347,25 +349,26 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
|
||||
void ScrollIntoViewTopBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*f)() const) {
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*f)() const) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role, f, expected_role, f, true);
|
||||
}
|
||||
|
||||
void ScrollIntoViewTopBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role_start,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)() const,
|
||||
const ax::mojom::Role expected_role_end,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)() const) {
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)() const) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role_start, fstart,
|
||||
expected_role_end, fend, true);
|
||||
}
|
||||
|
||||
void ScrollIntoViewTopBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role_start,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)(size_t)
|
||||
const,
|
||||
const size_t fstart_arg,
|
||||
const ax::mojom::Role expected_role_end,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)(size_t) const,
|
||||
const size_t fend_arg) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role_start, fstart, fstart_arg,
|
||||
expected_role_end, fend, fend_arg, true);
|
||||
@ -373,26 +376,27 @@ class AXPlatformNodeTextRangeProviderWinBrowserTest
|
||||
|
||||
void ScrollIntoViewBottomBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role,
|
||||
BrowserAccessibility* (BrowserAccessibility::*f)() const) {
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*f)() const) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role, f, expected_role, f,
|
||||
false);
|
||||
}
|
||||
|
||||
void ScrollIntoViewBottomBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role_start,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)() const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)() const,
|
||||
const ax::mojom::Role expected_role_end,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)() const) {
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)() const) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role_start, fstart,
|
||||
expected_role_end, fend, false);
|
||||
}
|
||||
|
||||
void ScrollIntoViewBottomBrowserTestTemplate(
|
||||
const ax::mojom::Role expected_role_start,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fstart)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fstart)(size_t)
|
||||
const,
|
||||
const size_t fstart_arg,
|
||||
const ax::mojom::Role expected_role_end,
|
||||
BrowserAccessibility* (BrowserAccessibility::*fend)(size_t) const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*fend)(size_t) const,
|
||||
const size_t fend_arg) {
|
||||
ScrollIntoViewBrowserTestTemplate(expected_role_start, fstart, fstart_arg,
|
||||
expected_role_end, fend, fend_arg, false);
|
||||
@ -457,44 +461,44 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</html>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* text1_node =
|
||||
ui::BrowserAccessibility* text1_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Text1");
|
||||
ASSERT_NE(nullptr, text1_node);
|
||||
ComPtr<IRawElementProviderSimple> text1_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(text1_node);
|
||||
|
||||
BrowserAccessibility* before_link_text_node =
|
||||
ui::BrowserAccessibility* before_link_text_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Before link");
|
||||
ASSERT_NE(nullptr, before_link_text_node);
|
||||
ComPtr<IRawElementProviderSimple> before_link_text_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(before_link_text_node);
|
||||
|
||||
BrowserAccessibility* link_node =
|
||||
ui::BrowserAccessibility* link_node =
|
||||
FindNode(ax::mojom::Role::kLink,
|
||||
"Link text 1 Link text 2 Link text 3 Link text 4");
|
||||
ASSERT_NE(nullptr, link_node);
|
||||
ComPtr<IRawElementProviderSimple> link_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(link_node);
|
||||
|
||||
BrowserAccessibility* link_text2_node =
|
||||
ui::BrowserAccessibility* link_text2_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Link text 2");
|
||||
ASSERT_NE(nullptr, link_text2_node);
|
||||
ComPtr<IRawElementProviderSimple> link_text2_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(link_text2_node);
|
||||
|
||||
BrowserAccessibility* link_text3_node =
|
||||
ui::BrowserAccessibility* link_text3_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Link text 3");
|
||||
ASSERT_NE(nullptr, link_text3_node);
|
||||
ComPtr<IRawElementProviderSimple> link_text3_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(link_text3_node);
|
||||
|
||||
BrowserAccessibility* after_link_text_node =
|
||||
ui::BrowserAccessibility* after_link_text_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "After link");
|
||||
ASSERT_NE(nullptr, after_link_text_node);
|
||||
ComPtr<IRawElementProviderSimple> after_link_text_raw =
|
||||
QueryInterfaceFromNode<IRawElementProviderSimple>(after_link_text_node);
|
||||
|
||||
BrowserAccessibility* image_node =
|
||||
ui::BrowserAccessibility* image_node =
|
||||
FindNode(ax::mojom::Role::kImage, "Image description");
|
||||
ASSERT_NE(nullptr, image_node);
|
||||
ComPtr<IRawElementProviderSimple> image_raw =
|
||||
@ -597,7 +601,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span>after</span>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -622,7 +626,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<button aria-label="middle"><svg aria-hidden="true"></svg></button>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -643,7 +647,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<button aria-label="middle"><svg aria-hidden="true"></svg></button>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -664,7 +668,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span>after</span>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -685,7 +689,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span>after</span>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -706,7 +710,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span>after</span>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
ComPtr<ITextRangeProvider> text_range_provider;
|
||||
GetTextRangeProviderFromTextNode(*root, &text_range_provider);
|
||||
@ -737,7 +741,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
EXPECT_HRESULT_SUCCEEDED(
|
||||
UiaGetReservedMixedAttributeValue(&mix_attribute_value));
|
||||
|
||||
BrowserAccessibility* node = FindNode(ax::mojom::Role::kStaticText, "Text1");
|
||||
ui::BrowserAccessibility* node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Text1");
|
||||
ASSERT_NE(nullptr, node);
|
||||
EXPECT_TRUE(node->IsLeaf());
|
||||
EXPECT_EQ(0u, node->PlatformChildCount());
|
||||
@ -778,9 +783,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</html>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root = GetRootAndAssertNonNull();
|
||||
|
||||
BrowserAccessibility* input_text_node =
|
||||
ui::BrowserAccessibility* input_text_node =
|
||||
root->InternalGetFirstChild()->InternalGetFirstChild();
|
||||
ASSERT_NE(nullptr, input_text_node);
|
||||
EXPECT_TRUE(input_text_node->IsLeaf());
|
||||
@ -800,7 +805,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
text_range_provider.Reset();
|
||||
value.Reset();
|
||||
|
||||
BrowserAccessibility* input_search_node =
|
||||
ui::BrowserAccessibility* input_search_node =
|
||||
input_text_node->InternalGetNextSibling();
|
||||
ASSERT_NE(nullptr, input_search_node);
|
||||
EXPECT_TRUE(input_search_node->IsLeaf());
|
||||
@ -832,7 +837,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</html>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* input_text_node =
|
||||
ui::BrowserAccessibility* input_text_node =
|
||||
FindNode(ax::mojom::Role::kTextField, "input_text");
|
||||
ASSERT_NE(nullptr, input_text_node);
|
||||
EXPECT_TRUE(input_text_node->IsLeaf());
|
||||
@ -851,7 +856,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
text_range_provider.Reset();
|
||||
value.Reset();
|
||||
|
||||
BrowserAccessibility* input_search_node =
|
||||
ui::BrowserAccessibility* input_search_node =
|
||||
FindNode(ax::mojom::Role::kSearchBox, "input_search");
|
||||
ASSERT_NE(nullptr, input_search_node);
|
||||
EXPECT_TRUE(input_search_node->IsLeaf());
|
||||
@ -902,13 +907,13 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</html>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* text_field_node_1 =
|
||||
ui::BrowserAccessibility* text_field_node_1 =
|
||||
FindNode(ax::mojom::Role::kTextField, "text_field_1");
|
||||
ASSERT_NE(nullptr, text_field_node_1);
|
||||
BrowserAccessibility* text_field_node_2 =
|
||||
ui::BrowserAccessibility* text_field_node_2 =
|
||||
FindNode(ax::mojom::Role::kTextField, "text_field_2");
|
||||
ASSERT_NE(nullptr, text_field_node_2);
|
||||
BrowserAccessibility* text_field_node_3 =
|
||||
ui::BrowserAccessibility* text_field_node_3 =
|
||||
FindNode(ax::mojom::Role::kTextField, "text_field_3");
|
||||
ASSERT_NE(nullptr, text_field_node_3);
|
||||
|
||||
@ -975,7 +980,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
// input, first change the value of the text input and then focus it. Only
|
||||
// editing the value won't show the cursor and only focusing will put the
|
||||
// cursor at the beginning of the text input, so both steps are necessary.
|
||||
BrowserAccessibility* input_text_node =
|
||||
ui::BrowserAccessibility* input_text_node =
|
||||
FindNode(ax::mojom::Role::kTextField, "input_text");
|
||||
ASSERT_NE(nullptr, input_text_node);
|
||||
EXPECT_TRUE(input_text_node->IsLeaf());
|
||||
@ -1042,7 +1047,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
|
||||
// Case 2: Inside of a rich text field, NormalizeTextRange should modify the
|
||||
// text range endpoints.
|
||||
BrowserAccessibility* node = FindNode(ax::mojom::Role::kStaticText, "item");
|
||||
ui::BrowserAccessibility* node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "item");
|
||||
ASSERT_NE(nullptr, node);
|
||||
EXPECT_TRUE(node->IsLeaf());
|
||||
EXPECT_EQ(0u, node->PlatformChildCount());
|
||||
@ -1100,10 +1106,10 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* static_text_node_1 =
|
||||
ui::BrowserAccessibility* static_text_node_1 =
|
||||
FindNode(ax::mojom::Role::kStaticText, "He");
|
||||
ASSERT_NE(nullptr, static_text_node_1);
|
||||
BrowserAccessibility* static_text_node_2 =
|
||||
ui::BrowserAccessibility* static_text_node_2 =
|
||||
FindNode(ax::mojom::Role::kStaticText, "x ");
|
||||
ASSERT_NE(nullptr, static_text_node_2);
|
||||
|
||||
@ -1164,7 +1170,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
// input, first change the value of the text input and then focus it. Only
|
||||
// editing the value won't show the cursor and only focusing will put the
|
||||
// cursor at the beginning of the text input, so both steps are necessary.
|
||||
BrowserAccessibility* input_text_node =
|
||||
ui::BrowserAccessibility* input_text_node =
|
||||
FindNode(ax::mojom::Role::kTextField, "input_text");
|
||||
ASSERT_NE(nullptr, input_text_node);
|
||||
EXPECT_TRUE(input_text_node->IsLeaf());
|
||||
@ -1275,7 +1281,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* node = FindNode(ax::mojom::Role::kStaticText, "Node 1");
|
||||
ui::BrowserAccessibility* node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Node 1");
|
||||
ASSERT_NE(nullptr, node);
|
||||
EXPECT_EQ(0u, node->PlatformChildCount());
|
||||
|
||||
@ -1348,7 +1355,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/text.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1357,7 +1364,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/text.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1366,7 +1373,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/embedded-text.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1375,7 +1382,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/embedded-text.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1384,9 +1391,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/embedded-text.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1395,9 +1402,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/embedded-text.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1405,8 +1412,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
LoadInitialAccessibilityTreeFromHtmlFilePath(
|
||||
"/accessibility/scrolling/table.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kTable, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kTable, &BrowserAccessibility::PlatformGetChild, 0);
|
||||
ax::mojom::Role::kTable, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kTable, &ui::BrowserAccessibility::PlatformGetChild, 0);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1414,8 +1421,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
LoadInitialAccessibilityTreeFromHtmlFilePath(
|
||||
"/accessibility/scrolling/table.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kTable, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kTable, &BrowserAccessibility::PlatformGetChild, 0);
|
||||
ax::mojom::Role::kTable, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kTable, &ui::BrowserAccessibility::PlatformGetChild, 0);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1424,7 +1431,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/table.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1433,7 +1440,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/table.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1442,7 +1449,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/link.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1451,18 +1458,18 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/link.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
ScrollIntoViewTopLinkContainer) {
|
||||
LoadInitialAccessibilityTreeFromHtmlFilePath(
|
||||
"/accessibility/scrolling/link.html");
|
||||
ScrollIntoViewTopBrowserTestTemplate(ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild,
|
||||
0, ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild,
|
||||
0);
|
||||
ScrollIntoViewTopBrowserTestTemplate(
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1471,9 +1478,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"/accessibility/scrolling/link.html");
|
||||
ScrollIntoViewBottomBrowserTestTemplate(
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild, 0,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild, 0);
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1487,9 +1494,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"\"");
|
||||
ScrollIntoViewFromIframeBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild, true);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild, true);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1503,9 +1510,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
"\"");
|
||||
ScrollIntoViewFromIframeBrowserTestTemplate(
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
&ui::BrowserAccessibility::PlatformDeepestFirstChild,
|
||||
ax::mojom::Role::kStaticText,
|
||||
&BrowserAccessibility::PlatformDeepestLastChild, false);
|
||||
&ui::BrowserAccessibility::PlatformDeepestLastChild, false);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
@ -1882,10 +1889,10 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<div>end</div>
|
||||
</body>
|
||||
</html>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "start");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
BrowserAccessibility* end_node =
|
||||
ui::BrowserAccessibility* end_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "end");
|
||||
ASSERT_NE(nullptr, end_node);
|
||||
|
||||
@ -2062,10 +2069,10 @@ IN_PROC_BROWSER_TEST_F(
|
||||
<div>end</div>
|
||||
</body>
|
||||
</html>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "start");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
BrowserAccessibility* end_node =
|
||||
ui::BrowserAccessibility* end_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "end");
|
||||
ASSERT_NE(nullptr, end_node);
|
||||
|
||||
@ -2247,7 +2254,7 @@ IN_PROC_BROWSER_TEST_F(
|
||||
</div>
|
||||
</body>
|
||||
</html>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "start");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
|
||||
@ -2323,10 +2330,10 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<div>end</div>
|
||||
</body>
|
||||
</html>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "start");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
BrowserAccessibility* end_node =
|
||||
ui::BrowserAccessibility* end_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "end");
|
||||
ASSERT_NE(nullptr, end_node);
|
||||
|
||||
@ -2693,10 +2700,10 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span>end</span>
|
||||
</body>
|
||||
</html>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "start");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
BrowserAccessibility* end_node =
|
||||
ui::BrowserAccessibility* end_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "end");
|
||||
ASSERT_NE(nullptr, end_node);
|
||||
|
||||
@ -2823,11 +2830,11 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
<span id="span1">go </span><span inert>inert1</span><span inert>inert2</span><span>blue</span>
|
||||
<div>last line</div>
|
||||
</div>)HTML");
|
||||
BrowserAccessibility* start_node =
|
||||
ui::BrowserAccessibility* start_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "first line");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
|
||||
BrowserAccessibility* end_node =
|
||||
ui::BrowserAccessibility* end_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "last line");
|
||||
ASSERT_NE(nullptr, start_node);
|
||||
|
||||
@ -3329,7 +3336,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* start_of_second_line =
|
||||
ui::BrowserAccessibility* start_of_second_line =
|
||||
FindNode(ax::mojom::Role::kStaticText, "next");
|
||||
ASSERT_NE(nullptr, start_of_second_line);
|
||||
|
||||
@ -3343,7 +3350,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
text_range_provider->ExpandToEnclosingUnit(TextUnit_Line);
|
||||
EXPECT_UIA_TEXTRANGE_EQ(text_range_provider, L"next text on line two");
|
||||
|
||||
BrowserAccessibility* text_on_second_line =
|
||||
ui::BrowserAccessibility* text_on_second_line =
|
||||
FindNode(ax::mojom::Role::kStaticText, "next");
|
||||
ASSERT_NE(nullptr, text_on_second_line);
|
||||
|
||||
@ -3368,7 +3375,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* first_bold_text =
|
||||
ui::BrowserAccessibility* first_bold_text =
|
||||
FindNode(ax::mojom::Role::kStaticText, "line two");
|
||||
ASSERT_NE(nullptr, first_bold_text);
|
||||
|
||||
@ -3394,7 +3401,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* first_bold_text =
|
||||
ui::BrowserAccessibility* first_bold_text =
|
||||
FindNode(ax::mojom::Role::kStaticText, "next");
|
||||
ASSERT_NE(nullptr, first_bold_text);
|
||||
|
||||
@ -3505,7 +3512,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* text_before_list =
|
||||
ui::BrowserAccessibility* text_before_list =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Text before list");
|
||||
ASSERT_NE(nullptr, text_before_list);
|
||||
|
||||
@ -3828,7 +3835,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* text_before_list =
|
||||
ui::BrowserAccessibility* text_before_list =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Text before list");
|
||||
ASSERT_NE(nullptr, text_before_list);
|
||||
|
||||
@ -3860,7 +3867,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextRangeProviderWinBrowserTest,
|
||||
LoadInitialAccessibilityTreeFromHtmlFilePath(
|
||||
"/accessibility/html/fixed-width-text.html");
|
||||
|
||||
BrowserAccessibility* text_node =
|
||||
ui::BrowserAccessibility* text_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "Hello,");
|
||||
ASSERT_NE(nullptr, text_node);
|
||||
EXPECT_TRUE(text_node->IsLeaf());
|
||||
|
@ -7,8 +7,6 @@
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "base/win/scoped_variant.h"
|
||||
#include "content/browser/accessibility/accessibility_content_browsertest.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_com_win.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -19,6 +17,8 @@
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "testing/gmock/include/gmock/gmock-matchers.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_com_win.h"
|
||||
#include "ui/accessibility/platform/uia_registrar_win.h"
|
||||
|
||||
using base::win::ScopedVariant;
|
||||
@ -53,7 +53,7 @@ class AXPlatformNodeWinBrowserTest : public AccessibilityContentBrowserTest {
|
||||
protected:
|
||||
template <typename T>
|
||||
ComPtr<T> QueryInterfaceFromNode(
|
||||
BrowserAccessibility* browser_accessibility) {
|
||||
ui::BrowserAccessibility* browser_accessibility) {
|
||||
ComPtr<T> result;
|
||||
EXPECT_HRESULT_SUCCEEDED(
|
||||
browser_accessibility->GetNativeViewAccessible()->QueryInterface(
|
||||
@ -62,7 +62,7 @@ class AXPlatformNodeWinBrowserTest : public AccessibilityContentBrowserTest {
|
||||
}
|
||||
|
||||
ComPtr<IAccessible> IAccessibleFromNode(
|
||||
BrowserAccessibility* browser_accessibility) {
|
||||
ui::BrowserAccessibility* browser_accessibility) {
|
||||
return QueryInterfaceFromNode<IAccessible>(browser_accessibility);
|
||||
}
|
||||
|
||||
@ -76,13 +76,13 @@ class AXPlatformNodeWinBrowserTest : public AccessibilityContentBrowserTest {
|
||||
return result;
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindNodeAfter(BrowserAccessibility* begin,
|
||||
const std::string& name) {
|
||||
ui::BrowserAccessibility* FindNodeAfter(ui::BrowserAccessibility* begin,
|
||||
const std::string& name) {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
BrowserAccessibility* node = begin;
|
||||
ui::BrowserAccessibility* node = begin;
|
||||
while (node && (node->GetName() != name))
|
||||
node = manager->NextInTreeOrder(node);
|
||||
|
||||
@ -90,7 +90,7 @@ class AXPlatformNodeWinBrowserTest : public AccessibilityContentBrowserTest {
|
||||
}
|
||||
|
||||
void UIAGetPropertyValueFlowsFromBrowserTestTemplate(
|
||||
const BrowserAccessibility* target_browser_accessibility,
|
||||
const ui::BrowserAccessibility* target_browser_accessibility,
|
||||
const std::vector<std::string>& expected_names) {
|
||||
ASSERT_NE(nullptr, target_browser_accessibility);
|
||||
|
||||
@ -138,22 +138,21 @@ class AXPlatformNodeWinBrowserTest : public AccessibilityContentBrowserTest {
|
||||
|
||||
void UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role expected_role,
|
||||
content::BrowserAccessibility* (content::BrowserAccessibility::*f)(size_t)
|
||||
const,
|
||||
ui::BrowserAccessibility* (ui::BrowserAccessibility::*f)(size_t) const,
|
||||
size_t index_arg,
|
||||
bool expected_is_modal,
|
||||
bool expected_is_window_provider_available) {
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(root_browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility_com_win);
|
||||
|
||||
BrowserAccessibility* browser_accessibility =
|
||||
ui::BrowserAccessibility* browser_accessibility =
|
||||
(root_browser_accessibility->*f)(index_arg);
|
||||
ASSERT_NE(nullptr, browser_accessibility);
|
||||
ASSERT_EQ(expected_role, browser_accessibility->GetRole());
|
||||
BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, browser_accessibility_com_win);
|
||||
|
||||
@ -186,12 +185,12 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest,
|
||||
"conflict and cooperation between intelligent rational decision-makers."
|
||||
"\"");
|
||||
|
||||
BrowserAccessibility* browser_accessibility =
|
||||
ui::BrowserAccessibility* browser_accessibility =
|
||||
GetRootAndAssertNonNull()->PlatformDeepestLastChild();
|
||||
ASSERT_NE(nullptr, browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kStaticText, browser_accessibility->GetRole());
|
||||
|
||||
BrowserAccessibility* iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* iframe_browser_accessibility =
|
||||
browser_accessibility->manager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
@ -266,9 +265,9 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest, UIANamePropertyValue) {
|
||||
</ol>
|
||||
</html>
|
||||
)HTML"));
|
||||
BrowserAccessibility* list_node =
|
||||
ui::BrowserAccessibility* list_node =
|
||||
GetRootAndAssertNonNull()->PlatformGetChild(0);
|
||||
BrowserAccessibility* item_node = list_node->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* item_node = list_node->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, item_node);
|
||||
EXPECT_UIA_BSTR_EQ(ToBrowserAccessibilityWin(item_node)->GetCOM(),
|
||||
UIA_NamePropertyId, L"list item 1");
|
||||
@ -310,7 +309,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
}
|
||||
|
||||
@ -326,7 +325,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
}
|
||||
|
||||
@ -342,7 +341,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
true, true);
|
||||
}
|
||||
|
||||
@ -359,7 +358,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
@ -375,7 +374,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
@ -391,7 +390,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kGenericContainer,
|
||||
&BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, false, false);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
@ -406,7 +405,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
}
|
||||
|
||||
@ -422,7 +421,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
}
|
||||
|
||||
@ -438,7 +437,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
ax::mojom::Role::kDialog, &ui::BrowserAccessibility::PlatformGetChild, 0,
|
||||
true, true);
|
||||
}
|
||||
|
||||
@ -454,8 +453,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kAlertDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
ax::mojom::Role::kAlertDialog,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, false, true);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(
|
||||
@ -471,8 +470,8 @@ IN_PROC_BROWSER_TEST_F(
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kAlertDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
false, true);
|
||||
ax::mojom::Role::kAlertDialog,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, false, true);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(
|
||||
@ -488,8 +487,8 @@ IN_PROC_BROWSER_TEST_F(
|
||||
)HTML"));
|
||||
|
||||
UIAIWindowProviderGetIsModalBrowserTestTemplate(
|
||||
ax::mojom::Role::kAlertDialog, &BrowserAccessibility::PlatformGetChild, 0,
|
||||
true, true);
|
||||
ax::mojom::Role::kAlertDialog,
|
||||
&ui::BrowserAccessibility::PlatformGetChild, 0, true, true);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
@ -503,17 +502,18 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* root_browser_accessibility = GetRootAndAssertNonNull();
|
||||
BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(root_browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility_com_win);
|
||||
|
||||
BrowserAccessibility* browser_accessibility =
|
||||
ui::BrowserAccessibility* browser_accessibility =
|
||||
root_browser_accessibility->PlatformDeepestLastChild();
|
||||
ASSERT_NE(nullptr, browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kGenericContainer,
|
||||
browser_accessibility->GetRole());
|
||||
BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, browser_accessibility_com_win);
|
||||
|
||||
@ -536,12 +536,13 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* root_browser_accessibility = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
root_browser_accessibility->GetRole());
|
||||
|
||||
BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(root_browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility_com_win);
|
||||
|
||||
@ -574,16 +575,17 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest, UIAScrollIntoView) {
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* root_browser_accessibility = GetRootAndAssertNonNull();
|
||||
BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibilityComWin* root_browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(root_browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility_com_win);
|
||||
|
||||
BrowserAccessibility* browser_accessibility =
|
||||
ui::BrowserAccessibility* browser_accessibility =
|
||||
root_browser_accessibility->PlatformDeepestLastChild();
|
||||
ASSERT_NE(nullptr, browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kStaticText, browser_accessibility->GetRole());
|
||||
BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ui::BrowserAccessibilityComWin* browser_accessibility_com_win =
|
||||
ToBrowserAccessibilityWin(browser_accessibility)->GetCOM();
|
||||
ASSERT_NE(nullptr, browser_accessibility_com_win);
|
||||
|
||||
@ -615,13 +617,13 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
BrowserAccessibility* body_node = root_node->PlatformGetFirstChild();
|
||||
ui::BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* body_node = root_node->PlatformGetFirstChild();
|
||||
ASSERT_NE(nullptr, body_node);
|
||||
|
||||
BrowserAccessibility* node = FindNodeAfter(body_node, "en-us");
|
||||
ui::BrowserAccessibility* node = FindNodeAfter(body_node, "en-us");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* en_us_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* en_us_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, en_us_node_com_win);
|
||||
constexpr int en_us_lcid = 1033;
|
||||
@ -629,7 +631,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
|
||||
node = FindNodeAfter(node, "en-gb");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* en_gb_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* en_gb_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, en_gb_node_com_win);
|
||||
constexpr int en_gb_lcid = 2057;
|
||||
@ -637,7 +639,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
|
||||
node = FindNodeAfter(node, "ru-ru");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* ru_ru_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* ru_ru_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, ru_ru_node_com_win);
|
||||
constexpr int ru_ru_lcid = 1049;
|
||||
@ -646,7 +648,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
// Setting to an invalid language should return a failed HRESULT.
|
||||
node = FindNodeAfter(node, "fake");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* fake_lang_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* fake_lang_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, fake_lang_node_com_win);
|
||||
base::win::ScopedVariant actual_value;
|
||||
@ -656,7 +658,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
// No lang should default to the page's default language (en-us).
|
||||
node = FindNodeAfter(node, "no lang");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* no_lang_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* no_lang_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, no_lang_node_com_win);
|
||||
EXPECT_UIA_INT_EQ(no_lang_node_com_win, UIA_CulturePropertyId, en_us_lcid);
|
||||
@ -664,7 +666,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
// Empty lang should default to the page's default language (en-us).
|
||||
node = FindNodeAfter(node, "empty lang");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* empty_lang_node_com_win =
|
||||
ui::BrowserAccessibilityComWin* empty_lang_node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, empty_lang_node_com_win);
|
||||
EXPECT_UIA_INT_EQ(empty_lang_node_com_win, UIA_CulturePropertyId, en_us_lcid);
|
||||
@ -682,13 +684,13 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinUIABrowserTest,
|
||||
</html>
|
||||
)HTML"));
|
||||
|
||||
BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
BrowserAccessibility* body_node = root_node->PlatformGetFirstChild();
|
||||
ui::BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* body_node = root_node->PlatformGetFirstChild();
|
||||
ASSERT_NE(nullptr, body_node);
|
||||
|
||||
BrowserAccessibility* node = FindNode(ax::mojom::Role::kGroup, "vc");
|
||||
ui::BrowserAccessibility* node = FindNode(ax::mojom::Role::kGroup, "vc");
|
||||
ASSERT_NE(nullptr, node);
|
||||
BrowserAccessibilityComWin* node_com_win =
|
||||
ui::BrowserAccessibilityComWin* node_com_win =
|
||||
ToBrowserAccessibilityWin(node)->GetCOM();
|
||||
ASSERT_NE(nullptr, node_com_win);
|
||||
|
||||
@ -719,12 +721,12 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Find a node to hit test. Note that this is a really simple page,
|
||||
// so synchronous hit testing will work fine.
|
||||
BrowserAccessibility* node = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* node = manager->GetBrowserAccessibilityRoot();
|
||||
while (node && node->GetRole() != ax::mojom::Role::kButton)
|
||||
node = manager->NextInTreeOrder(node);
|
||||
DCHECK(node);
|
||||
@ -784,8 +786,8 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest, IFrameTraversal) {
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Text in iframe");
|
||||
|
||||
BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
BrowserAccessibility* before_iframe_node =
|
||||
ui::BrowserAccessibility* root_node = GetRootAndAssertNonNull();
|
||||
ui::BrowserAccessibility* before_iframe_node =
|
||||
FindNodeAfter(root_node, "Before iframe");
|
||||
ASSERT_NE(nullptr, before_iframe_node);
|
||||
ASSERT_EQ(ax::mojom::Role::kStaticText, before_iframe_node->GetRole());
|
||||
@ -796,7 +798,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest, IFrameTraversal) {
|
||||
ASSERT_NE(nullptr, before_iframe_node);
|
||||
ASSERT_EQ(ax::mojom::Role::kInlineTextBox, before_iframe_node->GetRole());
|
||||
|
||||
BrowserAccessibility* inside_iframe_node =
|
||||
ui::BrowserAccessibility* inside_iframe_node =
|
||||
FindNodeAfter(before_iframe_node, "Text in iframe");
|
||||
ASSERT_NE(nullptr, inside_iframe_node);
|
||||
ASSERT_EQ(ax::mojom::Role::kStaticText, inside_iframe_node->GetRole());
|
||||
@ -807,7 +809,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest, IFrameTraversal) {
|
||||
ASSERT_NE(nullptr, inside_iframe_node);
|
||||
ASSERT_EQ(ax::mojom::Role::kInlineTextBox, inside_iframe_node->GetRole());
|
||||
|
||||
BrowserAccessibility* after_iframe_node =
|
||||
ui::BrowserAccessibility* after_iframe_node =
|
||||
FindNodeAfter(inside_iframe_node, "After iframe");
|
||||
ASSERT_NE(nullptr, after_iframe_node);
|
||||
ASSERT_EQ(ax::mojom::Role::kStaticText, after_iframe_node->GetRole());
|
||||
@ -836,7 +838,7 @@ IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest, IFrameTraversal) {
|
||||
*after_iframe_node->CreateTextPositionAt(0));
|
||||
|
||||
// Traverse the leaves of the AXTree forwards.
|
||||
BrowserAccessibility::AXPosition tree_position =
|
||||
ui::BrowserAccessibility::AXPosition tree_position =
|
||||
root_node->CreateTextPositionAt(0)->CreateNextLeafTreePosition();
|
||||
EXPECT_TRUE(tree_position->IsTreePosition());
|
||||
EXPECT_EQ(before_iframe_node->node(), tree_position->GetAnchor());
|
||||
|
@ -2,8 +2,6 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -16,6 +14,8 @@
|
||||
#include "net/base/data_url.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "testing/gtest_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_script_instruction.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
@ -57,7 +57,7 @@ class AXTreeFormatterMacBrowserTest : public ContentBrowserTest {
|
||||
const char* expected_pattern) const;
|
||||
|
||||
protected:
|
||||
BrowserAccessibilityManager* GetManager() const {
|
||||
ui::BrowserAccessibilityManager* GetManager() const {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
@ -89,7 +89,7 @@ void AXTreeFormatterMacBrowserTest::TestFormat(
|
||||
ui::AXTreeFormatter::kFiltersEmptySet);
|
||||
formatter->SetNodeFilters(node_filters);
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
|
||||
std::string actual = formatter->Format(root);
|
||||
@ -123,7 +123,7 @@ void AXTreeFormatterMacBrowserTest::TestScript(
|
||||
std::unique_ptr<ui::AXTreeFormatter> formatter =
|
||||
AXInspectFactory::CreatePlatformFormatter();
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
|
||||
std::vector<ui::AXScriptInstruction> instructions;
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <algorithm>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "base/check_deref.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/i18n/break_iterator.h"
|
||||
@ -15,8 +16,8 @@
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
|
||||
#include "content/public/common/content_client.h"
|
||||
#include "skia/ext/skia_utils_base.h"
|
||||
#include "third_party/skia/include/core/SkColor.h"
|
||||
#include "ui/accessibility/android/accessibility_state.h"
|
||||
@ -26,6 +27,7 @@
|
||||
#include "ui/accessibility/ax_selection.h"
|
||||
#include "ui/accessibility/platform/ax_android_constants.h"
|
||||
#include "ui/accessibility/platform/ax_unique_id.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/strings/grit/auto_image_annotation_strings.h"
|
||||
#include "ui/strings/grit/ax_strings.h"
|
||||
|
||||
@ -68,6 +70,16 @@ enum {
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace ui {
|
||||
// static
|
||||
std::unique_ptr<BrowserAccessibility> BrowserAccessibility::Create(
|
||||
BrowserAccessibilityManager* manager,
|
||||
AXNode* node) {
|
||||
return base::WrapUnique(
|
||||
new content::BrowserAccessibilityAndroid(manager, node));
|
||||
}
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
|
||||
namespace {
|
||||
@ -76,13 +88,6 @@ namespace {
|
||||
constexpr int kMinimumCharacterCountForInvalid = 7;
|
||||
} // namespace
|
||||
|
||||
// static
|
||||
std::unique_ptr<BrowserAccessibility> BrowserAccessibility::Create(
|
||||
BrowserAccessibilityManager* manager,
|
||||
ui::AXNode* node) {
|
||||
return base::WrapUnique(new BrowserAccessibilityAndroid(manager, node));
|
||||
}
|
||||
|
||||
using UniqueIdMap = std::unordered_map<int32_t, BrowserAccessibilityAndroid*>;
|
||||
// Map from each AXPlatformNode's unique id to its instance.
|
||||
base::LazyInstance<UniqueIdMap>::Leaky g_unique_id_map =
|
||||
@ -110,7 +115,7 @@ void BrowserAccessibilityAndroid::ResetLeafCache() {
|
||||
}
|
||||
|
||||
BrowserAccessibilityAndroid::BrowserAccessibilityAndroid(
|
||||
BrowserAccessibilityManager* manager,
|
||||
ui::BrowserAccessibilityManager* manager,
|
||||
ui::AXNode* node)
|
||||
: BrowserAccessibility(manager, node) {
|
||||
g_unique_id_map.Get()[GetUniqueId()] = this;
|
||||
@ -122,6 +127,11 @@ BrowserAccessibilityAndroid::~BrowserAccessibilityAndroid() {
|
||||
}
|
||||
}
|
||||
|
||||
std::u16string BrowserAccessibilityAndroid::GetLocalizedString(
|
||||
int message_id) const {
|
||||
return CHECK_DEREF(GetContentClient()).GetLocalizedString(message_id);
|
||||
}
|
||||
|
||||
void BrowserAccessibilityAndroid::OnLocationChanged() {
|
||||
auto* manager =
|
||||
static_cast<BrowserAccessibilityManagerAndroid*>(this->manager());
|
||||
@ -1887,11 +1897,11 @@ bool BrowserAccessibilityAndroid::HasImage() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
BrowserAccessibilityAndroid::PlatformGetLowestPlatformAncestor() const {
|
||||
BrowserAccessibility* current_object =
|
||||
ui::BrowserAccessibility* current_object =
|
||||
const_cast<BrowserAccessibilityAndroid*>(this);
|
||||
BrowserAccessibility* lowest_unignored_node = current_object;
|
||||
ui::BrowserAccessibility* lowest_unignored_node = current_object;
|
||||
if (lowest_unignored_node->IsIgnored())
|
||||
lowest_unignored_node = lowest_unignored_node->PlatformGetParent();
|
||||
DCHECK(!lowest_unignored_node || !lowest_unignored_node->IsIgnored())
|
||||
@ -1899,10 +1909,10 @@ BrowserAccessibilityAndroid::PlatformGetLowestPlatformAncestor() const {
|
||||
"unignored object or nullptr.";
|
||||
|
||||
// `highest_leaf_node` could be nullptr.
|
||||
BrowserAccessibility* highest_leaf_node = lowest_unignored_node;
|
||||
ui::BrowserAccessibility* highest_leaf_node = lowest_unignored_node;
|
||||
// For the purposes of this method, a leaf node does not include leaves in the
|
||||
// internal accessibility tree, only in the platform exposed tree.
|
||||
for (BrowserAccessibility* ancestor_node = lowest_unignored_node;
|
||||
for (ui::BrowserAccessibility* ancestor_node = lowest_unignored_node;
|
||||
ancestor_node; ancestor_node = ancestor_node->PlatformGetParent()) {
|
||||
if (ancestor_node->IsLeaf())
|
||||
highest_leaf_node = ancestor_node;
|
||||
|
@ -12,15 +12,16 @@
|
||||
#include <vector>
|
||||
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
class CONTENT_EXPORT BrowserAccessibilityAndroid : public BrowserAccessibility {
|
||||
class CONTENT_EXPORT BrowserAccessibilityAndroid
|
||||
: public ui::BrowserAccessibility {
|
||||
public:
|
||||
static BrowserAccessibilityAndroid* GetFromUniqueId(int32_t unique_id);
|
||||
static void ResetLeafCache();
|
||||
@ -231,9 +232,11 @@ class CONTENT_EXPORT BrowserAccessibilityAndroid : public BrowserAccessibility {
|
||||
std::u16string GenerateAccessibilityNodeInfoString() const;
|
||||
|
||||
protected:
|
||||
BrowserAccessibilityAndroid(BrowserAccessibilityManager* manager,
|
||||
BrowserAccessibilityAndroid(ui::BrowserAccessibilityManager* manager,
|
||||
ui::AXNode* node);
|
||||
|
||||
std::u16string GetLocalizedString(int message_id) const override;
|
||||
|
||||
friend class BrowserAccessibility; // Needs access to our constructor.
|
||||
|
||||
private:
|
||||
|
@ -8,20 +8,19 @@
|
||||
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "content/test/test_content_client.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/strings/grit/auto_image_annotation_strings.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
namespace {
|
||||
BrowserAccessibilityManagerAndroid* ToBrowserAccessibilityManagerAndroid(
|
||||
BrowserAccessibilityManager* manager) {
|
||||
ui::BrowserAccessibilityManager* manager) {
|
||||
return static_cast<BrowserAccessibilityManagerAndroid*>(manager);
|
||||
}
|
||||
} // namespace
|
||||
@ -86,6 +85,7 @@ BrowserAccessibilityAndroidTest::~BrowserAccessibilityAndroidTest() = default;
|
||||
void BrowserAccessibilityAndroidTest::SetUp() {
|
||||
test_browser_accessibility_delegate_ =
|
||||
std::make_unique<ui::TestAXPlatformTreeManagerDelegate>();
|
||||
|
||||
SetContentClient(&client_);
|
||||
}
|
||||
|
||||
@ -105,21 +105,21 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetTextOnly) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids = {para1.id};
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root, para1, text1), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_FALSE(root_obj->IsLeaf());
|
||||
EXPECT_TRUE(root_obj->CanFireEvents());
|
||||
BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
EXPECT_TRUE(para_obj->IsLeaf());
|
||||
EXPECT_TRUE(para_obj->CanFireEvents());
|
||||
BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
ui::BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
EXPECT_TRUE(text_obj->IsLeaf());
|
||||
EXPECT_FALSE(text_obj->CanFireEvents());
|
||||
BrowserAccessibility* updated =
|
||||
ui::BrowserAccessibility* updated =
|
||||
manager->RetargetBrowserAccessibilityForEvents(
|
||||
text_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
// |updated| should be the paragraph.
|
||||
@ -144,21 +144,21 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetHeading) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids = {heading1.id};
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root, heading1, text1), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_FALSE(root_obj->IsLeaf());
|
||||
EXPECT_TRUE(root_obj->CanFireEvents());
|
||||
BrowserAccessibility* heading_obj = root_obj->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* heading_obj = root_obj->PlatformGetChild(0);
|
||||
EXPECT_TRUE(heading_obj->IsLeaf());
|
||||
EXPECT_TRUE(heading_obj->CanFireEvents());
|
||||
BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
ui::BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
EXPECT_TRUE(text_obj->IsLeaf());
|
||||
EXPECT_FALSE(text_obj->CanFireEvents());
|
||||
BrowserAccessibility* updated =
|
||||
ui::BrowserAccessibility* updated =
|
||||
manager->RetargetBrowserAccessibilityForEvents(
|
||||
text_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
// |updated| should be the heading.
|
||||
@ -184,21 +184,21 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetFocusable) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids = {para1.id};
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root, para1, text1), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_FALSE(root_obj->IsLeaf());
|
||||
EXPECT_TRUE(root_obj->CanFireEvents());
|
||||
BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
EXPECT_FALSE(para_obj->IsLeaf());
|
||||
EXPECT_TRUE(para_obj->CanFireEvents());
|
||||
BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
ui::BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
EXPECT_TRUE(text_obj->IsLeaf());
|
||||
EXPECT_TRUE(text_obj->CanFireEvents());
|
||||
BrowserAccessibility* updated =
|
||||
ui::BrowserAccessibility* updated =
|
||||
manager->RetargetBrowserAccessibilityForEvents(
|
||||
text_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
// |updated| should be the paragraph.
|
||||
@ -271,32 +271,32 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetInputControl) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids = {container.id};
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root, container, form, label, label_text,
|
||||
input_time, input_container, input_text,
|
||||
button, button_text),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_FALSE(root_obj->IsLeaf());
|
||||
EXPECT_TRUE(root_obj->CanFireEvents());
|
||||
BrowserAccessibility* label_obj = manager->GetFromID(label.id);
|
||||
ui::BrowserAccessibility* label_obj = manager->GetFromID(label.id);
|
||||
EXPECT_TRUE(label_obj->IsLeaf());
|
||||
EXPECT_TRUE(label_obj->CanFireEvents());
|
||||
BrowserAccessibility* label_text_obj = manager->GetFromID(label_text.id);
|
||||
ui::BrowserAccessibility* label_text_obj = manager->GetFromID(label_text.id);
|
||||
EXPECT_TRUE(label_text_obj->IsLeaf());
|
||||
EXPECT_FALSE(label_text_obj->CanFireEvents());
|
||||
BrowserAccessibility* updated =
|
||||
ui::BrowserAccessibility* updated =
|
||||
manager->RetargetBrowserAccessibilityForEvents(
|
||||
label_text_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
EXPECT_EQ(label.id, updated->GetId());
|
||||
EXPECT_TRUE(updated->CanFireEvents());
|
||||
|
||||
BrowserAccessibility* input_time_obj = manager->GetFromID(input_time.id);
|
||||
ui::BrowserAccessibility* input_time_obj = manager->GetFromID(input_time.id);
|
||||
EXPECT_TRUE(input_time_obj->IsLeaf());
|
||||
EXPECT_TRUE(input_time_obj->CanFireEvents());
|
||||
BrowserAccessibility* input_time_container_obj =
|
||||
ui::BrowserAccessibility* input_time_container_obj =
|
||||
manager->GetFromID(input_container.id);
|
||||
EXPECT_TRUE(input_time_container_obj->IsLeaf());
|
||||
EXPECT_FALSE(input_time_container_obj->CanFireEvents());
|
||||
@ -304,7 +304,7 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetInputControl) {
|
||||
input_time_container_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
EXPECT_EQ(input_time.id, updated->GetId());
|
||||
EXPECT_TRUE(updated->CanFireEvents());
|
||||
BrowserAccessibility* input_text_obj = manager->GetFromID(input_text.id);
|
||||
ui::BrowserAccessibility* input_text_obj = manager->GetFromID(input_text.id);
|
||||
EXPECT_TRUE(input_text_obj->IsLeaf());
|
||||
EXPECT_FALSE(input_text_obj->CanFireEvents());
|
||||
updated = manager->RetargetBrowserAccessibilityForEvents(
|
||||
@ -312,10 +312,11 @@ TEST_F(BrowserAccessibilityAndroidTest, TestRetargetInputControl) {
|
||||
EXPECT_EQ(input_time.id, updated->GetId());
|
||||
EXPECT_TRUE(updated->CanFireEvents());
|
||||
|
||||
BrowserAccessibility* button_obj = manager->GetFromID(button.id);
|
||||
ui::BrowserAccessibility* button_obj = manager->GetFromID(button.id);
|
||||
EXPECT_TRUE(button_obj->IsLeaf());
|
||||
EXPECT_TRUE(button_obj->CanFireEvents());
|
||||
BrowserAccessibility* button_text_obj = manager->GetFromID(button_text.id);
|
||||
ui::BrowserAccessibility* button_text_obj =
|
||||
manager->GetFromID(button_text.id);
|
||||
EXPECT_TRUE(button_text_obj->IsLeaf());
|
||||
EXPECT_FALSE(button_text_obj->CanFireEvents());
|
||||
updated = manager->RetargetBrowserAccessibilityForEvents(
|
||||
@ -351,11 +352,11 @@ TEST_F(BrowserAccessibilityAndroidTest, TestGetTextContent) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids = {container_para.id};
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root, container_para, text1, text2, text3),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
BrowserAccessibility* container_obj = manager->GetFromID(11);
|
||||
ui::BrowserAccessibility* container_obj = manager->GetFromID(11);
|
||||
// Default caller gets full text.
|
||||
EXPECT_EQ(u"1Foo2Bar3Baz", container_obj->GetTextContentUTF16());
|
||||
|
||||
@ -410,7 +411,7 @@ TEST_F(BrowserAccessibilityAndroidTest,
|
||||
tree.nodes[5].SetImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
@ -463,7 +464,7 @@ TEST_F(BrowserAccessibilityAndroidTest, TestImageRoleDescription_Empty) {
|
||||
tree.nodes[5].SetImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
@ -507,7 +508,7 @@ TEST_F(BrowserAccessibilityAndroidTest, TestImageInnerText_Eligible) {
|
||||
ax::mojom::IntAttribute::kTextDirection,
|
||||
static_cast<int32_t>(ax::mojom::WritingDirection::kRtl));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
@ -562,7 +563,7 @@ TEST_F(BrowserAccessibilityAndroidTest,
|
||||
tree.nodes[4].SetImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus::kAnnotationProcessFailed);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
@ -621,7 +622,7 @@ TEST_F(BrowserAccessibilityAndroidTest, TestImageInnerText_Ineligible) {
|
||||
tree.nodes[4].SetImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus::kSilentlyEligibleForAnnotation);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
@ -674,7 +675,7 @@ TEST_F(BrowserAccessibilityAndroidTest,
|
||||
tree.nodes[2].SetImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus::kAnnotationSucceeded);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManagerAndroid::Create(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
|
@ -2,15 +2,11 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
|
||||
#include "base/check.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
@ -25,6 +21,10 @@
|
||||
#include "testing/gtest_mac.h"
|
||||
#include "ui/accessibility/platform/ax_private_webkit_constants_mac.h"
|
||||
#include "ui/accessibility/platform/ax_utils_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
namespace content {
|
||||
|
||||
// static
|
||||
BrowserAccessibilityManager* BrowserAccessibilityManagerAndroid::Create(
|
||||
ui::BrowserAccessibilityManager* BrowserAccessibilityManagerAndroid::Create(
|
||||
const ui::AXTreeUpdate& initial_tree,
|
||||
ui::AXNodeIdDelegate& node_id_delegate,
|
||||
ui::AXPlatformTreeManagerDelegate* delegate) {
|
||||
@ -39,7 +39,7 @@ BrowserAccessibilityManager* BrowserAccessibilityManagerAndroid::Create(
|
||||
}
|
||||
|
||||
// static
|
||||
BrowserAccessibilityManager* BrowserAccessibilityManagerAndroid::Create(
|
||||
ui::BrowserAccessibilityManager* BrowserAccessibilityManagerAndroid::Create(
|
||||
ui::AXNodeIdDelegate& node_id_delegate,
|
||||
ui::AXPlatformTreeManagerDelegate* delegate) {
|
||||
return BrowserAccessibilityManagerAndroid::Create(
|
||||
@ -52,7 +52,7 @@ BrowserAccessibilityManagerAndroid::BrowserAccessibilityManagerAndroid(
|
||||
base::WeakPtr<WebContentsAccessibilityAndroid> web_contents_accessibility,
|
||||
ui::AXNodeIdDelegate& node_id_delegate,
|
||||
ui::AXPlatformTreeManagerDelegate* delegate)
|
||||
: BrowserAccessibilityManager(node_id_delegate, delegate),
|
||||
: ui::BrowserAccessibilityManager(node_id_delegate, delegate),
|
||||
web_contents_accessibility_(std::move(web_contents_accessibility)),
|
||||
prune_tree_for_screen_reader_(true) {
|
||||
// The Java layer handles the root scroll offset.
|
||||
@ -86,7 +86,7 @@ bool BrowserAccessibilityManagerAndroid::ShouldAllowImageDescriptions() {
|
||||
allow_image_descriptions_for_testing_;
|
||||
}
|
||||
|
||||
BrowserAccessibility* BrowserAccessibilityManagerAndroid::GetFocus() const {
|
||||
ui::BrowserAccessibility* BrowserAccessibilityManagerAndroid::GetFocus() const {
|
||||
// On Android, don't follow active descendant when focus is in a textfield,
|
||||
// otherwise editable comboboxes such as the search field on google.com do
|
||||
// not work with Talkback. See crbug.com/761501.
|
||||
@ -94,11 +94,11 @@ BrowserAccessibility* BrowserAccessibilityManagerAndroid::GetFocus() const {
|
||||
// This fix came in crrev.com/c/647339 but said that a more comprehensive fix
|
||||
// was landing in in crrev.com/c/642056, so is this override still necessary?
|
||||
ui::AXNodeID focus_id = GetTreeData().focus_id;
|
||||
BrowserAccessibility* focus = GetFromID(focus_id);
|
||||
ui::BrowserAccessibility* focus = GetFromID(focus_id);
|
||||
if (focus && focus->IsAtomicTextField())
|
||||
return focus;
|
||||
|
||||
return BrowserAccessibilityManager::GetFocus();
|
||||
return ui::BrowserAccessibilityManager::GetFocus();
|
||||
}
|
||||
|
||||
ui::AXNode* BrowserAccessibilityManagerAndroid::RetargetForEvents(
|
||||
@ -119,8 +119,9 @@ ui::AXNode* BrowserAccessibilityManagerAndroid::RetargetForEvents(
|
||||
// Sometimes we get events on nodes in our internal accessibility tree
|
||||
// that aren't exposed on Android. Get |updated| to point to the lowest
|
||||
// ancestor that is exposed.
|
||||
BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
BrowserAccessibility* updated = wrapper->PlatformGetLowestPlatformAncestor();
|
||||
ui::BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
ui::BrowserAccessibility* updated =
|
||||
wrapper->PlatformGetLowestPlatformAncestor();
|
||||
DCHECK(updated);
|
||||
|
||||
switch (type) {
|
||||
@ -172,7 +173,7 @@ void BrowserAccessibilityManagerAndroid::FireFocusEvent(ui::AXNode* node) {
|
||||
|
||||
// When focusing a node on Android, we want to ensure that we clear the
|
||||
// Java-side cache for the previously focused node as well.
|
||||
if (BrowserAccessibility* last_focused_node =
|
||||
if (ui::BrowserAccessibility* last_focused_node =
|
||||
GetFromAXNode(GetLastFocusedNode())) {
|
||||
BrowserAccessibilityAndroid* android_last_focused_node =
|
||||
static_cast<BrowserAccessibilityAndroid*>(last_focused_node);
|
||||
@ -186,7 +187,7 @@ void BrowserAccessibilityManagerAndroid::FireFocusEvent(ui::AXNode* node) {
|
||||
}
|
||||
|
||||
void BrowserAccessibilityManagerAndroid::FireLocationChanged(
|
||||
BrowserAccessibility* node) {
|
||||
ui::BrowserAccessibility* node) {
|
||||
WebContentsAccessibilityAndroid* wcax = GetWebContentsAXFromRootManager();
|
||||
if (!wcax)
|
||||
return;
|
||||
@ -198,10 +199,10 @@ void BrowserAccessibilityManagerAndroid::FireLocationChanged(
|
||||
|
||||
void BrowserAccessibilityManagerAndroid::FireBlinkEvent(
|
||||
ax::mojom::Event event_type,
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* node,
|
||||
int action_request_id) {
|
||||
BrowserAccessibilityManager::FireBlinkEvent(event_type, node,
|
||||
action_request_id);
|
||||
ui::BrowserAccessibilityManager::FireBlinkEvent(event_type, node,
|
||||
action_request_id);
|
||||
WebContentsAccessibilityAndroid* wcax = GetWebContentsAXFromRootManager();
|
||||
if (!wcax)
|
||||
return;
|
||||
@ -235,7 +236,7 @@ void BrowserAccessibilityManagerAndroid::FireGeneratedEvent(
|
||||
if (!wcax)
|
||||
return;
|
||||
|
||||
BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
ui::BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
DCHECK(wrapper);
|
||||
BrowserAccessibilityAndroid* android_node =
|
||||
static_cast<BrowserAccessibilityAndroid*>(wrapper);
|
||||
@ -273,7 +274,7 @@ void BrowserAccessibilityManagerAndroid::FireGeneratedEvent(
|
||||
case ui::AXEventGenerator::Event::DOCUMENT_SELECTION_CHANGED: {
|
||||
ui::AXNodeID focus_id =
|
||||
ax_tree()->GetUnignoredSelection().focus_object_id;
|
||||
BrowserAccessibility* focus_object = GetFromID(focus_id);
|
||||
ui::BrowserAccessibility* focus_object = GetFromID(focus_id);
|
||||
if (focus_object) {
|
||||
BrowserAccessibilityAndroid* android_focus_object =
|
||||
static_cast<BrowserAccessibilityAndroid*>(focus_object);
|
||||
@ -404,7 +405,7 @@ void BrowserAccessibilityManagerAndroid::FireGeneratedEvent(
|
||||
}
|
||||
|
||||
void BrowserAccessibilityManagerAndroid::FireAriaNotificationEvent(
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* node,
|
||||
const std::string& announcement,
|
||||
const std::string& notification_id,
|
||||
ax::mojom::AriaNotificationInterrupt interrupt_property,
|
||||
@ -552,7 +553,7 @@ bool BrowserAccessibilityManagerAndroid::OnHoverEvent(
|
||||
}
|
||||
|
||||
void BrowserAccessibilityManagerAndroid::HandleHoverEvent(
|
||||
BrowserAccessibility* node) {
|
||||
ui::BrowserAccessibility* node) {
|
||||
WebContentsAccessibilityAndroid* wcax = GetWebContentsAXFromRootManager();
|
||||
if (!wcax)
|
||||
return;
|
||||
@ -570,7 +571,7 @@ void BrowserAccessibilityManagerAndroid::OnNodeWillBeDeleted(ui::AXTree* tree,
|
||||
// that ui::AXTree would pass a null node to an observer, and that the
|
||||
// manager would not have a BrowserAccessibility wrapper for it.
|
||||
DUMP_WILL_BE_CHECK(node);
|
||||
BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
ui::BrowserAccessibility* wrapper = GetFromAXNode(node);
|
||||
DUMP_WILL_BE_CHECK(wrapper);
|
||||
|
||||
BrowserAccessibilityAndroid* android_node =
|
||||
@ -590,10 +591,10 @@ void BrowserAccessibilityManagerAndroid::OnNodeWillBeDeleted(ui::AXTree* tree,
|
||||
BrowserAccessibilityManager::OnNodeWillBeDeleted(tree, node);
|
||||
}
|
||||
|
||||
std::unique_ptr<BrowserAccessibility>
|
||||
std::unique_ptr<ui::BrowserAccessibility>
|
||||
BrowserAccessibilityManagerAndroid::CreateBrowserAccessibility(
|
||||
ui::AXNode* node) {
|
||||
return BrowserAccessibility::Create(this, node);
|
||||
return ui::BrowserAccessibility::Create(this, node);
|
||||
}
|
||||
|
||||
void BrowserAccessibilityManagerAndroid::OnAtomicUpdateFinished(
|
||||
@ -632,7 +633,7 @@ void BrowserAccessibilityManagerAndroid::OnAtomicUpdateFinished(
|
||||
|
||||
WebContentsAccessibilityAndroid*
|
||||
BrowserAccessibilityManagerAndroid::GetWebContentsAXFromRootManager() {
|
||||
BrowserAccessibility* parent_node =
|
||||
ui::BrowserAccessibility* parent_node =
|
||||
GetParentNodeFromParentTreeAsBrowserAccessibility();
|
||||
if (!parent_node)
|
||||
return web_contents_accessibility_.get();
|
||||
|
@ -8,8 +8,8 @@
|
||||
#include <unordered_set>
|
||||
#include <utility>
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
@ -43,7 +43,7 @@ class BrowserAccessibilityAndroid;
|
||||
class WebContentsAccessibilityAndroid;
|
||||
|
||||
class CONTENT_EXPORT BrowserAccessibilityManagerAndroid
|
||||
: public BrowserAccessibilityManager {
|
||||
: public ui::BrowserAccessibilityManager {
|
||||
public:
|
||||
// Creates the platform-specific BrowserAccessibilityManager.
|
||||
static BrowserAccessibilityManager* Create(
|
||||
@ -102,25 +102,25 @@ class CONTENT_EXPORT BrowserAccessibilityManagerAndroid
|
||||
void FireFocusEvent(ui::AXNode* node) override;
|
||||
|
||||
// BrowserAccessibilityManager overrides.
|
||||
BrowserAccessibility* GetFocus() const override;
|
||||
ui::BrowserAccessibility* GetFocus() const override;
|
||||
void SendLocationChangeEvents(
|
||||
const std::vector<ui::AXLocationChanges>& changes) override;
|
||||
ui::AXNode* RetargetForEvents(ui::AXNode* node,
|
||||
RetargetEventType type) const override;
|
||||
void FireBlinkEvent(ax::mojom::Event event_type,
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* node,
|
||||
int action_request_id) override;
|
||||
void FireGeneratedEvent(ui::AXEventGenerator::Event event_type,
|
||||
const ui::AXNode* node) override;
|
||||
|
||||
void FireAriaNotificationEvent(
|
||||
BrowserAccessibility* node,
|
||||
ui::BrowserAccessibility* node,
|
||||
const std::string& announcement,
|
||||
const std::string& notification_id,
|
||||
ax::mojom::AriaNotificationInterrupt interrupt_property,
|
||||
ax::mojom::AriaNotificationPriority priority_property) override;
|
||||
|
||||
void FireLocationChanged(BrowserAccessibility* node);
|
||||
void FireLocationChanged(ui::BrowserAccessibility* node);
|
||||
|
||||
// Helper functions to compute the next start and end index when moving
|
||||
// forwards or backwards by character, word, or line. This part is
|
||||
@ -147,7 +147,7 @@ class CONTENT_EXPORT BrowserAccessibilityManagerAndroid
|
||||
std::vector<std::string> GetMetadataForTree() const;
|
||||
|
||||
protected:
|
||||
std::unique_ptr<BrowserAccessibility> CreateBrowserAccessibility(
|
||||
std::unique_ptr<ui::BrowserAccessibility> CreateBrowserAccessibility(
|
||||
ui::AXNode* node) override;
|
||||
|
||||
private:
|
||||
@ -163,10 +163,10 @@ class CONTENT_EXPORT BrowserAccessibilityManagerAndroid
|
||||
|
||||
// This gives BrowserAccessibilityManager::Create access to the class
|
||||
// constructor.
|
||||
friend class BrowserAccessibilityManager;
|
||||
friend class ui::BrowserAccessibilityManager;
|
||||
|
||||
// Handle a hover event from the renderer process.
|
||||
void HandleHoverEvent(BrowserAccessibility* node);
|
||||
void HandleHoverEvent(ui::BrowserAccessibility* node);
|
||||
|
||||
// A weak reference to WebContentsAccessibility for reaching Java layer.
|
||||
// Only the root manager has the reference. Should be accessed through
|
||||
|
@ -2,6 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@ -10,10 +12,9 @@
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/buildflag.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#endif
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
@ -60,7 +61,7 @@ class CountingAXTreeObserver : public ui::AXTreeObserver {
|
||||
int node_count_ = 0;
|
||||
};
|
||||
|
||||
BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
ui::BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
const ui::AXTreeUpdate& initial_tree,
|
||||
ui::AXNodeIdDelegate& node_id_delegate,
|
||||
ui::AXPlatformTreeManagerDelegate* delegate) {
|
||||
@ -68,8 +69,8 @@ BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
return content::BrowserAccessibilityManagerAndroid::Create(
|
||||
initial_tree, node_id_delegate, delegate);
|
||||
#else
|
||||
return BrowserAccessibilityManager::Create(initial_tree, node_id_delegate,
|
||||
delegate);
|
||||
return ui::BrowserAccessibilityManager::Create(initial_tree, node_id_delegate,
|
||||
delegate);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -112,7 +113,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestErrorOnCreateIsFatal) {
|
||||
root.child_ids.push_back(2);
|
||||
root.child_ids.push_back(2);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager;
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager;
|
||||
EXPECT_DEATH_IF_SUPPORTED(
|
||||
manager.reset(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root), node_id_delegate_,
|
||||
@ -141,7 +142,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestErrorOnUpdate) {
|
||||
node5.id = 5;
|
||||
root.child_ids.push_back(5);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, node2, node3, node4, node5),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
@ -214,16 +215,16 @@ TEST_F(BrowserAccessibilityManagerTest, BoundsForRange) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets2);
|
||||
static_text.child_ids.push_back(4);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -315,19 +316,19 @@ TEST_F(BrowserAccessibilityManagerTest, BoundsForRangeMultiElement) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets);
|
||||
static_text2.child_ids.push_back(5);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
static_text2, inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
BrowserAccessibility* static_text_accessible2 =
|
||||
ui::BrowserAccessibility* static_text_accessible2 =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -434,16 +435,16 @@ TEST_F(BrowserAccessibilityManagerTest, BoundsForRangeBiDi) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets2);
|
||||
static_text.child_ids.push_back(4);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -519,15 +520,15 @@ TEST_F(BrowserAccessibilityManagerTest, BoundsForRangeScrolledWindow) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets1);
|
||||
static_text.child_ids.push_back(3);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -609,15 +610,16 @@ TEST_F(BrowserAccessibilityManagerTest, BoundsForRangeOnParentElement) {
|
||||
inline_text2.AddIntListAttribute(
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets2);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, div, static_text1, img, static_text2,
|
||||
inline_text1, inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* div_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* div_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, div_accessible);
|
||||
|
||||
EXPECT_EQ(gfx::Rect(100, 100, 20, 20).ToString(),
|
||||
@ -667,24 +669,27 @@ TEST_F(BrowserAccessibilityManagerTest, TestNextPreviousInTreeOrder) {
|
||||
++++5 kUnknown
|
||||
)HTML"));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_EQ(3U, root_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* node2_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* node2_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, node2_accessible);
|
||||
BrowserAccessibility* node3_accessible = root_accessible->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* node3_accessible =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, node3_accessible);
|
||||
ASSERT_EQ(1U, node3_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* node4_accessible =
|
||||
ui::BrowserAccessibility* node4_accessible =
|
||||
node3_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, node4_accessible);
|
||||
BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(2);
|
||||
ui::BrowserAccessibility* node5_accessible =
|
||||
root_accessible->PlatformGetChild(2);
|
||||
ASSERT_NE(nullptr, node5_accessible);
|
||||
|
||||
EXPECT_EQ(nullptr, manager->NextInTreeOrder(nullptr));
|
||||
@ -718,36 +723,36 @@ TEST_F(BrowserAccessibilityManagerTest, TestNextPreviousInTreeOrder) {
|
||||
manager->PreviousInTreeOrder(root_accessible, true));
|
||||
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kEqual,
|
||||
BrowserAccessibilityManager::CompareNodes(*root_accessible,
|
||||
*root_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*root_accessible,
|
||||
*root_accessible));
|
||||
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kBefore,
|
||||
BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*node3_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*node3_accessible));
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kAfter,
|
||||
BrowserAccessibilityManager::CompareNodes(*node3_accessible,
|
||||
*node2_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node3_accessible,
|
||||
*node2_accessible));
|
||||
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kBefore,
|
||||
BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*node4_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*node4_accessible));
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kAfter,
|
||||
BrowserAccessibilityManager::CompareNodes(*node4_accessible,
|
||||
*node2_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node4_accessible,
|
||||
*node2_accessible));
|
||||
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kBefore,
|
||||
BrowserAccessibilityManager::CompareNodes(*node3_accessible,
|
||||
*node4_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node3_accessible,
|
||||
*node4_accessible));
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kAfter,
|
||||
BrowserAccessibilityManager::CompareNodes(*node4_accessible,
|
||||
*node3_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node4_accessible,
|
||||
*node3_accessible));
|
||||
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kBefore,
|
||||
BrowserAccessibilityManager::CompareNodes(*root_accessible,
|
||||
*node2_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*root_accessible,
|
||||
*node2_accessible));
|
||||
EXPECT_EQ(ax::mojom::TreeOrder::kAfter,
|
||||
BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*root_accessible));
|
||||
ui::BrowserAccessibilityManager::CompareNodes(*node2_accessible,
|
||||
*root_accessible));
|
||||
}
|
||||
|
||||
TEST_F(BrowserAccessibilityManagerTest, TestNextNonDescendantInTreeOrder) {
|
||||
@ -759,24 +764,27 @@ TEST_F(BrowserAccessibilityManagerTest, TestNextNonDescendantInTreeOrder) {
|
||||
++++5 kUnknown
|
||||
)HTML"));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_EQ(3U, root_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* node2_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* node2_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, node2_accessible);
|
||||
BrowserAccessibility* node3_accessible = root_accessible->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* node3_accessible =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, node3_accessible);
|
||||
ASSERT_EQ(1U, node3_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* node4_accessible =
|
||||
ui::BrowserAccessibility* node4_accessible =
|
||||
node3_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, node4_accessible);
|
||||
BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(2);
|
||||
ui::BrowserAccessibility* node5_accessible =
|
||||
root_accessible->PlatformGetChild(2);
|
||||
ASSERT_NE(nullptr, node5_accessible);
|
||||
|
||||
EXPECT_EQ(nullptr, manager->NextNonDescendantInTreeOrder(nullptr));
|
||||
@ -802,35 +810,39 @@ TEST_F(BrowserAccessibilityManagerTest, TestNextPreviousTextOnlyObject) {
|
||||
++++++10 kLink
|
||||
)HTML"));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_EQ(4U, root_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* node2_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* node2_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, node2_accessible);
|
||||
BrowserAccessibility* text1_accessible = root_accessible->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* text1_accessible =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, text1_accessible);
|
||||
BrowserAccessibility* node3_accessible = root_accessible->PlatformGetChild(2);
|
||||
ui::BrowserAccessibility* node3_accessible =
|
||||
root_accessible->PlatformGetChild(2);
|
||||
ASSERT_NE(nullptr, node3_accessible);
|
||||
ASSERT_EQ(3U, node3_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* text2_accessible =
|
||||
ui::BrowserAccessibility* text2_accessible =
|
||||
node3_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, text2_accessible);
|
||||
BrowserAccessibility* node4_accessible =
|
||||
ui::BrowserAccessibility* node4_accessible =
|
||||
node3_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, node4_accessible);
|
||||
BrowserAccessibility* text3_accessible =
|
||||
ui::BrowserAccessibility* text3_accessible =
|
||||
node3_accessible->PlatformGetChild(2);
|
||||
ASSERT_NE(nullptr, text3_accessible);
|
||||
BrowserAccessibility* node5_accessible = root_accessible->PlatformGetChild(3);
|
||||
ui::BrowserAccessibility* node5_accessible =
|
||||
root_accessible->PlatformGetChild(3);
|
||||
ASSERT_NE(nullptr, node5_accessible);
|
||||
ASSERT_EQ(2U, node5_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* text4_accessible =
|
||||
ui::BrowserAccessibility* text4_accessible =
|
||||
node5_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, text4_accessible);
|
||||
|
||||
@ -878,92 +890,94 @@ TEST_F(BrowserAccessibilityManagerTest, TestFindIndicesInCommonParent) {
|
||||
++++++++9 kInlineTextBox name="world."
|
||||
)HTML"));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_EQ(2U, root_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* div_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* div_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, div_accessible);
|
||||
ASSERT_EQ(2U, div_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* button_accessible = div_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* button_accessible =
|
||||
div_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, button_accessible);
|
||||
ASSERT_EQ(0U, button_accessible->PlatformChildCount());
|
||||
ASSERT_EQ(1U, button_accessible->InternalChildCount());
|
||||
|
||||
BrowserAccessibility* button_text_accessible =
|
||||
ui::BrowserAccessibility* button_text_accessible =
|
||||
button_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, button_text_accessible);
|
||||
BrowserAccessibility* line_break_accessible =
|
||||
ui::BrowserAccessibility* line_break_accessible =
|
||||
div_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, line_break_accessible);
|
||||
BrowserAccessibility* paragraph_accessible =
|
||||
ui::BrowserAccessibility* paragraph_accessible =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, paragraph_accessible);
|
||||
BrowserAccessibility* paragraph_text_accessible =
|
||||
ui::BrowserAccessibility* paragraph_text_accessible =
|
||||
paragraph_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, paragraph_text_accessible);
|
||||
ASSERT_EQ(2U, paragraph_text_accessible->InternalChildCount());
|
||||
BrowserAccessibility* paragraph_line1_accessible =
|
||||
ui::BrowserAccessibility* paragraph_line1_accessible =
|
||||
paragraph_text_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, paragraph_line1_accessible);
|
||||
BrowserAccessibility* paragraph_line2_accessible =
|
||||
ui::BrowserAccessibility* paragraph_line2_accessible =
|
||||
paragraph_text_accessible->InternalGetChild(1);
|
||||
ASSERT_NE(nullptr, paragraph_line2_accessible);
|
||||
|
||||
BrowserAccessibility* common_parent = nullptr;
|
||||
ui::BrowserAccessibility* common_parent = nullptr;
|
||||
size_t child_index1, child_index2;
|
||||
EXPECT_FALSE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_FALSE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*root_accessible, *root_accessible, &common_parent, &child_index1,
|
||||
&child_index2));
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*div_accessible, *paragraph_accessible, &common_parent, &child_index1,
|
||||
&child_index2));
|
||||
EXPECT_EQ(root_accessible, common_parent);
|
||||
EXPECT_EQ(0u, child_index1);
|
||||
EXPECT_EQ(1u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*div_accessible, *paragraph_line1_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(root_accessible, common_parent);
|
||||
EXPECT_EQ(0u, child_index1);
|
||||
EXPECT_EQ(1u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*line_break_accessible, *paragraph_text_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(root_accessible, common_parent);
|
||||
EXPECT_EQ(0u, child_index1);
|
||||
EXPECT_EQ(1u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*button_text_accessible, *line_break_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(div_accessible, common_parent);
|
||||
EXPECT_EQ(0u, child_index1);
|
||||
EXPECT_EQ(1u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*paragraph_accessible, *paragraph_line2_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(root_accessible, common_parent);
|
||||
EXPECT_EQ(1u, child_index1);
|
||||
EXPECT_EQ(1u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*paragraph_text_accessible, *paragraph_line1_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(paragraph_accessible, common_parent);
|
||||
EXPECT_EQ(0u, child_index1);
|
||||
EXPECT_EQ(0u, child_index2);
|
||||
|
||||
EXPECT_TRUE(BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
EXPECT_TRUE(ui::BrowserAccessibilityManager::FindIndicesInCommonParent(
|
||||
*paragraph_line1_accessible, *paragraph_line2_accessible, &common_parent,
|
||||
&child_index1, &child_index2));
|
||||
EXPECT_EQ(paragraph_text_accessible, common_parent);
|
||||
@ -1036,7 +1050,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestGetTextForRange) {
|
||||
paragraph_line2.SetName("world.");
|
||||
paragraph_text.child_ids.push_back(paragraph_line2.id);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, div, button, button_text, container,
|
||||
container_text, line_break, paragraph,
|
||||
@ -1044,112 +1058,115 @@ TEST_F(BrowserAccessibilityManagerTest, TestGetTextForRange) {
|
||||
paragraph_line2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_EQ(2U, root_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* div_accessible = root_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* div_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, div_accessible);
|
||||
ASSERT_EQ(3U, div_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* button_accessible = div_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* button_accessible =
|
||||
div_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, button_accessible);
|
||||
ASSERT_EQ(0U, button_accessible->PlatformChildCount());
|
||||
ASSERT_EQ(1U, button_accessible->InternalChildCount());
|
||||
|
||||
BrowserAccessibility* button_text_accessible =
|
||||
ui::BrowserAccessibility* button_text_accessible =
|
||||
button_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, button_text_accessible);
|
||||
BrowserAccessibility* container_accessible =
|
||||
ui::BrowserAccessibility* container_accessible =
|
||||
div_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, container_accessible);
|
||||
BrowserAccessibility* container_text_accessible =
|
||||
ui::BrowserAccessibility* container_text_accessible =
|
||||
container_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, container_text_accessible);
|
||||
BrowserAccessibility* line_break_accessible =
|
||||
ui::BrowserAccessibility* line_break_accessible =
|
||||
div_accessible->PlatformGetChild(2);
|
||||
ASSERT_NE(nullptr, line_break_accessible);
|
||||
BrowserAccessibility* paragraph_accessible =
|
||||
ui::BrowserAccessibility* paragraph_accessible =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, paragraph_accessible);
|
||||
BrowserAccessibility* paragraph_text_accessible =
|
||||
ui::BrowserAccessibility* paragraph_text_accessible =
|
||||
paragraph_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, paragraph_text_accessible);
|
||||
ASSERT_EQ(2U, paragraph_text_accessible->InternalChildCount());
|
||||
BrowserAccessibility* paragraph_line1_accessible =
|
||||
ui::BrowserAccessibility* paragraph_line1_accessible =
|
||||
paragraph_text_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, paragraph_line1_accessible);
|
||||
BrowserAccessibility* paragraph_line2_accessible =
|
||||
ui::BrowserAccessibility* paragraph_line2_accessible =
|
||||
paragraph_text_accessible->InternalGetChild(1);
|
||||
ASSERT_NE(nullptr, paragraph_line2_accessible);
|
||||
|
||||
std::vector<const BrowserAccessibility*> text_only_objects =
|
||||
BrowserAccessibilityManager::FindTextOnlyObjectsInRange(*root_accessible,
|
||||
*root_accessible);
|
||||
std::vector<const ui::BrowserAccessibility*> text_only_objects =
|
||||
ui::BrowserAccessibilityManager::FindTextOnlyObjectsInRange(
|
||||
*root_accessible, *root_accessible);
|
||||
|
||||
EXPECT_EQ(3U, text_only_objects.size());
|
||||
EXPECT_EQ(container_text_accessible, text_only_objects[0]);
|
||||
EXPECT_EQ(line_break_accessible, text_only_objects[1]);
|
||||
EXPECT_EQ(paragraph_text_accessible, text_only_objects[2]);
|
||||
|
||||
text_only_objects = BrowserAccessibilityManager::FindTextOnlyObjectsInRange(
|
||||
*div_accessible, *paragraph_accessible);
|
||||
text_only_objects =
|
||||
ui::BrowserAccessibilityManager::FindTextOnlyObjectsInRange(
|
||||
*div_accessible, *paragraph_accessible);
|
||||
EXPECT_EQ(3U, text_only_objects.size());
|
||||
EXPECT_EQ(container_text_accessible, text_only_objects[0]);
|
||||
EXPECT_EQ(line_break_accessible, text_only_objects[1]);
|
||||
EXPECT_EQ(paragraph_text_accessible, text_only_objects[2]);
|
||||
|
||||
EXPECT_EQ(u"Text\nHello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(*root_accessible, 0,
|
||||
*root_accessible, 16));
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*root_accessible, 0, *root_accessible, 16));
|
||||
EXPECT_EQ(u"xt\nHello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(*root_accessible, 2,
|
||||
*root_accessible, 12));
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*root_accessible, 2, *root_accessible, 12));
|
||||
EXPECT_EQ(u"Text\nHello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*div_accessible, 0, *paragraph_accessible, 12));
|
||||
EXPECT_EQ(u"xt\nHello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*div_accessible, 2, *paragraph_accessible, 12));
|
||||
EXPECT_EQ(u"Text\n", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Text\n", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*div_accessible, 0, *div_accessible, 4));
|
||||
EXPECT_EQ(u"Text\n", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Text\n", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*button_accessible, 0, *line_break_accessible, 4));
|
||||
|
||||
EXPECT_EQ(u"Hello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_accessible, 0, *paragraph_accessible, 12));
|
||||
EXPECT_EQ(u"Hello wor",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_accessible, 0, *paragraph_accessible, 9));
|
||||
EXPECT_EQ(u"Hello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_text_accessible, 0, *paragraph_text_accessible, 12));
|
||||
EXPECT_EQ(u" world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_text_accessible, 5, *paragraph_text_accessible, 12));
|
||||
EXPECT_EQ(u"Hello world.",
|
||||
BrowserAccessibilityManager::GetTextForRange(
|
||||
ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_accessible, 0, *paragraph_text_accessible, 12));
|
||||
EXPECT_EQ(u"Hello ", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Hello ", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line1_accessible, 0,
|
||||
*paragraph_line1_accessible, 6));
|
||||
EXPECT_EQ(u"Hello", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Hello", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line1_accessible, 0,
|
||||
*paragraph_line1_accessible, 5));
|
||||
EXPECT_EQ(u"ello ", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"ello ", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line1_accessible, 1,
|
||||
*paragraph_line1_accessible, 6));
|
||||
EXPECT_EQ(u"world.", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"world.", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line2_accessible, 0,
|
||||
*paragraph_line2_accessible, 6));
|
||||
EXPECT_EQ(u"orld", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"orld", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line2_accessible, 1,
|
||||
*paragraph_line2_accessible, 5));
|
||||
EXPECT_EQ(u"Hello world.", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Hello world.", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line1_accessible, 0,
|
||||
*paragraph_line2_accessible, 6));
|
||||
// Start and end positions could be reversed.
|
||||
EXPECT_EQ(u"Hello world.", BrowserAccessibilityManager::GetTextForRange(
|
||||
EXPECT_EQ(u"Hello world.", ui::BrowserAccessibilityManager::GetTextForRange(
|
||||
*paragraph_line2_accessible, 6,
|
||||
*paragraph_line1_accessible, 0));
|
||||
}
|
||||
@ -1168,7 +1185,7 @@ TEST_F(BrowserAccessibilityManagerTest, DeletingFocusedNodeDoesNotCrash) {
|
||||
ui::AXTreeUpdate initial_state = MakeAXTreeUpdateForTesting(root, node2);
|
||||
initial_state.has_tree_data = true;
|
||||
initial_state.tree_data.focus_id = 2;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
initial_state, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1219,7 +1236,7 @@ TEST_F(BrowserAccessibilityManagerTest, DeletingFocusedNodeDoesNotCrash2) {
|
||||
MakeAXTreeUpdateForTesting(root, node2, node3, node4);
|
||||
initial_state.has_tree_data = true;
|
||||
initial_state.tree_data.focus_id = 2;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
initial_state, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1264,7 +1281,7 @@ TEST_F(BrowserAccessibilityManagerTest, TreeUpdatesAreMergedWhenPossible) {
|
||||
tree.nodes[3].role = ax::mojom::Role::kMenuItemRadio;
|
||||
|
||||
CountingAXTreeObserver observer;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
tree, node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
manager->ax_tree()->AddObserver(&observer);
|
||||
@ -1341,11 +1358,11 @@ TEST_F(BrowserAccessibilityManagerTest, TestHitTestScaled) {
|
||||
child_update.tree_data.parent_tree_id = parent_update.tree_data.tree_id;
|
||||
|
||||
// Create the two managers.
|
||||
std::unique_ptr<BrowserAccessibilityManager> parent_manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> parent_manager(
|
||||
CreateBrowserAccessibilityManager(parent_update, node_id_delegate_,
|
||||
nullptr));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> child_manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> child_manager(
|
||||
CreateBrowserAccessibilityManager(child_update, node_id_delegate_,
|
||||
nullptr));
|
||||
|
||||
@ -1379,7 +1396,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestShouldFireEventForNode) {
|
||||
update.nodes[2].SetName("One two three.");
|
||||
update.nodes[3].SetName("One two three.");
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1405,7 +1422,7 @@ TEST_F(BrowserAccessibilityManagerTest,
|
||||
++++++++1111 kStaticText
|
||||
)HTML"));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1425,7 +1442,7 @@ TEST_F(BrowserAccessibilityManagerTest,
|
||||
)HTML"));
|
||||
|
||||
update.nodes[3].SetName("Test alert message.");
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1451,7 +1468,7 @@ TEST_F(BrowserAccessibilityManagerTest, NestedChildRoot) {
|
||||
child_tree_root.AddIntAttribute(ax::mojom::IntAttribute::kPopupForId, 2);
|
||||
popup_button.child_ids.push_back(3);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, popup_button, child_tree_root),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
@ -1495,7 +1512,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestApproximateHitTestCache) {
|
||||
ui::AXTreeUpdate update = MakeAXTreeUpdateForTesting(root, child1, child2);
|
||||
|
||||
// Create manager.
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
@ -1530,7 +1547,7 @@ TEST_F(BrowserAccessibilityManagerTest, TestOnNodeReparented) {
|
||||
const ui::AXTreeUpdate update1 =
|
||||
MakeAXTreeUpdateForTesting(root, child1, child2);
|
||||
CountingAXTreeObserver observer;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
update1, node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
@ -2,8 +2,9 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "base/run_loop.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
|
||||
#include "base/run_loop.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "content/public/test/browser_test_utils.h"
|
||||
#include "content/public/test/content_browser_test.h"
|
||||
|
@ -7,13 +7,13 @@
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/test/metrics/histogram_tester.h"
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/ax_mode_observer.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/events/base_event_utils.h"
|
||||
@ -161,20 +161,21 @@ TEST_F(BrowserAccessibilityStateImplTest,
|
||||
ui::AXNodeData root;
|
||||
root.id = 1;
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
BrowserAccessibilityManager* manager;
|
||||
|
||||
ui::BrowserAccessibilityManager* manager;
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
manager = BrowserAccessibilityManagerAndroid::Create(
|
||||
MakeAXTreeUpdateForTesting(root), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get());
|
||||
#else
|
||||
manager = BrowserAccessibilityManager::Create(
|
||||
manager = ui::BrowserAccessibilityManager::Create(
|
||||
MakeAXTreeUpdateForTesting(root), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get());
|
||||
#endif
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
manager);
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(manager);
|
||||
|
||||
BrowserAccessibility* ax_root =
|
||||
ui::BrowserAccessibility* ax_root =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, ax_root);
|
||||
|
||||
|
@ -2,14 +2,14 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/ax_enums.mojom-shared.h"
|
||||
#include "ui/accessibility/ax_node_position.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
|
||||
@ -21,7 +21,7 @@ namespace content {
|
||||
|
||||
namespace {
|
||||
|
||||
BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
ui::BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
const ui::AXTreeUpdate& initial_tree,
|
||||
ui::AXNodeIdDelegate& node_id_delegate,
|
||||
ui::AXPlatformTreeManagerDelegate* delegate) {
|
||||
@ -29,8 +29,8 @@ BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
|
||||
return content::BrowserAccessibilityManagerAndroid::Create(
|
||||
initial_tree, node_id_delegate, delegate);
|
||||
#else
|
||||
return content::BrowserAccessibilityManager::Create(
|
||||
initial_tree, node_id_delegate, delegate);
|
||||
return ui::BrowserAccessibilityManager::Create(initial_tree, node_id_delegate,
|
||||
delegate);
|
||||
#endif
|
||||
}
|
||||
} // namespace
|
||||
@ -82,16 +82,16 @@ TEST_F(BrowserAccessibilityTest, TestCanFireEvents) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.child_ids.push_back(para1.id);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, para1, text1), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_obj = manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_FALSE(root_obj->IsLeaf());
|
||||
EXPECT_TRUE(root_obj->CanFireEvents());
|
||||
|
||||
BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para_obj = root_obj->PlatformGetChild(0);
|
||||
EXPECT_TRUE(para_obj->CanFireEvents());
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
EXPECT_TRUE(para_obj->IsLeaf());
|
||||
@ -99,12 +99,12 @@ TEST_F(BrowserAccessibilityTest, TestCanFireEvents) {
|
||||
EXPECT_FALSE(para_obj->IsLeaf());
|
||||
#endif
|
||||
|
||||
BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
ui::BrowserAccessibility* text_obj = manager->GetFromID(111);
|
||||
EXPECT_TRUE(text_obj->IsLeaf());
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
EXPECT_TRUE(text_obj->CanFireEvents());
|
||||
#endif
|
||||
BrowserAccessibility* retarget =
|
||||
ui::BrowserAccessibility* retarget =
|
||||
manager->RetargetBrowserAccessibilityForEvents(
|
||||
text_obj, RetargetEventType::RetargetEventTypeBlinkHover);
|
||||
EXPECT_TRUE(retarget->CanFireEvents());
|
||||
@ -202,29 +202,29 @@ TEST_F(BrowserAccessibilityTest, PlatformChildIterator) {
|
||||
|
||||
child_tree_update.nodes[4].id = 5;
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> parent_manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> parent_manager(
|
||||
CreateBrowserAccessibilityManager(parent_tree_update, node_id_delegate_,
|
||||
nullptr));
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> child_manager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> child_manager(
|
||||
CreateBrowserAccessibilityManager(child_tree_update, node_id_delegate_,
|
||||
nullptr));
|
||||
|
||||
BrowserAccessibility* root_obj =
|
||||
ui::BrowserAccessibility* root_obj =
|
||||
parent_manager->GetBrowserAccessibilityRoot();
|
||||
// Test traversal
|
||||
// PlatformChildren(root_obj) = {5, 6, 13, 15, 11, 3, 4}
|
||||
BrowserAccessibility::PlatformChildIterator platform_iterator =
|
||||
ui::BrowserAccessibility::PlatformChildIterator platform_iterator =
|
||||
root_obj->PlatformChildrenBegin();
|
||||
EXPECT_EQ(5, platform_iterator->GetId());
|
||||
EXPECT_EQ(nullptr, platform_iterator->PlatformGetPreviousSibling());
|
||||
EXPECT_EQ(1u, platform_iterator->PlatformChildCount());
|
||||
|
||||
// Test Child-Tree Traversal
|
||||
BrowserAccessibility* child_tree_root =
|
||||
ui::BrowserAccessibility* child_tree_root =
|
||||
platform_iterator->PlatformGetFirstChild();
|
||||
EXPECT_EQ(1, child_tree_root->GetId());
|
||||
BrowserAccessibility::PlatformChildIterator child_tree_iterator =
|
||||
ui::BrowserAccessibility::PlatformChildIterator child_tree_iterator =
|
||||
child_tree_root->PlatformChildrenBegin();
|
||||
|
||||
EXPECT_EQ(2, child_tree_iterator->GetId());
|
||||
@ -268,26 +268,26 @@ TEST_F(BrowserAccessibilityTest, PlatformChildIterator) {
|
||||
|
||||
// test empty list
|
||||
// PlatformChildren(3) = {}
|
||||
BrowserAccessibility* node2 = parent_manager->GetFromID(3);
|
||||
ui::BrowserAccessibility* node2 = parent_manager->GetFromID(3);
|
||||
platform_iterator = node2->PlatformChildrenBegin();
|
||||
EXPECT_EQ(node2->PlatformChildrenEnd(), platform_iterator);
|
||||
|
||||
// empty list from ignored node
|
||||
// PlatformChildren(8) = {}
|
||||
BrowserAccessibility* node8 = parent_manager->GetFromID(8);
|
||||
ui::BrowserAccessibility* node8 = parent_manager->GetFromID(8);
|
||||
platform_iterator = node8->PlatformChildrenBegin();
|
||||
EXPECT_EQ(node8->PlatformChildrenEnd(), platform_iterator);
|
||||
|
||||
// non-empty list from ignored node
|
||||
// PlatformChildren(10) = {13, 15}
|
||||
BrowserAccessibility* node10 = parent_manager->GetFromID(10);
|
||||
ui::BrowserAccessibility* node10 = parent_manager->GetFromID(10);
|
||||
platform_iterator = node10->PlatformChildrenBegin();
|
||||
EXPECT_EQ(13, platform_iterator->GetId());
|
||||
|
||||
// Two UnignoredChildIterators from the same parent at the same position
|
||||
// should be equivalent, even in end position.
|
||||
platform_iterator = root_obj->PlatformChildrenBegin();
|
||||
BrowserAccessibility::PlatformChildIterator platform_iterator2 =
|
||||
ui::BrowserAccessibility::PlatformChildIterator platform_iterator2 =
|
||||
root_obj->PlatformChildrenBegin();
|
||||
auto end = root_obj->PlatformChildrenEnd();
|
||||
while (platform_iterator != end) {
|
||||
@ -347,16 +347,16 @@ TEST_F(BrowserAccessibilityTest, GetInnerTextRangeBoundsRect) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets2);
|
||||
static_text.child_ids.push_back(4);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -464,16 +464,16 @@ TEST_F(BrowserAccessibilityTest, GetInnerTextRangeBoundsRectPlainTextField) {
|
||||
inline_text1.SetTextDirection(ax::mojom::WritingDirection::kLtr);
|
||||
static_text.child_ids.push_back(5);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, textarea, container, static_text,
|
||||
inline_text1),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* textarea_accessible =
|
||||
ui::BrowserAccessibility* textarea_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, textarea_accessible);
|
||||
|
||||
@ -525,19 +525,19 @@ TEST_F(BrowserAccessibilityTest, GetInnerTextRangeBoundsRectMultiElement) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets);
|
||||
static_text2.child_ids.push_back(5);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
static_text2, inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
BrowserAccessibility* static_text_accessible2 =
|
||||
ui::BrowserAccessibility* static_text_accessible2 =
|
||||
root_accessible->PlatformGetChild(1);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -652,16 +652,16 @@ TEST_F(BrowserAccessibilityTest, GetInnerTextRangeBoundsRectBiDi) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets2);
|
||||
static_text.child_ids.push_back(4);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text1,
|
||||
inline_text2),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -739,18 +739,18 @@ TEST_F(BrowserAccessibilityTest, GetInnerTextRangeBoundsRectScrolledWindow) {
|
||||
ax::mojom::IntListAttribute::kCharacterOffsets, character_offsets1);
|
||||
static_text.child_ids.push_back(3);
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text, inline_text),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
|
||||
browser_accessibility_manager
|
||||
->SetUseRootScrollOffsetsWhenComputingBoundsForTesting(true);
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
BrowserAccessibility* static_text_accessible =
|
||||
ui::BrowserAccessibility* static_text_accessible =
|
||||
root_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, static_text_accessible);
|
||||
|
||||
@ -778,13 +778,13 @@ TEST_F(BrowserAccessibilityTest, GetAuthorUniqueId) {
|
||||
root.role = ax::mojom::Role::kRootWebArea;
|
||||
root.AddStringAttribute(ax::mojom::StringAttribute::kHtmlId, "my_html_id");
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager.get());
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
|
||||
@ -826,22 +826,23 @@ TEST_F(BrowserAccessibilityTest, NextWordPositionWithHypertext) {
|
||||
inline_text.AddIntListAttribute(ax::mojom::IntListAttribute::kWordEnds,
|
||||
{6, 10, 14});
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, input, text_container, static_text,
|
||||
inline_text),
|
||||
node_id_delegate_, test_browser_accessibility_delegate_.get()));
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager.get());
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
ASSERT_NE(0u, root_accessible->InternalChildCount());
|
||||
BrowserAccessibility* input_accessible = root_accessible->InternalGetChild(0);
|
||||
ui::BrowserAccessibility* input_accessible =
|
||||
root_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, input_accessible);
|
||||
|
||||
// Create a text position at offset 0 in the input control
|
||||
BrowserAccessibility::AXPosition position =
|
||||
ui::BrowserAccessibility::AXPosition position =
|
||||
input_accessible->CreateTextPositionAt(0);
|
||||
|
||||
// On platforms that expose IA2 or ATK hypertext, moving by word should work
|
||||
@ -854,7 +855,7 @@ TEST_F(BrowserAccessibilityTest, NextWordPositionWithHypertext) {
|
||||
// "read current line". Only once the user starts typing should the
|
||||
// placeholder disappear.
|
||||
|
||||
BrowserAccessibility::AXPosition next_word_start =
|
||||
ui::BrowserAccessibility::AXPosition next_word_start =
|
||||
position->CreateNextWordStartPosition(
|
||||
{ui::AXBoundaryBehavior::kCrossBoundary,
|
||||
ui::AXBoundaryDetection::kDontCheckInitialPosition});
|
||||
@ -867,7 +868,7 @@ TEST_F(BrowserAccessibilityTest, NextWordPositionWithHypertext) {
|
||||
next_word_start->ToString());
|
||||
}
|
||||
|
||||
BrowserAccessibility::AXPosition next_word_end =
|
||||
ui::BrowserAccessibility::AXPosition next_word_end =
|
||||
position->CreateNextWordEndPosition(
|
||||
{ui::AXBoundaryBehavior::kCrossBoundary,
|
||||
ui::AXBoundaryDetection::kDontCheckInitialPosition});
|
||||
@ -892,19 +893,20 @@ TEST_F(BrowserAccessibilityTest, GetIndexInParent) {
|
||||
static_text.role = ax::mojom::Role::kStaticText;
|
||||
static_text.SetName("ABC");
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root, static_text), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager.get());
|
||||
|
||||
BrowserAccessibility* root_accessible =
|
||||
ui::BrowserAccessibility* root_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_accessible);
|
||||
// Should be nullopt for kRootWebArea since it doesn't have a calculated
|
||||
// index.
|
||||
EXPECT_FALSE(root_accessible->GetIndexInParent().has_value());
|
||||
BrowserAccessibility* child_accessible = root_accessible->InternalGetChild(0);
|
||||
ui::BrowserAccessibility* child_accessible =
|
||||
root_accessible->InternalGetChild(0);
|
||||
ASSERT_NE(nullptr, child_accessible);
|
||||
// Returns the index calculated in AXNode.
|
||||
EXPECT_EQ(0u, child_accessible->GetIndexInParent());
|
||||
@ -926,18 +928,18 @@ TEST_F(BrowserAccessibilityTest, CreatePositionAt) {
|
||||
text_3.role = ax::mojom::Role::kStaticText;
|
||||
text_3.SetName("text");
|
||||
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager(
|
||||
CreateBrowserAccessibilityManager(
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager(CreateBrowserAccessibilityManager(
|
||||
MakeAXTreeUpdateForTesting(root_1, gc_2, text_3), node_id_delegate_,
|
||||
test_browser_accessibility_delegate_.get()));
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager.get());
|
||||
|
||||
BrowserAccessibility* gc_accessible =
|
||||
ui::BrowserAccessibility* gc_accessible =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot()
|
||||
->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, gc_accessible);
|
||||
|
||||
BrowserAccessibility::AXPosition pos = gc_accessible->CreatePositionAt(0);
|
||||
ui::BrowserAccessibility::AXPosition pos = gc_accessible->CreatePositionAt(0);
|
||||
EXPECT_TRUE(pos->IsTreePosition());
|
||||
|
||||
ASSERT_EQ(1U, gc_accessible->InternalChildCount());
|
||||
@ -946,7 +948,8 @@ TEST_F(BrowserAccessibilityTest, CreatePositionAt) {
|
||||
ASSERT_EQ(0U, gc_accessible->PlatformChildCount());
|
||||
#else
|
||||
ASSERT_EQ(1U, gc_accessible->PlatformChildCount());
|
||||
BrowserAccessibility* text_accessible = gc_accessible->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* text_accessible =
|
||||
gc_accessible->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, text_accessible);
|
||||
|
||||
pos = text_accessible->CreatePositionAt(0);
|
||||
|
@ -20,8 +20,6 @@
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromecast_buildflags.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/renderer_host/render_frame_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_view_host_impl.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
@ -40,6 +38,8 @@
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/ax_tree.h"
|
||||
#include "ui/accessibility/ax_tree_id.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/buildflags.h"
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
@ -122,7 +122,7 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() const {
|
||||
ui::BrowserAccessibilityManager* GetManager() const {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
@ -134,13 +134,14 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
|
||||
return *ax_tree;
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindNode(const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNode(const std::string& name_or_value) {
|
||||
return FindNodeInSubtree(*GetManager()->GetBrowserAccessibilityRoot(),
|
||||
name_or_value);
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
const std::string& name_or_value) {
|
||||
const std::string& name =
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
// Note that in the case of a text field,
|
||||
@ -156,7 +157,7 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
@ -165,19 +166,19 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindFirstNodeWithRole(ax::mojom::Role role_value) {
|
||||
ui::BrowserAccessibility* FindFirstNodeWithRole(ax::mojom::Role role_value) {
|
||||
return FindFirstNodeWithRoleInSubtree(
|
||||
*GetManager()->GetBrowserAccessibilityRoot(), role_value);
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindFirstNodeWithRoleInSubtree(
|
||||
BrowserAccessibility& node,
|
||||
ui::BrowserAccessibility* FindFirstNodeWithRoleInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role_value) {
|
||||
if (node.GetRole() == role_value)
|
||||
return &node;
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindFirstNodeWithRoleInSubtree(*node.PlatformGetChild(i), role_value);
|
||||
if (result)
|
||||
return result;
|
||||
@ -284,15 +285,16 @@ bool CrossPlatformAccessibilityBrowserTest::GetBoolAttr(
|
||||
namespace {
|
||||
|
||||
// Convenience method to find a node by its role value.
|
||||
BrowserAccessibility* FindNodeByRole(BrowserAccessibility* root,
|
||||
ax::mojom::Role role) {
|
||||
ui::BrowserAccessibility* FindNodeByRole(ui::BrowserAccessibility* root,
|
||||
ax::mojom::Role role) {
|
||||
if (root->GetRole() == role)
|
||||
return root;
|
||||
for (uint32_t i = 0; i < root->InternalChildCount(); ++i) {
|
||||
BrowserAccessibility* child = root->InternalGetChild(i);
|
||||
ui::BrowserAccessibility* child = root->InternalGetChild(i);
|
||||
DCHECK(child);
|
||||
if (BrowserAccessibility* result = FindNodeByRole(child, role))
|
||||
if (ui::BrowserAccessibility* result = FindNodeByRole(child, role)) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
@ -375,7 +377,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Testing");
|
||||
const BrowserAccessibility* wrapper1 = FindNode("Testing");
|
||||
const ui::BrowserAccessibility* wrapper1 = FindNode("Testing");
|
||||
ASSERT_NE(nullptr, wrapper1);
|
||||
wrapper1 = wrapper1->PlatformGetParent();
|
||||
ASSERT_EQ(ax::mojom::Role::kParagraph, wrapper1->GetRole());
|
||||
@ -391,7 +393,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Testing changed");
|
||||
const BrowserAccessibility* wrapper2 = FindNode("Testing changed");
|
||||
const ui::BrowserAccessibility* wrapper2 = FindNode("Testing changed");
|
||||
ASSERT_NE(nullptr, wrapper2);
|
||||
wrapper2 = wrapper2->PlatformGetParent();
|
||||
ASSERT_EQ(ax::mojom::Role::kParagraph, wrapper2->GetRole());
|
||||
@ -523,8 +525,8 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ASSERT_EQ(0u, iframe->children().size());
|
||||
const ui::AXTreeID iframe_tree_id = ui::AXTreeID::FromString(
|
||||
GetAttr(iframe, ax::mojom::StringAttribute::kChildTreeId));
|
||||
const BrowserAccessibilityManager* iframe_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
const ui::BrowserAccessibilityManager* iframe_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, iframe_manager);
|
||||
|
||||
const ui::AXNode* sub_document = iframe_manager->GetRoot();
|
||||
@ -561,12 +563,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Button");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_EQ(1U, root->PlatformChildCount());
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(1U, body->PlatformChildCount());
|
||||
const BrowserAccessibility* button = body->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* button = body->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, button->GetRole());
|
||||
EXPECT_EQ(button->GetLocation().x(), 0);
|
||||
EXPECT_EQ(button->GetLocation().y(), 0);
|
||||
@ -640,38 +642,38 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Button 2");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_EQ(1U, root->PlatformChildCount());
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(3U, body->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* button1 = body->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* button1 = body->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, button1->GetRole());
|
||||
EXPECT_STREQ(
|
||||
"Button 1",
|
||||
GetAttr(button1->node(), ax::mojom::StringAttribute::kName).c_str());
|
||||
|
||||
const BrowserAccessibility* iframe = body->PlatformGetChild(1);
|
||||
const ui::BrowserAccessibility* iframe = body->PlatformGetChild(1);
|
||||
EXPECT_STREQ(
|
||||
"iframe",
|
||||
GetAttr(iframe->node(), ax::mojom::StringAttribute::kHtmlTag).c_str());
|
||||
EXPECT_EQ(1U, iframe->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* sub_document = iframe->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* sub_document = iframe->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kRootWebArea, sub_document->GetRole());
|
||||
ASSERT_EQ(1U, sub_document->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* sub_body = sub_document->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* sub_body = sub_document->PlatformGetChild(0);
|
||||
ASSERT_EQ(1U, sub_body->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* button2 = sub_body->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* button2 = sub_body->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, button2->GetRole());
|
||||
EXPECT_STREQ(
|
||||
"Button 2",
|
||||
GetAttr(button2->node(), ax::mojom::StringAttribute::kName).c_str());
|
||||
|
||||
const BrowserAccessibility* button3 = body->PlatformGetChild(2);
|
||||
const ui::BrowserAccessibility* button3 = body->PlatformGetChild(2);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, button3->GetRole());
|
||||
EXPECT_STREQ(
|
||||
"Button 3",
|
||||
@ -697,24 +699,25 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Text in iframe");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_NE(body, nullptr);
|
||||
const BrowserAccessibility* text_before_iframe =
|
||||
const ui::BrowserAccessibility* text_before_iframe =
|
||||
FindNode("Text before iframe");
|
||||
ASSERT_NE(text_before_iframe, nullptr);
|
||||
const BrowserAccessibility* iframe = body->PlatformGetChild(1);
|
||||
const ui::BrowserAccessibility* iframe = body->PlatformGetChild(1);
|
||||
ASSERT_NE(iframe, nullptr);
|
||||
const BrowserAccessibility* sub_document = iframe->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* sub_document = iframe->PlatformGetChild(0);
|
||||
ASSERT_NE(sub_document, nullptr);
|
||||
const BrowserAccessibility* sub_body = sub_document->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* sub_body = sub_document->PlatformGetChild(0);
|
||||
ASSERT_NE(sub_body, nullptr);
|
||||
|
||||
const BrowserAccessibility* text_in_iframe = FindNode("Text in iframe");
|
||||
const ui::BrowserAccessibility* text_in_iframe = FindNode("Text in iframe");
|
||||
ASSERT_NE(text_in_iframe, nullptr);
|
||||
const BrowserAccessibility* text_after_iframe = FindNode("Text after iframe");
|
||||
const ui::BrowserAccessibility* text_after_iframe =
|
||||
FindNode("Text after iframe");
|
||||
ASSERT_NE(text_after_iframe, nullptr);
|
||||
|
||||
// Start at the beginning of the document. Anchor IDs can vary across
|
||||
@ -788,12 +791,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Sample text");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_NE(body, nullptr);
|
||||
const BrowserAccessibility* input_text = FindNode("Sample text");
|
||||
const ui::BrowserAccessibility* input_text = FindNode("Sample text");
|
||||
|
||||
// Create a position rooted at the start of the search input, then perform
|
||||
// some AXPosition operations. This will crash if AsTreePosition() is
|
||||
@ -828,14 +831,14 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Select");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_NE(body, nullptr);
|
||||
|
||||
for (size_t attempts = 0; attempts < 10; ++attempts) {
|
||||
BrowserAccessibility* select = FindNode("Select");
|
||||
ui::BrowserAccessibility* select = FindNode("Select");
|
||||
ASSERT_NE(select, nullptr);
|
||||
// If there is a popup, expand it and wait for it to appear.
|
||||
// If it's a list, it will simply click on the list.
|
||||
@ -904,8 +907,8 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ui::AXTreeID iframe_tree_id =
|
||||
ui::AXTreeID::FromString(iframe_node->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kChildTreeId));
|
||||
BrowserAccessibilityManager* first_iframe_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ui::BrowserAccessibilityManager* first_iframe_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, first_iframe_manager);
|
||||
|
||||
ui::AXNode* first_iframe_root = first_iframe_manager->GetRoot();
|
||||
@ -919,8 +922,8 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
iframe_tree_id =
|
||||
ui::AXTreeID::FromString(second_iframe_node->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kChildTreeId));
|
||||
BrowserAccessibilityManager* second_iframe_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ui::BrowserAccessibilityManager* second_iframe_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, second_iframe_manager);
|
||||
|
||||
ui::AXNode* select_node = second_iframe_manager->GetRoot()
|
||||
@ -929,16 +932,16 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
->children()[0];
|
||||
ASSERT_NE(nullptr, select_node);
|
||||
ASSERT_EQ(select_node->GetRole(), ax::mojom::Role::kComboBoxSelect);
|
||||
BrowserAccessibility* select =
|
||||
ui::BrowserAccessibility* select =
|
||||
second_iframe_manager->GetFromAXNode(select_node);
|
||||
|
||||
ui::AXNode* first_list_item_node = select_node->children()[0]->children()[0];
|
||||
ASSERT_EQ(first_list_item_node->GetRole(), ax::mojom::Role::kMenuListOption);
|
||||
ui::AXNode* second_list_item_node = select_node->children()[0]->children()[1];
|
||||
ASSERT_EQ(second_list_item_node->GetRole(), ax::mojom::Role::kMenuListOption);
|
||||
BrowserAccessibility* first_list_item =
|
||||
ui::BrowserAccessibility* first_list_item =
|
||||
second_iframe_manager->GetFromAXNode(first_list_item_node);
|
||||
BrowserAccessibility* second_list_item =
|
||||
ui::BrowserAccessibility* second_list_item =
|
||||
second_iframe_manager->GetFromAXNode(second_list_item_node);
|
||||
|
||||
gfx::Rect select_bounds =
|
||||
@ -1024,7 +1027,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ui::AXNode* select_node = root->children()[0]->children()[0]->children()[1];
|
||||
ASSERT_NE(nullptr, select_node);
|
||||
ASSERT_EQ(select_node->GetRole(), ax::mojom::Role::kComboBoxSelect);
|
||||
BrowserAccessibility* select = GetManager()->GetFromAXNode(select_node);
|
||||
ui::BrowserAccessibility* select = GetManager()->GetFromAXNode(select_node);
|
||||
|
||||
ui::AXNode* first_list_item_node = select_node->children()[0]->children()[0];
|
||||
ASSERT_EQ(first_list_item_node->GetRole(), ax::mojom::Role::kMenuListOption);
|
||||
@ -1032,11 +1035,11 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ASSERT_EQ(second_list_item_node->GetRole(), ax::mojom::Role::kMenuListOption);
|
||||
ui::AXNode* third_list_item_node = select_node->children()[0]->children()[2];
|
||||
ASSERT_EQ(third_list_item_node->GetRole(), ax::mojom::Role::kMenuListOption);
|
||||
BrowserAccessibility* first_list_item =
|
||||
ui::BrowserAccessibility* first_list_item =
|
||||
GetManager()->GetFromAXNode(first_list_item_node);
|
||||
BrowserAccessibility* second_list_item =
|
||||
ui::BrowserAccessibility* second_list_item =
|
||||
GetManager()->GetFromAXNode(second_list_item_node);
|
||||
BrowserAccessibility* third_list_item =
|
||||
ui::BrowserAccessibility* third_list_item =
|
||||
GetManager()->GetFromAXNode(third_list_item_node);
|
||||
|
||||
gfx::Rect select_bounds =
|
||||
@ -1115,25 +1118,25 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Select");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_NE(body, nullptr);
|
||||
BrowserAccessibility* select = body->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* select = body->PlatformGetChild(0);
|
||||
ASSERT_NE(select, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kComboBoxSelect, select->GetRole());
|
||||
EXPECT_TRUE(select->HasState(ax::mojom::State::kCollapsed));
|
||||
EXPECT_FALSE(select->HasState(ax::mojom::State::kExpanded));
|
||||
{
|
||||
// Get popup via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
ASSERT_NE(popup, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, popup->GetRole());
|
||||
EXPECT_TRUE(popup->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "A" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
ASSERT_NE(group_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, group_1->GetRole());
|
||||
EXPECT_EQ("A",
|
||||
@ -1142,7 +1145,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(group_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 1" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
ASSERT_NE(option_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_1->GetRole());
|
||||
EXPECT_EQ("Option 1",
|
||||
@ -1151,7 +1154,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(option_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 2" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_2 =
|
||||
const ui::BrowserAccessibility* option_2 =
|
||||
popup->InternalGetChild(1)->InternalGetChild(0);
|
||||
ASSERT_NE(option_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_2->GetRole());
|
||||
@ -1177,13 +1180,13 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_FALSE(select->HasState(ax::mojom::State::kCollapsed));
|
||||
|
||||
// Get popup.
|
||||
const BrowserAccessibility* popup = select->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* popup = select->PlatformGetChild(0);
|
||||
ASSERT_NE(popup, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, popup->GetRole());
|
||||
EXPECT_FALSE(popup->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "A" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
ASSERT_NE(group_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, group_1->GetRole());
|
||||
EXPECT_EQ("A",
|
||||
@ -1192,7 +1195,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_FALSE(group_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 1".
|
||||
const BrowserAccessibility* option_1 = group_1->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* option_1 = group_1->PlatformGetChild(0);
|
||||
ASSERT_NE(option_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_1->GetRole());
|
||||
EXPECT_EQ("Option 1",
|
||||
@ -1201,7 +1204,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_FALSE(option_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 2".
|
||||
const BrowserAccessibility* option_2 =
|
||||
const ui::BrowserAccessibility* option_2 =
|
||||
popup->InternalGetChild(1)->InternalGetChild(0);
|
||||
ASSERT_NE(option_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_2->GetRole());
|
||||
@ -1232,13 +1235,13 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(select->HasState(ax::mojom::State::kCollapsed));
|
||||
|
||||
// Get popup via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
ASSERT_NE(popup, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, popup->GetRole());
|
||||
EXPECT_TRUE(popup->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "A" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
ASSERT_NE(group_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, group_1->GetRole());
|
||||
EXPECT_EQ("A",
|
||||
@ -1247,7 +1250,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(group_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 1" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
ASSERT_NE(option_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_1->GetRole());
|
||||
EXPECT_EQ("Option 1",
|
||||
@ -1256,7 +1259,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(option_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 2" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_2 =
|
||||
const ui::BrowserAccessibility* option_2 =
|
||||
popup->InternalGetChild(1)->InternalGetChild(0);
|
||||
ASSERT_NE(option_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_2->GetRole());
|
||||
@ -1278,13 +1281,13 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(select->HasState(ax::mojom::State::kCollapsed));
|
||||
|
||||
// Get popup via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* popup = select->InternalGetChild(0);
|
||||
ASSERT_NE(popup, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListPopup, popup->GetRole());
|
||||
EXPECT_TRUE(popup->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "A" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* group_1 = popup->InternalGetChild(0);
|
||||
ASSERT_NE(group_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, group_1->GetRole());
|
||||
EXPECT_EQ("A",
|
||||
@ -1293,7 +1296,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_TRUE(group_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 1" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
const ui::BrowserAccessibility* option_1 = group_1->InternalGetChild(0);
|
||||
ASSERT_NE(option_1, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_1->GetRole());
|
||||
EXPECT_EQ("Option 1",
|
||||
@ -1302,7 +1305,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
EXPECT_FALSE(option_1->HasState(ax::mojom::State::kInvisible));
|
||||
|
||||
// Get "Option 2" via InternalGetChild so that hidden nodes are included.
|
||||
const BrowserAccessibility* option_2 =
|
||||
const ui::BrowserAccessibility* option_2 =
|
||||
popup->InternalGetChild(1)->InternalGetChild(0);
|
||||
ASSERT_NE(option_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kMenuListOption, option_2->GetRole());
|
||||
@ -1337,24 +1340,24 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Select");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* body = root->PlatformGetChild(0);
|
||||
ASSERT_NE(body, nullptr);
|
||||
BrowserAccessibility* select = body->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* select = body->PlatformGetChild(0);
|
||||
ASSERT_NE(select, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kListBox, select->GetRole());
|
||||
|
||||
// Get Optgroup "B"
|
||||
const BrowserAccessibility* opt_group_2 = select->PlatformGetChild(1);
|
||||
const ui::BrowserAccessibility* opt_group_2 = select->PlatformGetChild(1);
|
||||
ASSERT_NE(opt_group_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, opt_group_2->GetRole());
|
||||
EXPECT_EQ("B",
|
||||
opt_group_2->GetStringAttribute(ax::mojom::StringAttribute::kName));
|
||||
|
||||
// Get "Option 2".
|
||||
const BrowserAccessibility* option_2 = opt_group_2->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* option_2 = opt_group_2->PlatformGetChild(0);
|
||||
ASSERT_NE(option_2, nullptr);
|
||||
EXPECT_EQ(ax::mojom::Role::kListBoxOption, option_2->GetRole());
|
||||
EXPECT_EQ("Option 2",
|
||||
@ -1390,9 +1393,9 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Button 2");
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
BrowserAccessibility::PlatformChildIterator it =
|
||||
ui::BrowserAccessibility::PlatformChildIterator it =
|
||||
root->PlatformChildrenBegin();
|
||||
EXPECT_EQ(ax::mojom::Role::kGenericContainer, (*it).GetRole());
|
||||
it = (*it).PlatformChildrenBegin();
|
||||
@ -1539,7 +1542,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
ASSERT_EQ(18u, root->PlatformChildCount());
|
||||
|
||||
@ -1547,7 +1550,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
[root](int child_index, ax::mojom::Role expected_role,
|
||||
const std::string& expected_name,
|
||||
const std::u16string& expected_localized_landmark_type = {}) {
|
||||
BrowserAccessibility* node = root->PlatformGetChild(child_index);
|
||||
ui::BrowserAccessibility* node = root->PlatformGetChild(child_index);
|
||||
ASSERT_NE(nullptr, node);
|
||||
|
||||
EXPECT_EQ(expected_role, node->GetRole());
|
||||
@ -1618,14 +1621,14 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
ASSERT_EQ(20u, root->PlatformChildCount());
|
||||
|
||||
auto TestLocalizedRoleDescription =
|
||||
[root](int child_index,
|
||||
const std::u16string& expected_localized_role_description = {}) {
|
||||
BrowserAccessibility* node = root->PlatformGetChild(child_index);
|
||||
ui::BrowserAccessibility* node = root->PlatformGetChild(child_index);
|
||||
ASSERT_NE(nullptr, node);
|
||||
|
||||
EXPECT_EQ(expected_localized_role_description,
|
||||
@ -1665,12 +1668,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
ASSERT_EQ(1u, root->PlatformChildCount());
|
||||
|
||||
auto TestGetStyleNameAttributeAsLocalizedString =
|
||||
[](BrowserAccessibility* node, ax::mojom::Role expected_role,
|
||||
[](ui::BrowserAccessibility* node, ax::mojom::Role expected_role,
|
||||
const std::u16string& expected_localized_style_name_attribute = {}) {
|
||||
ASSERT_NE(nullptr, node);
|
||||
|
||||
@ -1680,23 +1683,23 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
};
|
||||
|
||||
// For testing purposes, assume we get en-US localized strings.
|
||||
BrowserAccessibility* para_node = root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* para_node = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(2u, para_node->PlatformChildCount());
|
||||
TestGetStyleNameAttributeAsLocalizedString(para_node,
|
||||
ax::mojom::Role::kParagraph);
|
||||
|
||||
BrowserAccessibility* text_node = para_node->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* text_node = para_node->PlatformGetChild(0);
|
||||
ASSERT_EQ(0u, text_node->PlatformChildCount());
|
||||
TestGetStyleNameAttributeAsLocalizedString(text_node,
|
||||
ax::mojom::Role::kStaticText);
|
||||
|
||||
BrowserAccessibility* mark_node = para_node->PlatformGetChild(1);
|
||||
ui::BrowserAccessibility* mark_node = para_node->PlatformGetChild(1);
|
||||
TestGetStyleNameAttributeAsLocalizedString(mark_node, ax::mojom::Role::kMark,
|
||||
u"highlight");
|
||||
|
||||
// Android doesn't always have a child in this case.
|
||||
if (mark_node->PlatformChildCount() > 0u) {
|
||||
BrowserAccessibility* mark_text_node = mark_node->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* mark_text_node = mark_node->PlatformGetChild(0);
|
||||
ASSERT_EQ(0u, mark_text_node->PlatformChildCount());
|
||||
TestGetStyleNameAttributeAsLocalizedString(
|
||||
mark_text_node, ax::mojom::Role::kStaticText, u"highlight");
|
||||
@ -1782,12 +1785,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
|
||||
// Get the delegate for the iframe leaf of the top-level accessibility tree
|
||||
// for the second iframe.
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager);
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility);
|
||||
BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestLastChild();
|
||||
ASSERT_NE(nullptr, leaf_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kIframe,
|
||||
@ -1806,10 +1809,10 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ui::AXTreeID iframe_tree_id = ui::AXTreeID::FromString(
|
||||
leaf_iframe_browser_accessibility->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kChildTreeId));
|
||||
BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ui::BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, iframe_browser_accessibility_manager);
|
||||
BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
iframe_browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
@ -1833,12 +1836,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
|
||||
// Get the delegate for the iframe leaf of the top-level accessibility tree
|
||||
// for the second iframe.
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ASSERT_NE(nullptr, browser_accessibility_manager);
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility);
|
||||
BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestLastChild();
|
||||
ASSERT_NE(nullptr, leaf_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kIframe,
|
||||
@ -1856,10 +1859,10 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ui::AXTreeID iframe_tree_id = ui::AXTreeID::FromString(
|
||||
leaf_iframe_browser_accessibility->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kChildTreeId));
|
||||
BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ui::BrowserAccessibilityManager* iframe_browser_accessibility_manager =
|
||||
ui::BrowserAccessibilityManager::FromID(iframe_tree_id);
|
||||
ASSERT_NE(nullptr, iframe_browser_accessibility_manager);
|
||||
BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_iframe_browser_accessibility =
|
||||
iframe_browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
@ -1894,19 +1897,19 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* manager = GetManager();
|
||||
ASSERT_NE(nullptr, manager);
|
||||
BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
|
||||
// Find the input control, and the popup-button
|
||||
BrowserAccessibility* input_control =
|
||||
ui::BrowserAccessibility* input_control =
|
||||
FindNodeByRole(root, ax::mojom::Role::kDateTime);
|
||||
ASSERT_NE(nullptr, input_control);
|
||||
BrowserAccessibility* popup_control =
|
||||
ui::BrowserAccessibility* popup_control =
|
||||
FindNodeByRole(input_control, ax::mojom::Role::kPopUpButton);
|
||||
ASSERT_NE(nullptr, popup_control);
|
||||
const BrowserAccessibility* sibling_button_control =
|
||||
const ui::BrowserAccessibility* sibling_button_control =
|
||||
FindNodeByRole(root, ax::mojom::Role::kButton);
|
||||
ASSERT_NE(nullptr, sibling_button_control);
|
||||
|
||||
@ -1939,7 +1942,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ASSERT_EQ(2u, controls_ids.size());
|
||||
EXPECT_EQ(controls_ids[0], sibling_button_control->GetId());
|
||||
|
||||
const BrowserAccessibility* popup_area =
|
||||
const ui::BrowserAccessibility* popup_area =
|
||||
manager->GetFromID(controls_ids[1]);
|
||||
ASSERT_NE(nullptr, popup_area);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, popup_area->GetRole());
|
||||
@ -1968,13 +1971,13 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* manager = GetManager();
|
||||
ASSERT_NE(nullptr, manager);
|
||||
BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root);
|
||||
|
||||
// Find the input control
|
||||
BrowserAccessibility* input_control =
|
||||
ui::BrowserAccessibility* input_control =
|
||||
FindNodeByRole(root, ax::mojom::Role::kColorWell);
|
||||
ASSERT_NE(nullptr, input_control);
|
||||
|
||||
@ -2004,7 +2007,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ax::mojom::IntListAttribute::kControlsIds);
|
||||
ASSERT_EQ(1u, controls_ids.size());
|
||||
|
||||
const BrowserAccessibility* popup_area =
|
||||
const ui::BrowserAccessibility* popup_area =
|
||||
manager->GetFromID(controls_ids[0]);
|
||||
ASSERT_NE(nullptr, popup_area);
|
||||
EXPECT_EQ(ax::mojom::Role::kGroup, popup_area->GetRole());
|
||||
@ -2031,12 +2034,12 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Anchor text");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_EQ(2u, root->PlatformChildCount());
|
||||
const BrowserAccessibility* target = root->PlatformGetChild(1);
|
||||
const ui::BrowserAccessibility* target = root->PlatformGetChild(1);
|
||||
ASSERT_EQ(1u, target->PlatformChildCount());
|
||||
const BrowserAccessibility* text = target->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* text = target->PlatformGetChild(0);
|
||||
|
||||
EXPECT_EQ(text->GetId(), anchor_waiter.event_target_id());
|
||||
}
|
||||
@ -2060,26 +2063,26 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest, GeneratedText) {
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_EQ(1U, root->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* heading = root->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* heading = root->PlatformGetChild(0);
|
||||
ASSERT_EQ(3U, heading->PlatformChildCount());
|
||||
|
||||
const BrowserAccessibility* static1 = heading->PlatformGetChild(0);
|
||||
const ui::BrowserAccessibility* static1 = heading->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kStaticText, static1->GetRole());
|
||||
EXPECT_STREQ(
|
||||
"[ ",
|
||||
GetAttr(static1->node(), ax::mojom::StringAttribute::kName).c_str());
|
||||
|
||||
const BrowserAccessibility* static2 = heading->PlatformGetChild(1);
|
||||
const ui::BrowserAccessibility* static2 = heading->PlatformGetChild(1);
|
||||
EXPECT_EQ(ax::mojom::Role::kStaticText, static2->GetRole());
|
||||
EXPECT_STREQ(
|
||||
"Foo",
|
||||
GetAttr(static2->node(), ax::mojom::StringAttribute::kName).c_str());
|
||||
|
||||
const BrowserAccessibility* static3 = heading->PlatformGetChild(2);
|
||||
const ui::BrowserAccessibility* static3 = heading->PlatformGetChild(2);
|
||||
EXPECT_EQ(ax::mojom::Role::kStaticText, static3->GetRole());
|
||||
EXPECT_STREQ(
|
||||
" ]",
|
||||
@ -2097,22 +2100,22 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Button with focus handler");
|
||||
|
||||
BrowserAccessibilityManager* root_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* root_accessibility_manager = GetManager();
|
||||
ASSERT_NE(nullptr, root_accessibility_manager);
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
root_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility);
|
||||
|
||||
// Focus the button within the second iframe to set focus on that document,
|
||||
// then set focus on the first iframe (with the Javascript onfocus handler)
|
||||
// and ensure onfocus fires there.
|
||||
BrowserAccessibility* second_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* second_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestLastChild();
|
||||
ASSERT_NE(nullptr, second_iframe_browser_accessibility);
|
||||
BrowserAccessibility* second_iframe_root_browser_accessibility =
|
||||
ui::BrowserAccessibility* second_iframe_root_browser_accessibility =
|
||||
second_iframe_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, second_iframe_root_browser_accessibility);
|
||||
BrowserAccessibility* second_button = FindNodeByRole(
|
||||
ui::BrowserAccessibility* second_button = FindNodeByRole(
|
||||
second_iframe_root_browser_accessibility, ax::mojom::Role::kButton);
|
||||
ASSERT_NE(nullptr, second_button);
|
||||
AccessibilityNotificationWaiter waiter(
|
||||
@ -2121,13 +2124,13 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
EXPECT_EQ(second_button, root_accessibility_manager->GetFocus());
|
||||
|
||||
BrowserAccessibility* first_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* first_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestFirstChild();
|
||||
ASSERT_NE(nullptr, first_iframe_browser_accessibility);
|
||||
BrowserAccessibility* first_iframe_root_browser_accessibility =
|
||||
ui::BrowserAccessibility* first_iframe_root_browser_accessibility =
|
||||
first_iframe_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, first_iframe_root_browser_accessibility);
|
||||
BrowserAccessibility* first_button = FindNodeByRole(
|
||||
ui::BrowserAccessibility* first_button = FindNodeByRole(
|
||||
first_iframe_root_browser_accessibility, ax::mojom::Role::kButton);
|
||||
ASSERT_NE(nullptr, first_button);
|
||||
|
||||
@ -2149,9 +2152,9 @@ IN_PROC_BROWSER_TEST_F(
|
||||
"Second Button");
|
||||
|
||||
// Get the root BrowserAccessibilityManager and BrowserAccessibility node.
|
||||
BrowserAccessibilityManager* root_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* root_accessibility_manager = GetManager();
|
||||
ASSERT_NE(nullptr, root_accessibility_manager);
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
root_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(nullptr, root_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
@ -2159,17 +2162,17 @@ IN_PROC_BROWSER_TEST_F(
|
||||
|
||||
// Focus the button within the iframe.
|
||||
{
|
||||
BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
ui::BrowserAccessibility* leaf_iframe_browser_accessibility =
|
||||
root_browser_accessibility->InternalDeepestLastChild();
|
||||
ASSERT_NE(nullptr, leaf_iframe_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kIframe,
|
||||
leaf_iframe_browser_accessibility->GetRole());
|
||||
BrowserAccessibility* second_iframe_root_browser_accessibility =
|
||||
ui::BrowserAccessibility* second_iframe_root_browser_accessibility =
|
||||
leaf_iframe_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, second_iframe_root_browser_accessibility);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea,
|
||||
second_iframe_root_browser_accessibility->GetRole());
|
||||
BrowserAccessibility* second_button = FindNodeByRole(
|
||||
ui::BrowserAccessibility* second_button = FindNodeByRole(
|
||||
second_iframe_root_browser_accessibility, ax::mojom::Role::kButton);
|
||||
ASSERT_NE(nullptr, second_button);
|
||||
|
||||
@ -2203,14 +2206,15 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
LoadInitialAccessibilityTreeFromHtmlFilePath(
|
||||
"/accessibility/scrolling/implicit-root-scroller.html");
|
||||
|
||||
BrowserAccessibilityManager* manager = GetManager();
|
||||
const BrowserAccessibility* heading = FindNodeByRole(
|
||||
ui::BrowserAccessibilityManager* manager = GetManager();
|
||||
const ui::BrowserAccessibility* heading = FindNodeByRole(
|
||||
manager->GetBrowserAccessibilityRoot(), ax::mojom::Role::kHeading);
|
||||
|
||||
// Ensure that this page has an implicit root scroller that's something
|
||||
// other than the root of the accessibility tree.
|
||||
ui::AXNodeID root_scroller_id = manager->GetTreeData().root_scroller_id;
|
||||
BrowserAccessibility* root_scroller = manager->GetFromID(root_scroller_id);
|
||||
ui::BrowserAccessibility* root_scroller =
|
||||
manager->GetFromID(root_scroller_id);
|
||||
ASSERT_TRUE(root_scroller);
|
||||
EXPECT_NE(root_scroller_id, manager->GetBrowserAccessibilityRoot()->GetId());
|
||||
|
||||
@ -2425,8 +2429,8 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
</body>
|
||||
</html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root_browser_accessibility, nullptr);
|
||||
|
||||
@ -2498,21 +2502,21 @@ IN_PROC_BROWSER_TEST_F(
|
||||
</ul>
|
||||
</body></html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root_browser_accessibility, nullptr);
|
||||
|
||||
BrowserAccessibility* input_browser_accessibility =
|
||||
ui::BrowserAccessibility* input_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kTextFieldWithComboBox);
|
||||
ASSERT_NE(input_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_box_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_box_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kListBox);
|
||||
ASSERT_NE(list_box_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(list_option_1_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(1);
|
||||
ASSERT_NE(list_option_2_browser_accessibility, nullptr);
|
||||
|
||||
@ -2574,24 +2578,24 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
<button></button>
|
||||
</body></html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root_browser_accessibility, nullptr);
|
||||
|
||||
BrowserAccessibility* input_browser_accessibility =
|
||||
ui::BrowserAccessibility* input_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kTextFieldWithComboBox);
|
||||
ASSERT_NE(input_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_box_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_box_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kListBox);
|
||||
ASSERT_NE(list_box_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(list_option_1_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(1);
|
||||
ASSERT_NE(list_option_2_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* button_browser_accessibility =
|
||||
ui::BrowserAccessibility* button_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kButton);
|
||||
ASSERT_NE(button_browser_accessibility, nullptr);
|
||||
|
||||
@ -2659,21 +2663,21 @@ IN_PROC_BROWSER_TEST_F(
|
||||
</ul>
|
||||
</body></html>)HTML");
|
||||
|
||||
BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
BrowserAccessibility* root_browser_accessibility =
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager = GetManager();
|
||||
ui::BrowserAccessibility* root_browser_accessibility =
|
||||
browser_accessibility_manager->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root_browser_accessibility, nullptr);
|
||||
|
||||
BrowserAccessibility* input_browser_accessibility =
|
||||
ui::BrowserAccessibility* input_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kTextFieldWithComboBox);
|
||||
ASSERT_NE(input_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_box_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_box_browser_accessibility =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kListBox);
|
||||
ASSERT_NE(list_box_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_1_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(0);
|
||||
ASSERT_NE(list_option_1_browser_accessibility, nullptr);
|
||||
BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
ui::BrowserAccessibility* list_option_2_browser_accessibility =
|
||||
list_box_browser_accessibility->PlatformGetChild(1);
|
||||
ASSERT_NE(list_option_2_browser_accessibility, nullptr);
|
||||
|
||||
@ -2750,7 +2754,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"NextButton");
|
||||
|
||||
BrowserAccessibility* button =
|
||||
ui::BrowserAccessibility* button =
|
||||
FindFirstNodeWithRole(ax::mojom::Role::kButton);
|
||||
gfx::Rect bounds0 = button->GetUnclippedRootFrameBoundsRect();
|
||||
|
||||
@ -2783,7 +2787,7 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
|
||||
"Input");
|
||||
|
||||
BrowserAccessibility* input_node = FindNode("Input");
|
||||
ui::BrowserAccessibility* input_node = FindNode("Input");
|
||||
ASSERT_NE(input_node, nullptr);
|
||||
|
||||
// We select an arbitrary portion of the text.
|
||||
@ -2815,10 +2819,10 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
}
|
||||
|
||||
const BrowserAccessibility* root =
|
||||
const ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
ASSERT_NE(root, nullptr);
|
||||
const BrowserAccessibility* input = FindNode("Input");
|
||||
const ui::BrowserAccessibility* input = FindNode("Input");
|
||||
ASSERT_NE(input, nullptr);
|
||||
|
||||
EXPECT_TRUE(input->HasIntListAttribute(
|
||||
|
@ -19,8 +19,6 @@
|
||||
#include "base/test/scoped_command_line.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_child_frame.h"
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
@ -41,6 +39,8 @@
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/ax_role_properties.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/ui_base_features.h"
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
@ -143,7 +143,7 @@ void WaitForChildTrees(const ui::AXNode& node,
|
||||
}
|
||||
}
|
||||
|
||||
bool IsLoadedDocWithUrl(const BrowserAccessibility* node,
|
||||
bool IsLoadedDocWithUrl(const ui::BrowserAccessibility* node,
|
||||
const std::string& url) {
|
||||
return node->GetRole() == ax::mojom::Role::kRootWebArea &&
|
||||
node->GetStringAttribute(ax::mojom::StringAttribute::kUrl) == url &&
|
||||
@ -155,7 +155,7 @@ bool IsLoadedDocWithUrl(const BrowserAccessibility* node,
|
||||
// |num_expected| occurrences are found, it returns the remainder. Otherwise,
|
||||
// it stops searching when reaching |num_expected| occurrences, and returns 0.
|
||||
unsigned SearchLoadedDocsWithUrlInAccessibilityTree(
|
||||
const BrowserAccessibility* node,
|
||||
const ui::BrowserAccessibility* node,
|
||||
const std::string& url,
|
||||
unsigned num_expected) {
|
||||
if (!num_expected)
|
||||
@ -316,7 +316,7 @@ void DumpAccessibilityTestBase::PerformAndWaitForDefaultActions(
|
||||
// the name to something more like kAccessibilityClean).
|
||||
AccessibilityNotificationWaiter waiter(GetWebContents(), mode,
|
||||
ax::mojom::Event::kClicked);
|
||||
BrowserAccessibility* action_element;
|
||||
ui::BrowserAccessibility* action_element;
|
||||
|
||||
// TODO(accessibility) base/strings/string_split.h might be cleaner here.
|
||||
size_t parent_node_delimiter_index = str.find(",");
|
||||
@ -324,7 +324,7 @@ void DumpAccessibilityTestBase::PerformAndWaitForDefaultActions(
|
||||
auto node_name = str.substr(0, parent_node_delimiter_index);
|
||||
auto parent_node_name = str.substr(parent_node_delimiter_index + 1);
|
||||
|
||||
BrowserAccessibility* parent_node = FindNode(parent_node_name);
|
||||
ui::BrowserAccessibility* parent_node = FindNode(parent_node_name);
|
||||
DCHECK(parent_node) << "Parent node name provided but not found";
|
||||
action_element = FindNode(node_name, parent_node);
|
||||
} else {
|
||||
@ -390,7 +390,7 @@ void DumpAccessibilityTestBase::RunTestForPlatform(
|
||||
const base::FilePath::StringType& expectations_qualifier) {
|
||||
// Ignore the hovered state (set when the mouse is hovering over
|
||||
// an object) because it makes test output change based on the mouse position.
|
||||
BrowserAccessibility::ignore_hovered_state_for_testing_ = true;
|
||||
ui::BrowserAccessibility::ignore_hovered_state_for_testing_ = true;
|
||||
|
||||
// For Android, set a consistent user preference for how password display.
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
@ -401,7 +401,7 @@ void DumpAccessibilityTestBase::RunTestForPlatform(
|
||||
// delayed, depending on what has focus or the type of event. For testing,
|
||||
// we want all events to fire immediately to make tests predictable and not
|
||||
// flaky.
|
||||
BrowserAccessibilityManager::NeverSuppressOrDelayEventsForTesting();
|
||||
ui::BrowserAccessibilityManager::NeverSuppressOrDelayEventsForTesting();
|
||||
|
||||
// Enable the behavior whereby all focused nodes will be exposed to the
|
||||
// platform accessibility layer. This behavior is currently disabled in
|
||||
@ -454,8 +454,8 @@ void DumpAccessibilityTestBase::RunTestForPlatform(
|
||||
ASSERT_TRUE(accessibility_waiter.WaitForNotification());
|
||||
}
|
||||
|
||||
static_cast<content::BrowserAccessibilityStateImpl*>(
|
||||
content::BrowserAccessibilityState::GetInstance())
|
||||
static_cast<BrowserAccessibilityStateImpl*>(
|
||||
BrowserAccessibilityState::GetInstance())
|
||||
->SetAXModeChangeAllowed(false);
|
||||
WaitForAllFramesLoaded(mode);
|
||||
|
||||
@ -540,10 +540,10 @@ void DumpAccessibilityTestBase::WaitForAllFramesLoaded(ui::AXMode mode) {
|
||||
VLOG(1) << "Top of WaitForAllFramesLoaded() loop";
|
||||
RenderFrameHostImpl* main_frame =
|
||||
static_cast<RenderFrameHostImpl*>(web_contents->GetPrimaryMainFrame());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
main_frame->browser_accessibility_manager();
|
||||
if (manager) {
|
||||
BrowserAccessibility* accessibility_root =
|
||||
ui::BrowserAccessibility* accessibility_root =
|
||||
manager->GetBrowserAccessibilityRoot();
|
||||
|
||||
WaitForChildTrees(*accessibility_root->node(),
|
||||
@ -575,18 +575,18 @@ void DumpAccessibilityTestBase::WaitForAllFramesLoaded(ui::AXMode mode) {
|
||||
}
|
||||
}
|
||||
|
||||
BrowserAccessibility* DumpAccessibilityTestBase::FindNode(
|
||||
ui::BrowserAccessibility* DumpAccessibilityTestBase::FindNode(
|
||||
const std::string& name,
|
||||
BrowserAccessibility* search_root) const {
|
||||
ui::BrowserAccessibility* search_root) const {
|
||||
if (!search_root)
|
||||
search_root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
|
||||
CHECK(search_root);
|
||||
BrowserAccessibility* node = FindNodeInSubtree(*search_root, name);
|
||||
ui::BrowserAccessibility* node = FindNodeInSubtree(*search_root, name);
|
||||
return node;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* DumpAccessibilityTestBase::GetManager() const {
|
||||
ui::BrowserAccessibilityManager* DumpAccessibilityTestBase::GetManager() const {
|
||||
return GetWebContents()->GetRootBrowserAccessibilityManager();
|
||||
}
|
||||
|
||||
@ -603,7 +603,7 @@ std::pair<EvalJsResult, std::vector<std::string>>
|
||||
DumpAccessibilityTestBase::CaptureEvents(InvokeAction invoke_action,
|
||||
ui::AXMode mode) {
|
||||
// Create a new Event Recorder for the run.
|
||||
BrowserAccessibilityManager* manager = GetManager();
|
||||
ui::BrowserAccessibilityManager* manager = GetManager();
|
||||
ui::AXTreeSelector selector(manager->GetBrowserAccessibilityRoot()
|
||||
->GetTargetForNativeAccessibilityEvent());
|
||||
std::unique_ptr<ui::AXEventRecorder> event_recorder =
|
||||
@ -660,14 +660,14 @@ DumpAccessibilityTestBase::CaptureEvents(InvokeAction invoke_action,
|
||||
return std::make_pair(std::move(action_result), std::move(event_logs));
|
||||
}
|
||||
|
||||
BrowserAccessibility* DumpAccessibilityTestBase::FindNodeInSubtree(
|
||||
BrowserAccessibility& node,
|
||||
ui::BrowserAccessibility* DumpAccessibilityTestBase::FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
const std::string& name) const {
|
||||
if (node.GetStringAttribute(ax::mojom::StringAttribute::kName) == name)
|
||||
return &node;
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), name);
|
||||
if (result)
|
||||
return result;
|
||||
@ -675,18 +675,18 @@ BrowserAccessibility* DumpAccessibilityTestBase::FindNodeInSubtree(
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
BrowserAccessibility* DumpAccessibilityTestBase::FindNodeByStringAttribute(
|
||||
ui::BrowserAccessibility* DumpAccessibilityTestBase::FindNodeByStringAttribute(
|
||||
const ax::mojom::StringAttribute attr,
|
||||
const std::string& value) const {
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
|
||||
CHECK(root);
|
||||
return FindNodeByStringAttributeInSubtree(*root, attr, value);
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
DumpAccessibilityTestBase::FindNodeByStringAttributeInSubtree(
|
||||
BrowserAccessibility& node,
|
||||
ui::BrowserAccessibility& node,
|
||||
const ax::mojom::StringAttribute attr,
|
||||
const std::string& value) const {
|
||||
if (node.GetStringAttribute(attr) == value) {
|
||||
@ -694,7 +694,7 @@ DumpAccessibilityTestBase::FindNodeByStringAttributeInSubtree(
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
if (BrowserAccessibility* result = FindNodeByStringAttributeInSubtree(
|
||||
if (ui::BrowserAccessibility* result = FindNodeByStringAttributeInSubtree(
|
||||
*node.PlatformGetChild(i), attr, value)) {
|
||||
return result;
|
||||
}
|
||||
|
@ -23,10 +23,13 @@
|
||||
#include "ui/accessibility/platform/inspect/ax_inspect_scenario.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_inspect_test_helper.h"
|
||||
|
||||
namespace ui {
|
||||
class BrowserAccessibilityManager;
|
||||
class BrowserAccessibility;
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
|
||||
class BrowserAccessibility;
|
||||
class BrowserAccessibilityManager;
|
||||
|
||||
// Base class for an accessibility browsertest that takes an HTML file as
|
||||
// input, loads it into a tab, dumps some accessibility data in text format,
|
||||
@ -162,13 +165,13 @@ class DumpAccessibilityTestBase
|
||||
// Retrieve the accessibility node that matches the accessibility name. There
|
||||
// is an optional search_root parameter that defaults to the document root if
|
||||
// not provided.
|
||||
BrowserAccessibility* FindNode(
|
||||
ui::BrowserAccessibility* FindNode(
|
||||
const std::string& name,
|
||||
BrowserAccessibility* search_root = nullptr) const;
|
||||
ui::BrowserAccessibility* search_root = nullptr) const;
|
||||
|
||||
// Retrieve the browser accessibility manager object for the current web
|
||||
// contents.
|
||||
BrowserAccessibilityManager* GetManager() const;
|
||||
ui::BrowserAccessibilityManager* GetManager() const;
|
||||
|
||||
std::unique_ptr<ui::AXTreeFormatter> CreateFormatter() const;
|
||||
|
||||
@ -187,7 +190,7 @@ class DumpAccessibilityTestBase
|
||||
|
||||
base::test::ScopedFeatureList scoped_feature_list_;
|
||||
|
||||
BrowserAccessibility* FindNodeByStringAttribute(
|
||||
ui::BrowserAccessibility* FindNodeByStringAttribute(
|
||||
const ax::mojom::StringAttribute attr,
|
||||
const std::string& value) const;
|
||||
|
||||
@ -227,11 +230,11 @@ class DumpAccessibilityTestBase
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
const std::string& name) const;
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(ui::BrowserAccessibility& node,
|
||||
const std::string& name) const;
|
||||
|
||||
BrowserAccessibility* FindNodeByStringAttributeInSubtree(
|
||||
BrowserAccessibility& node,
|
||||
ui::BrowserAccessibility* FindNodeByStringAttributeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
const ax::mojom::StringAttribute attr,
|
||||
const std::string& value) const;
|
||||
|
||||
|
@ -19,8 +19,6 @@
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/accessibility/dump_accessibility_browsertest_base.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
@ -32,10 +30,12 @@
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_api_type.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_tree_formatter.h"
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_win.h"
|
||||
#endif
|
||||
|
||||
namespace content {
|
||||
@ -1044,9 +1044,10 @@ IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest,
|
||||
IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest,
|
||||
AccessibilityEventsSamePageLinkNavigation) {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
if (!BrowserAccessibilityManagerWin::
|
||||
IsUiaActiveTextPositionChangedEventSupported())
|
||||
if (!ui::BrowserAccessibilityManagerWin::
|
||||
IsUiaActiveTextPositionChangedEventSupported()) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
RunEventTest(FILE_PATH_LITERAL("same-page-link-navigation.html"));
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ class DumpAccessibilityNodeTest : public DumpAccessibilityTestBase {
|
||||
formatter->SetPropertyFilters(scenario_.property_filters,
|
||||
AXTreeFormatter::kFiltersDefaultSet);
|
||||
|
||||
BrowserAccessibility* test_node =
|
||||
ui::BrowserAccessibility* test_node =
|
||||
FindNodeByStringAttribute(ax::mojom::StringAttribute::kHtmlId, "test");
|
||||
if (!test_node)
|
||||
test_node = FindNodeByStringAttribute(
|
||||
|
@ -5,13 +5,13 @@
|
||||
#include "base/command_line.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/dump_accessibility_browsertest_base.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "content/public/test/browser_test_utils.h"
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_api_type.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_script_instruction.h"
|
||||
#include "ui/events/keycodes/dom/keycode_converter.h"
|
||||
@ -89,7 +89,8 @@ class DumpAccessibilityScriptTest : public DumpAccessibilityTestBase {
|
||||
std::vector<std::string> Dump(ui::AXMode mode) override {
|
||||
std::vector<std::string> dump;
|
||||
std::unique_ptr<AXTreeFormatter> formatter(CreateFormatter());
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
|
||||
size_t start_index = 0;
|
||||
size_t length = scenario_.script_instructions.size();
|
||||
@ -167,7 +168,7 @@ class DumpAccessibilityScriptTest : public DumpAccessibilityTestBase {
|
||||
|
||||
EvalJsResult EvaluateScript(
|
||||
AXTreeFormatter* formatter,
|
||||
BrowserAccessibility* root,
|
||||
ui::BrowserAccessibility* root,
|
||||
const std::vector<AXScriptInstruction>& instructions,
|
||||
size_t start_index,
|
||||
size_t end_index) {
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/dump_accessibility_browsertest_base.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
|
@ -2,8 +2,6 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/common/features.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -13,6 +11,8 @@
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
@ -22,17 +22,19 @@ class AccessibilityFullscreenBrowserTest : public ContentBrowserTest {
|
||||
~AccessibilityFullscreenBrowserTest() override = default;
|
||||
|
||||
protected:
|
||||
BrowserAccessibility* FindButton(BrowserAccessibility* node) {
|
||||
ui::BrowserAccessibility* FindButton(ui::BrowserAccessibility* node) {
|
||||
if (node->GetRole() == ax::mojom::Role::kButton)
|
||||
return node;
|
||||
for (unsigned i = 0; i < node->PlatformChildCount(); i++) {
|
||||
if (BrowserAccessibility* button = FindButton(node->PlatformGetChild(i)))
|
||||
if (ui::BrowserAccessibility* button =
|
||||
FindButton(node->PlatformGetChild(i))) {
|
||||
return button;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int CountLinks(BrowserAccessibility* node) {
|
||||
int CountLinks(ui::BrowserAccessibility* node) {
|
||||
if (node->GetRole() == ax::mojom::Role::kLink)
|
||||
return 1;
|
||||
int links_in_children = 0;
|
||||
@ -93,7 +95,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFullscreenBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Initially there are 3 links in the accessibility tree.
|
||||
@ -101,7 +103,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFullscreenBrowserTest,
|
||||
|
||||
// Enter fullscreen by finding the button and performing the default action,
|
||||
// which is to click it.
|
||||
BrowserAccessibility* button =
|
||||
ui::BrowserAccessibility* button =
|
||||
FindButton(manager->GetBrowserAccessibilityRoot());
|
||||
ASSERT_NE(nullptr, button);
|
||||
manager->DoDefaultAction(*button);
|
||||
@ -131,7 +133,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFullscreenBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Initially there's just one link, in the top frame.
|
||||
@ -139,7 +141,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFullscreenBrowserTest,
|
||||
|
||||
// Enter fullscreen by finding the button and performing the default action,
|
||||
// which is to click it.
|
||||
BrowserAccessibility* button =
|
||||
ui::BrowserAccessibility* button =
|
||||
FindButton(manager->GetBrowserAccessibilityRoot());
|
||||
ASSERT_NE(nullptr, button);
|
||||
manager->DoDefaultAction(*button);
|
||||
|
@ -12,8 +12,6 @@
|
||||
#include "build/chromecast_buildflags.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
@ -32,6 +30,8 @@
|
||||
#include "ui/accessibility/ax_node_id_forward.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_base.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/display/display_switches.h"
|
||||
#include "ui/gfx/geometry/vector2d_conversions.h"
|
||||
|
||||
@ -69,7 +69,7 @@ std::string AccessibilityHitTestingBrowserTest::TestPassToString::operator()(
|
||||
return sanitized_name;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
AccessibilityHitTestingBrowserTest::GetRootBrowserAccessibilityManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
@ -127,11 +127,12 @@ gfx::Point AccessibilityHitTestingBrowserTest::CSSToPhysicalPixelPoint(
|
||||
return physical_pixel_point;
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityHitTestingBrowserTest::HitTestAndWaitForResultWithEvent(
|
||||
const gfx::Point& point,
|
||||
ax::mojom::Event event_to_fire) {
|
||||
BrowserAccessibilityManager* manager = GetRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetRootBrowserAccessibilityManager();
|
||||
|
||||
AccessibilityNotificationWaiter event_waiter(
|
||||
shell()->web_contents(), ui::kAXModeComplete, event_to_fire);
|
||||
@ -143,23 +144,25 @@ AccessibilityHitTestingBrowserTest::HitTestAndWaitForResultWithEvent(
|
||||
event_to_fire, 0, {});
|
||||
EXPECT_TRUE(event_waiter.WaitForNotification());
|
||||
|
||||
BrowserAccessibilityManager* target_manager =
|
||||
ui::BrowserAccessibilityManager* target_manager =
|
||||
event_waiter.event_browser_accessibility_manager();
|
||||
int event_target_id = event_waiter.event_target_id();
|
||||
BrowserAccessibility* hit_node = target_manager->GetFromID(event_target_id);
|
||||
ui::BrowserAccessibility* hit_node =
|
||||
target_manager->GetFromID(event_target_id);
|
||||
return hit_node;
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityHitTestingBrowserTest::HitTestAndWaitForResult(
|
||||
const gfx::Point& point) {
|
||||
return HitTestAndWaitForResultWithEvent(point, ax::mojom::Event::kHover);
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityHitTestingBrowserTest::AsyncHitTestAndWaitForCallback(
|
||||
const gfx::Point& point) {
|
||||
BrowserAccessibilityManager* manager = GetRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetRootBrowserAccessibilityManager();
|
||||
|
||||
gfx::Point target_point = CSSToFramePoint(point);
|
||||
base::RunLoop run_loop;
|
||||
@ -177,13 +180,13 @@ AccessibilityHitTestingBrowserTest::AsyncHitTestAndWaitForCallback(
|
||||
base::BindLambdaForTesting(callback));
|
||||
run_loop.Run();
|
||||
|
||||
BrowserAccessibility* hit_node =
|
||||
static_cast<BrowserAccessibilityManager*>(hit_manager)
|
||||
ui::BrowserAccessibility* hit_node =
|
||||
static_cast<ui::BrowserAccessibilityManager*>(hit_manager)
|
||||
->GetFromID(hit_node_id);
|
||||
return hit_node;
|
||||
}
|
||||
|
||||
BrowserAccessibility*
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityHitTestingBrowserTest::CallCachingAsyncHitTest(
|
||||
const gfx::Point& page_point) {
|
||||
gfx::Point screen_point = CSSToPhysicalPixelPoint(page_point);
|
||||
@ -194,17 +197,18 @@ AccessibilityHitTestingBrowserTest::CallCachingAsyncHitTest(
|
||||
AccessibilityNotificationWaiter hover_waiter(
|
||||
shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kHover);
|
||||
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
GetRootBrowserAccessibilityManager()->CachingAsyncHitTest(screen_point);
|
||||
|
||||
EXPECT_TRUE(hover_waiter.WaitForNotification());
|
||||
return result;
|
||||
}
|
||||
|
||||
BrowserAccessibility* AccessibilityHitTestingBrowserTest::CallNearestLeafNode(
|
||||
ui::BrowserAccessibility*
|
||||
AccessibilityHitTestingBrowserTest::CallNearestLeafNode(
|
||||
const gfx::Point& page_point) {
|
||||
gfx::Point screen_point = CSSToPhysicalPixelPoint(page_point);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents())
|
||||
->GetRootBrowserAccessibilityManager();
|
||||
|
||||
@ -222,7 +226,7 @@ BrowserAccessibility* AccessibilityHitTestingBrowserTest::CallNearestLeafNode(
|
||||
}
|
||||
EXPECT_TRUE(hover_waiter.WaitForNotification());
|
||||
if (platform_node) {
|
||||
return BrowserAccessibility::FromAXPlatformNodeDelegate(
|
||||
return ui::BrowserAccessibility::FromAXPlatformNodeDelegate(
|
||||
platform_node->GetDelegate());
|
||||
}
|
||||
return nullptr;
|
||||
@ -355,8 +359,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the main frame.
|
||||
{
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_2_point, expected_node, hit_node);
|
||||
}
|
||||
@ -364,8 +368,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the iframe.
|
||||
{
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
}
|
||||
@ -396,8 +400,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest, MAYBE_HitTest) {
|
||||
// Test a hit on a rect in the main frame.
|
||||
{
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_2_point, expected_node, hit_node);
|
||||
|
||||
@ -409,8 +413,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest, MAYBE_HitTest) {
|
||||
// Test a hit on a rect in the iframe.
|
||||
{
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
|
||||
@ -501,7 +505,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
|
||||
gfx::Point out_of_bounds_point(-1, -1);
|
||||
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(out_of_bounds_point);
|
||||
ui::BrowserAccessibility* hit_node =
|
||||
HitTestAndWaitForResult(out_of_bounds_point);
|
||||
ASSERT_TRUE(hit_node != nullptr);
|
||||
ASSERT_EQ(ax::mojom::Role::kRootWebArea, hit_node->GetRole());
|
||||
|
||||
@ -549,8 +554,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingCrossProcessBrowserTest,
|
||||
// Before scrolling.
|
||||
{
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
|
||||
@ -570,8 +575,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingCrossProcessBrowserTest,
|
||||
// After scrolling.
|
||||
{
|
||||
gfx::Point rect_g_point(79, 89);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_g_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_g_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectG");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_g_point, expected_node, hit_node);
|
||||
|
||||
@ -609,8 +614,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
{
|
||||
// First call should land on the wrong element.
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_NE(expected_node->GetName(), hit_node->GetName());
|
||||
|
||||
@ -623,8 +628,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
{
|
||||
// First call should land on the wrong element.
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_NE(expected_node->GetName(), hit_node->GetName());
|
||||
|
||||
@ -664,8 +669,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the main frame.
|
||||
{
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_2_point, expected_node, hit_node);
|
||||
}
|
||||
@ -673,8 +678,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the iframe.
|
||||
{
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
}
|
||||
@ -710,8 +715,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the main frame.
|
||||
{
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_2_point, expected_node, hit_node);
|
||||
|
||||
@ -723,8 +728,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on a rect in the iframe.
|
||||
{
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = HitTestAndWaitForResult(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
|
||||
@ -767,8 +772,8 @@ IN_PROC_BROWSER_TEST_P(
|
||||
{
|
||||
// First call should land on the wrong element.
|
||||
gfx::Point rect_2_point(49, 20);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
EXPECT_NE(expected_node->GetName(), hit_node->GetName());
|
||||
|
||||
@ -781,8 +786,8 @@ IN_PROC_BROWSER_TEST_P(
|
||||
{
|
||||
// First call should land on the wrong element.
|
||||
gfx::Point rect_b_point(79, 79);
|
||||
BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallCachingAsyncHitTest(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
EXPECT_NE(expected_node->GetName(), hit_node->GetName());
|
||||
|
||||
@ -817,8 +822,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on text in the main frame.
|
||||
{
|
||||
gfx::Point rect_2_point(70, 20);
|
||||
BrowserAccessibility* hit_node = CallNearestLeafNode(rect_2_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallNearestLeafNode(rect_2_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "2");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_2_point, expected_node, hit_node);
|
||||
}
|
||||
@ -826,8 +831,8 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
|
||||
// Test a hit on text in the iframe.
|
||||
{
|
||||
gfx::Point rect_b_point(100, 100);
|
||||
BrowserAccessibility* hit_node = CallNearestLeafNode(rect_b_point);
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* hit_node = CallNearestLeafNode(rect_b_point);
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kStaticText, "B");
|
||||
EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(rect_b_point, expected_node, hit_node);
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ class AccessibilityHitTestingBrowserTest
|
||||
};
|
||||
|
||||
protected:
|
||||
BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
float GetDeviceScaleFactor();
|
||||
float GetPageScaleFactor();
|
||||
gfx::Rect GetViewBoundsInScreenCoordinates();
|
||||
@ -40,18 +40,20 @@ class AccessibilityHitTestingBrowserTest
|
||||
gfx::Point FrameToCSSPoint(gfx::Point css_point);
|
||||
|
||||
// Test the hit test action that fires an event.
|
||||
BrowserAccessibility* HitTestAndWaitForResultWithEvent(
|
||||
ui::BrowserAccessibility* HitTestAndWaitForResultWithEvent(
|
||||
const gfx::Point& point,
|
||||
ax::mojom::Event event_to_fire);
|
||||
BrowserAccessibility* HitTestAndWaitForResult(const gfx::Point& point);
|
||||
ui::BrowserAccessibility* HitTestAndWaitForResult(const gfx::Point& point);
|
||||
|
||||
// Test the hit test mojo RPC that calls a callback function.
|
||||
BrowserAccessibility* AsyncHitTestAndWaitForCallback(const gfx::Point& point);
|
||||
ui::BrowserAccessibility* AsyncHitTestAndWaitForCallback(
|
||||
const gfx::Point& point);
|
||||
|
||||
// Test the caching async hit test.
|
||||
BrowserAccessibility* CallCachingAsyncHitTest(const gfx::Point& page_point);
|
||||
ui::BrowserAccessibility* CallCachingAsyncHitTest(
|
||||
const gfx::Point& page_point);
|
||||
|
||||
BrowserAccessibility* CallNearestLeafNode(const gfx::Point& page_point);
|
||||
ui::BrowserAccessibility* CallNearestLeafNode(const gfx::Point& page_point);
|
||||
void SynchronizeThreads();
|
||||
std::string FormatHitTestAccessibilityTree();
|
||||
std::string GetScopedTrace(gfx::Point css_point);
|
||||
|
@ -2,14 +2,14 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "content/browser/accessibility/hit_testing_browsertest.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "content/public/test/browser_test_utils.h"
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
#include "ui/gfx/mac/coordinate_conversion.h"
|
||||
|
||||
namespace content {
|
||||
|
@ -11,8 +11,6 @@
|
||||
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "base/win/scoped_variant.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/hit_testing_browsertest.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
@ -20,6 +18,8 @@
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
#include <uiautomation.h>
|
||||
|
||||
@ -100,7 +100,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest, AccHitTest) {
|
||||
ComPtr<IAccessible> hit_accessible;
|
||||
ASSERT_HRESULT_SUCCEEDED(hit_variant.ptr()->pdispVal->QueryInterface(
|
||||
IID_PPV_ARGS(&hit_accessible)));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
ComPtr<IAccessible> expected_accessible;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
@ -122,7 +122,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest, AccHitTest) {
|
||||
ComPtr<IAccessible> hit_accessible;
|
||||
ASSERT_HRESULT_SUCCEEDED(hit_variant.ptr()->pdispVal->QueryInterface(
|
||||
IID_PPV_ARGS(&hit_accessible)));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
ComPtr<IAccessible> expected_accessible;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
@ -160,7 +160,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest,
|
||||
ComPtr<IRawElementProviderFragment> hit_fragment;
|
||||
ASSERT_HRESULT_SUCCEEDED(fragment_root->ElementProviderFromPoint(
|
||||
rect_2_point_physical.x(), rect_2_point_physical.y(), &hit_fragment));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
ComPtr<IRawElementProviderFragment> expected_fragment;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
@ -177,7 +177,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest,
|
||||
ComPtr<IRawElementProviderFragment> hit_fragment;
|
||||
ASSERT_HRESULT_SUCCEEDED(fragment_root->ElementProviderFromPoint(
|
||||
rect_b_point_physical.x(), rect_b_point_physical.y(), &hit_fragment));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
ComPtr<IRawElementProviderFragment> expected_fragment;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
@ -220,7 +220,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest,
|
||||
text_provider->RangeFromPoint(uia_point, &hit_text_range));
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
hit_text_range->ExpandToEnclosingUnit(TextUnit_Character));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rect2");
|
||||
ComPtr<IRawElementProviderSimple> expected_provider;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
@ -249,7 +249,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingWinBrowserTest,
|
||||
text_provider->RangeFromPoint(uia_point, &hit_text_range));
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
hit_text_range->ExpandToEnclosingUnit(TextUnit_Character));
|
||||
BrowserAccessibility* expected_node =
|
||||
ui::BrowserAccessibility* expected_node =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "rectB");
|
||||
ComPtr<IRawElementProviderSimple> expected_provider;
|
||||
ASSERT_HRESULT_SUCCEEDED(
|
||||
|
@ -3,8 +3,6 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
#include "content/public/test/browser_test.h"
|
||||
@ -13,6 +11,8 @@
|
||||
#include "content/public/test/content_browser_test_utils.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
@ -22,17 +22,19 @@ class AccessibilityLineLayoutBrowserTest : public ContentBrowserTest {
|
||||
~AccessibilityLineLayoutBrowserTest() override = default;
|
||||
|
||||
protected:
|
||||
BrowserAccessibility* FindButton(BrowserAccessibility* node) {
|
||||
ui::BrowserAccessibility* FindButton(ui::BrowserAccessibility* node) {
|
||||
if (node->GetRole() == ax::mojom::Role::kButton)
|
||||
return node;
|
||||
for (unsigned i = 0; i < node->PlatformChildCount(); i++) {
|
||||
if (BrowserAccessibility* button = FindButton(node->PlatformGetChild(i)))
|
||||
if (ui::BrowserAccessibility* button =
|
||||
FindButton(node->PlatformGetChild(i))) {
|
||||
return button;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int CountNextPreviousOnLineLinks(BrowserAccessibility* node,
|
||||
int CountNextPreviousOnLineLinks(ui::BrowserAccessibility* node,
|
||||
bool do_not_count_inline_text) {
|
||||
int line_link_count = 0;
|
||||
|
||||
@ -41,7 +43,7 @@ class AccessibilityLineLayoutBrowserTest : public ContentBrowserTest {
|
||||
int next_on_line_id =
|
||||
node->GetIntAttribute(ax::mojom::IntAttribute::kNextOnLineId);
|
||||
if (next_on_line_id != ui::kInvalidAXNodeID) {
|
||||
BrowserAccessibility* other =
|
||||
ui::BrowserAccessibility* other =
|
||||
node->manager()->GetFromID(next_on_line_id);
|
||||
EXPECT_NE(nullptr, other) << "Next on line link is invalid.";
|
||||
line_link_count++;
|
||||
@ -49,7 +51,7 @@ class AccessibilityLineLayoutBrowserTest : public ContentBrowserTest {
|
||||
int previous_on_line_id =
|
||||
node->GetIntAttribute(ax::mojom::IntAttribute::kPreviousOnLineId);
|
||||
if (previous_on_line_id != ui::kInvalidAXNodeID) {
|
||||
BrowserAccessibility* other =
|
||||
ui::BrowserAccessibility* other =
|
||||
node->manager()->GetFromID(previous_on_line_id);
|
||||
EXPECT_NE(nullptr, other) << "Previous on line link is invalid.";
|
||||
line_link_count++;
|
||||
@ -80,7 +82,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityLineLayoutBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
// There should be at least 2 links between nodes on the same line.
|
||||
@ -89,7 +91,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityLineLayoutBrowserTest,
|
||||
ASSERT_GE(line_link_count, 2);
|
||||
|
||||
// Find the button and click it.
|
||||
BrowserAccessibility* button =
|
||||
ui::BrowserAccessibility* button =
|
||||
FindButton(manager->GetBrowserAccessibilityRoot());
|
||||
ASSERT_NE(nullptr, button);
|
||||
manager->DoDefaultAction(*button);
|
||||
@ -132,7 +134,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityLineLayoutBrowserTest,
|
||||
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
|
||||
AccessibilityNotificationWaiter waiter2(shell()->web_contents(),
|
||||
|
@ -2,17 +2,17 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h"
|
||||
#include "ui/accessibility/platform/one_shot_accessibility_tree_search.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
|
||||
#elif OS_FUCHSIA
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_fuchsia.h"
|
||||
#include "ui/accessibility/platform/fuchsia/browser_accessibility_manager_fuchsia.h"
|
||||
#endif
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
@ -36,7 +36,7 @@ class TestBrowserAccessibilityManager
|
||||
};
|
||||
#elif OS_FUCHSIA
|
||||
class TestBrowserAccessibilityManager
|
||||
: public BrowserAccessibilityManagerFuchsia {
|
||||
: public ui::BrowserAccessibilityManagerFuchsia {
|
||||
public:
|
||||
explicit TestBrowserAccessibilityManager(
|
||||
const ui::AXTreeUpdate& initial_tree,
|
||||
@ -46,7 +46,7 @@ class TestBrowserAccessibilityManager
|
||||
nullptr) {}
|
||||
};
|
||||
#else
|
||||
class TestBrowserAccessibilityManager : public BrowserAccessibilityManager {
|
||||
class TestBrowserAccessibilityManager : public ui::BrowserAccessibilityManager {
|
||||
public:
|
||||
explicit TestBrowserAccessibilityManager(
|
||||
const ui::AXTreeUpdate& initial_tree,
|
||||
@ -76,7 +76,7 @@ class OneShotAccessibilityTreeSearchTest : public testing::Test {
|
||||
BrowserTaskEnvironment task_environment_;
|
||||
|
||||
ui::TestAXNodeIdDelegate node_id_delegate_;
|
||||
std::unique_ptr<BrowserAccessibilityManager> tree_;
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> tree_;
|
||||
};
|
||||
|
||||
void OneShotAccessibilityTreeSearchTest::SetUp() {
|
||||
@ -158,7 +158,8 @@ void OneShotAccessibilityTreeSearchTest::SetUp() {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, GetAll) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
ASSERT_EQ(13U, search.CountMatches());
|
||||
#else
|
||||
@ -167,8 +168,9 @@ TEST_F(OneShotAccessibilityTreeSearchTest, GetAll) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWrapFromRoot) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetDirection(OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetDirection(ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetResultLimit(100);
|
||||
search.SetCanWrapToLastElement(true);
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
@ -202,14 +204,16 @@ TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWrapFromRoot) {
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, NoCycle) {
|
||||
// If you set a result limit of 1, you won't get the root node back as
|
||||
// the first match.
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetResultLimit(1);
|
||||
ASSERT_EQ(1U, search.CountMatches());
|
||||
EXPECT_NE(1, search.GetMatchAtIndex(0)->GetId());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, ForwardsWithStartNode) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetStartNode(tree_->GetFromID(7));
|
||||
ASSERT_EQ(3U, search.CountMatches());
|
||||
EXPECT_EQ(8, search.GetMatchAtIndex(0)->GetId());
|
||||
@ -218,9 +222,10 @@ TEST_F(OneShotAccessibilityTreeSearchTest, ForwardsWithStartNode) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWithStartNode) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetStartNode(tree_->GetFromID(4));
|
||||
search.SetDirection(OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetDirection(ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
ASSERT_EQ(3U, search.CountMatches());
|
||||
EXPECT_EQ(3, search.GetMatchAtIndex(0)->GetId());
|
||||
EXPECT_EQ(2, search.GetMatchAtIndex(1)->GetId());
|
||||
@ -228,9 +233,10 @@ TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWithStartNode) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWithStartNodeForAndroid) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetStartNode(tree_->GetFromID(4));
|
||||
search.SetDirection(OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetDirection(ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetResultLimit(3);
|
||||
search.SetCanWrapToLastElement(true);
|
||||
ASSERT_EQ(3U, search.CountMatches());
|
||||
@ -240,7 +246,7 @@ TEST_F(OneShotAccessibilityTreeSearchTest, BackwardsWithStartNodeForAndroid) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, ForwardsWithStartNodeAndScope) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
ui::OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
search.SetStartNode(tree_->GetFromID(8));
|
||||
ASSERT_EQ(2U, search.CountMatches());
|
||||
EXPECT_EQ(9, search.GetMatchAtIndex(0)->GetId());
|
||||
@ -248,19 +254,22 @@ TEST_F(OneShotAccessibilityTreeSearchTest, ForwardsWithStartNodeAndScope) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, ResultLimitZero) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetResultLimit(0);
|
||||
ASSERT_EQ(0U, search.CountMatches());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, ResultLimitFive) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetResultLimit(5);
|
||||
ASSERT_EQ(5U, search.CountMatches());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfRoot) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetStartNode(tree_->GetFromID(1));
|
||||
search.SetImmediateDescendantsOnly(true);
|
||||
ASSERT_EQ(4U, search.CountMatches());
|
||||
@ -271,7 +280,7 @@ TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfRoot) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfNode) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
ui::OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
search.SetImmediateDescendantsOnly(true);
|
||||
ASSERT_EQ(2U, search.CountMatches());
|
||||
EXPECT_EQ(8, search.GetMatchAtIndex(0)->GetId());
|
||||
@ -279,7 +288,7 @@ TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfNode) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfNodeWithStartNode) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
ui::OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
search.SetStartNode(tree_->GetFromID(8));
|
||||
search.SetImmediateDescendantsOnly(true);
|
||||
ASSERT_EQ(1U, search.CountMatches());
|
||||
@ -288,25 +297,26 @@ TEST_F(OneShotAccessibilityTreeSearchTest, DescendantsOnlyOfNodeWithStartNode) {
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest,
|
||||
DescendantsOnlyOfNodeWithStartNodeBackwardsTableCell) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetFromID(3));
|
||||
ui::OneShotAccessibilityTreeSearch search(tree_->GetFromID(3));
|
||||
search.SetStartNode(tree_->GetFromID(5));
|
||||
search.SetDirection(OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetDirection(ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetImmediateDescendantsOnly(true);
|
||||
ASSERT_EQ(0U, search.CountMatches());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest,
|
||||
DescendantsOnlyOfNodeWithStartNodeBackwardsListItem) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
ui::OneShotAccessibilityTreeSearch search(tree_->GetFromID(7));
|
||||
search.SetStartNode(tree_->GetFromID(9));
|
||||
search.SetImmediateDescendantsOnly(true);
|
||||
search.SetDirection(OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetDirection(ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
ASSERT_EQ(1U, search.CountMatches());
|
||||
EXPECT_EQ(8, search.GetMatchAtIndex(0)->GetId());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, OnscreenOnly) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetOnscreenOnly(true);
|
||||
ASSERT_EQ(7U, search.CountMatches());
|
||||
EXPECT_EQ(1, search.GetMatchAtIndex(0)->GetId());
|
||||
@ -319,16 +329,18 @@ TEST_F(OneShotAccessibilityTreeSearchTest, OnscreenOnly) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, CaseInsensitiveStringMatch) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.SetSearchText("eCEptiCOn");
|
||||
ASSERT_EQ(1U, search.CountMatches());
|
||||
EXPECT_EQ(9, search.GetMatchAtIndex(0)->GetId());
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, OnePredicateTableCell) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return current->GetRole() == ax::mojom::Role::kColumnHeader;
|
||||
});
|
||||
ASSERT_EQ(2U, search.CountMatches());
|
||||
@ -337,9 +349,10 @@ TEST_F(OneShotAccessibilityTreeSearchTest, OnePredicateTableCell) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, OnePredicateListItem) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return current->GetRole() == ax::mojom::Role::kListItem;
|
||||
});
|
||||
ASSERT_EQ(2U, search.CountMatches());
|
||||
@ -348,13 +361,14 @@ TEST_F(OneShotAccessibilityTreeSearchTest, OnePredicateListItem) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, TwoPredicatesTableRowAndCell) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return (current->GetRole() == ax::mojom::Role::kRow);
|
||||
});
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return (current->GetRole() == ax::mojom::Role::kColumnHeader);
|
||||
});
|
||||
ASSERT_EQ(3U, search.CountMatches());
|
||||
@ -364,13 +378,14 @@ TEST_F(OneShotAccessibilityTreeSearchTest, TwoPredicatesTableRowAndCell) {
|
||||
}
|
||||
|
||||
TEST_F(OneShotAccessibilityTreeSearchTest, TwoPredicatesListItem) {
|
||||
OneShotAccessibilityTreeSearch search(tree_->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
tree_->GetBrowserAccessibilityRoot());
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return (current->GetRole() == ax::mojom::Role::kList);
|
||||
});
|
||||
search.AddPredicate(
|
||||
[](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
[](ui::BrowserAccessibility* start, ui::BrowserAccessibility* current) {
|
||||
return (current->GetRole() == ax::mojom::Role::kListItem);
|
||||
});
|
||||
ASSERT_EQ(3U, search.CountMatches());
|
||||
|
@ -5,8 +5,6 @@
|
||||
#include "base/command_line.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/renderer_host/cross_process_frame_connector.h"
|
||||
#include "content/browser/renderer_host/frame_tree.h"
|
||||
#include "content/browser/renderer_host/render_frame_proxy_host.h"
|
||||
@ -29,6 +27,8 @@
|
||||
#include "net/dns/mock_host_resolver.h"
|
||||
#include "net/test/embedded_test_server/embedded_test_server.h"
|
||||
#include "ui/accessibility/ax_mode.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "url/gurl.h"
|
||||
#include "url/url_constants.h"
|
||||
|
||||
@ -101,39 +101,40 @@ IN_PROC_BROWSER_TEST_P(MAYBE_SitePerProcessAccessibilityBrowserTest,
|
||||
|
||||
RenderFrameHostImpl* main_frame = static_cast<RenderFrameHostImpl*>(
|
||||
shell()->web_contents()->GetPrimaryMainFrame());
|
||||
BrowserAccessibilityManager* main_frame_manager =
|
||||
ui::BrowserAccessibilityManager* main_frame_manager =
|
||||
main_frame->browser_accessibility_manager();
|
||||
VLOG(1) << "Main frame accessibility tree:\n"
|
||||
<< main_frame_manager->SnapshotAXTreeForTesting().ToString();
|
||||
|
||||
// Assert that we can walk from the main frame down into the child frame
|
||||
// directly, getting correct roles and data along the way.
|
||||
BrowserAccessibility* ax_root =
|
||||
ui::BrowserAccessibility* ax_root =
|
||||
main_frame_manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_EQ(ax::mojom::Role::kRootWebArea, ax_root->GetRole());
|
||||
ASSERT_EQ(1U, ax_root->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_group = ax_root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_group = ax_root->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kGenericContainer, ax_group->GetRole());
|
||||
ASSERT_EQ(2U, ax_group->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_iframe = ax_group->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_iframe = ax_group->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kIframe, ax_iframe->GetRole());
|
||||
ASSERT_EQ(1U, ax_iframe->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_child_frame_root = ax_iframe->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_child_frame_root =
|
||||
ax_iframe->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kRootWebArea, ax_child_frame_root->GetRole());
|
||||
ASSERT_EQ(1U, ax_child_frame_root->PlatformChildCount());
|
||||
EXPECT_EQ("Title Of Awesomeness", ax_child_frame_root->GetStringAttribute(
|
||||
ax::mojom::StringAttribute::kName));
|
||||
|
||||
BrowserAccessibility* ax_child_frame_group =
|
||||
ui::BrowserAccessibility* ax_child_frame_group =
|
||||
ax_child_frame_root->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kGenericContainer,
|
||||
ax_child_frame_group->GetRole());
|
||||
ASSERT_EQ(1U, ax_child_frame_group->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_child_frame_static_text =
|
||||
ui::BrowserAccessibility* ax_child_frame_static_text =
|
||||
ax_child_frame_group->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kStaticText,
|
||||
ax_child_frame_static_text->GetRole());
|
||||
@ -241,27 +242,28 @@ IN_PROC_BROWSER_TEST_P(
|
||||
|
||||
RenderFrameHostImpl* main_frame = static_cast<RenderFrameHostImpl*>(
|
||||
shell()->web_contents()->GetPrimaryMainFrame());
|
||||
BrowserAccessibilityManager* main_frame_manager =
|
||||
ui::BrowserAccessibilityManager* main_frame_manager =
|
||||
main_frame->browser_accessibility_manager();
|
||||
VLOG(1) << "Main frame accessibility tree:\n"
|
||||
<< main_frame_manager->SnapshotAXTreeForTesting().ToString();
|
||||
|
||||
// Assert that we can walk from the main frame down into the child frame
|
||||
// directly, getting correct roles and data along the way.
|
||||
BrowserAccessibility* ax_root =
|
||||
ui::BrowserAccessibility* ax_root =
|
||||
main_frame_manager->GetBrowserAccessibilityRoot();
|
||||
EXPECT_EQ(ax::mojom::Role::kRootWebArea, ax_root->GetRole());
|
||||
ASSERT_EQ(1U, ax_root->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_group = ax_root->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_group = ax_root->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kGenericContainer, ax_group->GetRole());
|
||||
ASSERT_EQ(2U, ax_group->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_iframe = ax_group->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_iframe = ax_group->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kIframe, ax_iframe->GetRole());
|
||||
ASSERT_EQ(1U, ax_iframe->PlatformChildCount());
|
||||
|
||||
BrowserAccessibility* ax_child_frame_root = ax_iframe->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* ax_child_frame_root =
|
||||
ax_iframe->PlatformGetChild(0);
|
||||
EXPECT_EQ(ax::mojom::Role::kRootWebArea, ax_child_frame_root->GetRole());
|
||||
ASSERT_EQ(1U, ax_child_frame_root->PlatformChildCount());
|
||||
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <tuple>
|
||||
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_child_frame.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
#include "content/public/test/accessibility_notification_waiter.h"
|
||||
@ -19,6 +18,7 @@
|
||||
#include "net/dns/mock_host_resolver.h"
|
||||
#include "net/test/embedded_test_server/embedded_test_server.h"
|
||||
#include "ui/accessibility/ax_node_data.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/aura/window.h"
|
||||
#include "ui/aura/window_tree_host.h"
|
||||
#include "ui/events/event.h"
|
||||
@ -93,7 +93,7 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
// Get the BrowserAccessibilityManager.
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents->GetRootBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, manager);
|
||||
|
||||
@ -115,8 +115,8 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
do {
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
int target_id = waiter.event_target_id();
|
||||
BrowserAccessibility* hit = manager->GetFromID(target_id);
|
||||
BrowserAccessibility* child = hit->PlatformGetChild(0);
|
||||
ui::BrowserAccessibility* hit = manager->GetFromID(target_id);
|
||||
ui::BrowserAccessibility* child = hit->PlatformGetChild(0);
|
||||
ASSERT_NE(nullptr, child);
|
||||
cell_text =
|
||||
child->GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
@ -139,7 +139,7 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
shell()->web_contents()->GetPrimaryMainFrame());
|
||||
RenderFrameHostImpl* child_frame =
|
||||
main_frame->frame_tree_node()->child_at(0)->current_frame_host();
|
||||
BrowserAccessibilityManager* child_manager =
|
||||
ui::BrowserAccessibilityManager* child_manager =
|
||||
child_frame->GetOrCreateBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, child_manager);
|
||||
|
||||
@ -151,7 +151,7 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
SendTouchExplorationEvent(50, 350);
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
int target_id = waiter.event_target_id();
|
||||
BrowserAccessibility* hit = child_manager->GetFromID(target_id);
|
||||
ui::BrowserAccessibility* hit = child_manager->GetFromID(target_id);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, hit->GetRole());
|
||||
std::string text = hit->GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
EXPECT_EQ("Ordinary Button", text);
|
||||
@ -170,7 +170,7 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
shell()->web_contents()->GetPrimaryMainFrame());
|
||||
RenderFrameHostImpl* child_frame =
|
||||
main_frame->frame_tree_node()->child_at(0)->current_frame_host();
|
||||
BrowserAccessibilityManager* child_manager =
|
||||
ui::BrowserAccessibilityManager* child_manager =
|
||||
child_frame->GetOrCreateBrowserAccessibilityManager();
|
||||
ASSERT_NE(nullptr, child_manager);
|
||||
|
||||
@ -188,7 +188,7 @@ IN_PROC_BROWSER_TEST_F(TouchAccessibilityBrowserTest,
|
||||
SendTouchExplorationEvent(50, 350);
|
||||
ASSERT_TRUE(waiter.WaitForNotification());
|
||||
int target_id = waiter.event_target_id();
|
||||
BrowserAccessibility* hit = child_manager->GetFromID(target_id);
|
||||
ui::BrowserAccessibility* hit = child_manager->GetFromID(target_id);
|
||||
EXPECT_EQ(ax::mojom::Role::kButton, hit->GetRole());
|
||||
std::string text = hit->GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
EXPECT_EQ("Ordinary Button", text);
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "content/browser/accessibility/browser_accessibility_android.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl_android.h"
|
||||
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h"
|
||||
#include "content/browser/android/render_widget_host_connector.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_android.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
@ -38,6 +37,7 @@
|
||||
#include "ui/accessibility/ax_assistant_structure.h"
|
||||
#include "ui/accessibility/ax_node_id_forward.h"
|
||||
#include "ui/accessibility/platform/ax_android_constants.h"
|
||||
#include "ui/accessibility/platform/one_shot_accessibility_tree_search.h"
|
||||
#include "ui/events/android/motion_event_android.h"
|
||||
|
||||
// Must come after all headers that specialize FromJniType() / ToJniType().
|
||||
@ -54,7 +54,7 @@ namespace content {
|
||||
namespace {
|
||||
|
||||
using SearchKeyToPredicateMap =
|
||||
std::unordered_map<std::u16string, AccessibilityMatchPredicate>;
|
||||
std::unordered_map<std::u16string, ui::AccessibilityMatchPredicate>;
|
||||
base::LazyInstance<SearchKeyToPredicateMap>::Leaky
|
||||
g_search_key_to_predicate_map = LAZY_INSTANCE_INITIALIZER;
|
||||
base::LazyInstance<std::u16string>::Leaky g_all_search_keys =
|
||||
@ -66,20 +66,20 @@ static const char kHtmlTypeRowBounds[] = "ROW_BOUNDS";
|
||||
static const char kHtmlTypeColumnBounds[] = "COLUMN_BOUNDS";
|
||||
static const char kHtmlTypeTableBounds[] = "TABLE_BOUNDS";
|
||||
|
||||
bool AllInterestingNodesPredicate(BrowserAccessibility* start,
|
||||
BrowserAccessibility* node) {
|
||||
bool AllInterestingNodesPredicate(ui::BrowserAccessibility* start,
|
||||
ui::BrowserAccessibility* node) {
|
||||
BrowserAccessibilityAndroid* android_node =
|
||||
static_cast<BrowserAccessibilityAndroid*>(node);
|
||||
return android_node->IsInterestingOnAndroid();
|
||||
}
|
||||
|
||||
bool AccessibilityNoOpPredicate(BrowserAccessibility* start,
|
||||
BrowserAccessibility* node) {
|
||||
bool AccessibilityNoOpPredicate(ui::BrowserAccessibility* start,
|
||||
ui::BrowserAccessibility* node) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void AddToPredicateMap(const char* search_key_ascii,
|
||||
AccessibilityMatchPredicate predicate) {
|
||||
ui::AccessibilityMatchPredicate predicate) {
|
||||
std::u16string search_key_utf16 = base::ASCIIToUTF16(search_key_ascii);
|
||||
g_search_key_to_predicate_map.Get()[search_key_utf16] = predicate;
|
||||
if (!g_all_search_keys.Get().empty())
|
||||
@ -93,42 +93,43 @@ void InitSearchKeyToPredicateMapIfNeeded() {
|
||||
if (!g_search_key_to_predicate_map.Get().empty())
|
||||
return;
|
||||
|
||||
AddToPredicateMap("ARTICLE", AccessibilityArticlePredicate);
|
||||
AddToPredicateMap("BLOCKQUOTE", AccessibilityBlockquotePredicate);
|
||||
AddToPredicateMap("BUTTON", AccessibilityButtonPredicate);
|
||||
AddToPredicateMap("CHECKBOX", AccessibilityCheckboxPredicate);
|
||||
AddToPredicateMap("COMBOBOX", AccessibilityComboboxPredicate);
|
||||
AddToPredicateMap("CONTROL", AccessibilityControlPredicate);
|
||||
AddToPredicateMap("FOCUSABLE", AccessibilityFocusablePredicate);
|
||||
AddToPredicateMap("FRAME", AccessibilityFramePredicate);
|
||||
AddToPredicateMap("GRAPHIC", AccessibilityGraphicPredicate);
|
||||
AddToPredicateMap("H1", AccessibilityH1Predicate);
|
||||
AddToPredicateMap("H2", AccessibilityH2Predicate);
|
||||
AddToPredicateMap("H3", AccessibilityH3Predicate);
|
||||
AddToPredicateMap("H4", AccessibilityH4Predicate);
|
||||
AddToPredicateMap("H5", AccessibilityH5Predicate);
|
||||
AddToPredicateMap("H6", AccessibilityH6Predicate);
|
||||
AddToPredicateMap("HEADING", AccessibilityHeadingPredicate);
|
||||
AddToPredicateMap("HEADING_SAME", AccessibilityHeadingSameLevelPredicate);
|
||||
AddToPredicateMap("LANDMARK", AccessibilityLandmarkPredicate);
|
||||
AddToPredicateMap("LINK", AccessibilityLinkPredicate);
|
||||
AddToPredicateMap("LIST", AccessibilityListPredicate);
|
||||
AddToPredicateMap("LIST_ITEM", AccessibilityListItemPredicate);
|
||||
AddToPredicateMap("LIVE", AccessibilityLiveRegionPredicate);
|
||||
AddToPredicateMap("MAIN", AccessibilityMainPredicate);
|
||||
AddToPredicateMap("MEDIA", AccessibilityMediaPredicate);
|
||||
AddToPredicateMap("PARAGRAPH", AccessibilityParagraphPredicate);
|
||||
AddToPredicateMap("RADIO", AccessibilityRadioButtonPredicate);
|
||||
AddToPredicateMap("RADIO_GROUP", AccessibilityRadioGroupPredicate);
|
||||
AddToPredicateMap("SECTION", AccessibilitySectionPredicate);
|
||||
AddToPredicateMap("TABLE", AccessibilityTablePredicate);
|
||||
AddToPredicateMap("TEXT_FIELD", AccessibilityTextfieldPredicate);
|
||||
AddToPredicateMap("TEXT_BOLD", AccessibilityTextStyleBoldPredicate);
|
||||
AddToPredicateMap("TEXT_ITALIC", AccessibilityTextStyleItalicPredicate);
|
||||
AddToPredicateMap("TEXT_UNDERLINE", AccessibilityTextStyleUnderlinePredicate);
|
||||
AddToPredicateMap("TREE", AccessibilityTreePredicate);
|
||||
AddToPredicateMap("UNVISITED_LINK", AccessibilityUnvisitedLinkPredicate);
|
||||
AddToPredicateMap("VISITED_LINK", AccessibilityVisitedLinkPredicate);
|
||||
AddToPredicateMap("ARTICLE", ui::AccessibilityArticlePredicate);
|
||||
AddToPredicateMap("BLOCKQUOTE", ui::AccessibilityBlockquotePredicate);
|
||||
AddToPredicateMap("BUTTON", ui::AccessibilityButtonPredicate);
|
||||
AddToPredicateMap("CHECKBOX", ui::AccessibilityCheckboxPredicate);
|
||||
AddToPredicateMap("COMBOBOX", ui::AccessibilityComboboxPredicate);
|
||||
AddToPredicateMap("CONTROL", ui::AccessibilityControlPredicate);
|
||||
AddToPredicateMap("FOCUSABLE", ui::AccessibilityFocusablePredicate);
|
||||
AddToPredicateMap("FRAME", ui::AccessibilityFramePredicate);
|
||||
AddToPredicateMap("GRAPHIC", ui::AccessibilityGraphicPredicate);
|
||||
AddToPredicateMap("H1", ui::AccessibilityH1Predicate);
|
||||
AddToPredicateMap("H2", ui::AccessibilityH2Predicate);
|
||||
AddToPredicateMap("H3", ui::AccessibilityH3Predicate);
|
||||
AddToPredicateMap("H4", ui::AccessibilityH4Predicate);
|
||||
AddToPredicateMap("H5", ui::AccessibilityH5Predicate);
|
||||
AddToPredicateMap("H6", ui::AccessibilityH6Predicate);
|
||||
AddToPredicateMap("HEADING", ui::AccessibilityHeadingPredicate);
|
||||
AddToPredicateMap("HEADING_SAME", ui::AccessibilityHeadingSameLevelPredicate);
|
||||
AddToPredicateMap("LANDMARK", ui::AccessibilityLandmarkPredicate);
|
||||
AddToPredicateMap("LINK", ui::AccessibilityLinkPredicate);
|
||||
AddToPredicateMap("LIST", ui::AccessibilityListPredicate);
|
||||
AddToPredicateMap("LIST_ITEM", ui::AccessibilityListItemPredicate);
|
||||
AddToPredicateMap("LIVE", ui::AccessibilityLiveRegionPredicate);
|
||||
AddToPredicateMap("MAIN", ui::AccessibilityMainPredicate);
|
||||
AddToPredicateMap("MEDIA", ui::AccessibilityMediaPredicate);
|
||||
AddToPredicateMap("PARAGRAPH", ui::AccessibilityParagraphPredicate);
|
||||
AddToPredicateMap("RADIO", ui::AccessibilityRadioButtonPredicate);
|
||||
AddToPredicateMap("RADIO_GROUP", ui::AccessibilityRadioGroupPredicate);
|
||||
AddToPredicateMap("SECTION", ui::AccessibilitySectionPredicate);
|
||||
AddToPredicateMap("TABLE", ui::AccessibilityTablePredicate);
|
||||
AddToPredicateMap("TEXT_FIELD", ui::AccessibilityTextfieldPredicate);
|
||||
AddToPredicateMap("TEXT_BOLD", ui::AccessibilityTextStyleBoldPredicate);
|
||||
AddToPredicateMap("TEXT_ITALIC", ui::AccessibilityTextStyleItalicPredicate);
|
||||
AddToPredicateMap("TEXT_UNDERLINE",
|
||||
ui::AccessibilityTextStyleUnderlinePredicate);
|
||||
AddToPredicateMap("TREE", ui::AccessibilityTreePredicate);
|
||||
AddToPredicateMap("UNVISITED_LINK", ui::AccessibilityUnvisitedLinkPredicate);
|
||||
AddToPredicateMap("VISITED_LINK", ui::AccessibilityVisitedLinkPredicate);
|
||||
|
||||
// These are surfaced simply to document the html types, but do not do a
|
||||
// tree/predicate search.
|
||||
@ -140,7 +141,7 @@ void InitSearchKeyToPredicateMapIfNeeded() {
|
||||
AddToPredicateMap(kHtmlTypeTableBounds, AccessibilityNoOpPredicate);
|
||||
}
|
||||
|
||||
AccessibilityMatchPredicate PredicateForSearchKey(
|
||||
ui::AccessibilityMatchPredicate PredicateForSearchKey(
|
||||
const std::u16string& element_type) {
|
||||
InitSearchKeyToPredicateMapIfNeeded();
|
||||
const auto& iter = g_search_key_to_predicate_map.Get().find(element_type);
|
||||
@ -162,7 +163,7 @@ int32_t g_element_after_element_hosting_autofill_popup_unique_id =
|
||||
|
||||
// Autofill popup will not be part of the |AXTree| that is sent by renderer.
|
||||
// Hence, we need a proxy |AXNode| to represent the autofill popup.
|
||||
BrowserAccessibility* g_autofill_popup_proxy_node = nullptr;
|
||||
ui::BrowserAccessibility* g_autofill_popup_proxy_node = nullptr;
|
||||
ui::AXNode* g_autofill_popup_proxy_node_ax_node = nullptr;
|
||||
|
||||
void DeleteAutofillPopupProxy() {
|
||||
@ -180,7 +181,7 @@ void DeleteAutofillPopupProxy() {
|
||||
// but small enough to prevent wasting memory and cpu if abused.
|
||||
const int kMaxCharacterBoundingBoxLen = 1024;
|
||||
|
||||
std::optional<int> MaybeFindRowColumn(BrowserAccessibility* start_node,
|
||||
std::optional<int> MaybeFindRowColumn(ui::BrowserAccessibility* start_node,
|
||||
std::u16string element_type,
|
||||
jboolean forwards) {
|
||||
bool want_row = base::EqualsASCII(element_type, kHtmlTypeRow);
|
||||
@ -196,7 +197,7 @@ std::optional<int> MaybeFindRowColumn(BrowserAccessibility* start_node,
|
||||
}
|
||||
|
||||
// See if we're in a table and grab the cell-like node we're under on the way.
|
||||
BrowserAccessibility* table_node = start_node;
|
||||
ui::BrowserAccessibility* table_node = start_node;
|
||||
ui::AXNode* cell_node = nullptr;
|
||||
int cur_row_index, cur_col_index;
|
||||
while (table_node) {
|
||||
@ -616,7 +617,7 @@ void WebContentsAccessibilityAndroid::HandleEditableTextChanged(
|
||||
}
|
||||
|
||||
void WebContentsAccessibilityAndroid::SignalEndOfTestForTesting(JNIEnv* env) {
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_->GetRootBrowserAccessibilityManager();
|
||||
manager->SignalEndOfTest();
|
||||
}
|
||||
@ -1143,9 +1144,9 @@ void WebContentsAccessibilityAndroid::SetSelection(JNIEnv* env,
|
||||
jint end) {
|
||||
BrowserAccessibilityAndroid* node = GetAXFromUniqueID(unique_id);
|
||||
if (node) {
|
||||
node->manager()->SetSelection(
|
||||
BrowserAccessibility::AXRange(node->CreatePositionForSelectionAt(start),
|
||||
node->CreatePositionForSelectionAt(end)));
|
||||
node->manager()->SetSelection(ui::BrowserAccessibility::AXRange(
|
||||
node->CreatePositionForSelectionAt(start),
|
||||
node->CreatePositionForSelectionAt(end)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1215,12 +1216,12 @@ jint WebContentsAccessibilityAndroid::FindElementType(
|
||||
if (!root_manager)
|
||||
return ui::kInvalidAXNodeID;
|
||||
|
||||
BrowserAccessibility* root = root_manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = root_manager->GetBrowserAccessibilityRoot();
|
||||
if (!root)
|
||||
return ui::kInvalidAXNodeID;
|
||||
|
||||
// If |element_type_str| was empty, we can skip to the default predicate.
|
||||
AccessibilityMatchPredicate predicate;
|
||||
ui::AccessibilityMatchPredicate predicate;
|
||||
if (use_default_predicate) {
|
||||
predicate = AllInterestingNodesPredicate;
|
||||
} else {
|
||||
@ -1229,7 +1230,7 @@ jint WebContentsAccessibilityAndroid::FindElementType(
|
||||
if (std::optional<int> ret =
|
||||
MaybeFindRowColumn(start_node, element_type, forwards);
|
||||
ret) {
|
||||
BrowserAccessibility* node = start_node->manager()->GetFromID(*ret);
|
||||
ui::BrowserAccessibility* node = start_node->manager()->GetFromID(*ret);
|
||||
return node ? static_cast<BrowserAccessibilityAndroid*>(node)
|
||||
->GetUniqueId()
|
||||
: ui::kInvalidAXNodeID;
|
||||
@ -1238,11 +1239,11 @@ jint WebContentsAccessibilityAndroid::FindElementType(
|
||||
predicate = PredicateForSearchKey(element_type);
|
||||
}
|
||||
|
||||
OneShotAccessibilityTreeSearch tree_search(root);
|
||||
ui::OneShotAccessibilityTreeSearch tree_search(root);
|
||||
tree_search.SetStartNode(start_node);
|
||||
tree_search.SetDirection(forwards
|
||||
? OneShotAccessibilityTreeSearch::FORWARDS
|
||||
: OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
? ui::OneShotAccessibilityTreeSearch::FORWARDS
|
||||
: ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
tree_search.SetResultLimit(1);
|
||||
tree_search.SetImmediateDescendantsOnly(false);
|
||||
tree_search.SetCanWrapToLastElement(can_wrap_to_last_element);
|
||||
@ -1318,7 +1319,7 @@ void WebContentsAccessibilityAndroid::AddSpellingErrorForTesting(
|
||||
jint unique_id,
|
||||
jint start_offset,
|
||||
jint end_offset) {
|
||||
BrowserAccessibility* node = GetAXFromUniqueID(unique_id);
|
||||
ui::BrowserAccessibility* node = GetAXFromUniqueID(unique_id);
|
||||
CHECK(node);
|
||||
|
||||
while (node->GetRole() != ax::mojom::Role::kStaticText &&
|
||||
@ -1409,7 +1410,7 @@ void WebContentsAccessibilityAndroid::OnAutofillPopupDisplayed(JNIEnv* env) {
|
||||
if (!root_manager)
|
||||
return;
|
||||
|
||||
BrowserAccessibility* current_focus = root_manager->GetFocus();
|
||||
ui::BrowserAccessibility* current_focus = root_manager->GetFocus();
|
||||
if (!current_focus) {
|
||||
return;
|
||||
}
|
||||
@ -1429,8 +1430,8 @@ void WebContentsAccessibilityAndroid::OnAutofillPopupDisplayed(JNIEnv* env) {
|
||||
ax_node_data.AddBoolAttribute(ax::mojom::BoolAttribute::kSelected, false);
|
||||
g_autofill_popup_proxy_node_ax_node->SetData(ax_node_data);
|
||||
g_autofill_popup_proxy_node =
|
||||
BrowserAccessibility::Create(root_manager,
|
||||
g_autofill_popup_proxy_node_ax_node)
|
||||
ui::BrowserAccessibility::Create(root_manager,
|
||||
g_autofill_popup_proxy_node_ax_node)
|
||||
.release();
|
||||
|
||||
auto* android_node = static_cast<BrowserAccessibilityAndroid*>(current_focus);
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "base/test/test_mock_time_task_runner.h"
|
||||
#include "base/types/expected.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/back_forward_cache_browsertest.h"
|
||||
#include "content/browser/renderer_host/back_forward_cache_disable.h"
|
||||
#include "content/browser/renderer_host/back_forward_cache_impl.h"
|
||||
@ -46,6 +45,7 @@
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
#include "ui/accessibility/ax_action_data.h"
|
||||
#include "ui/accessibility/ax_node_id_forward.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
// This file contains back/forward-cache tests that test or use internal
|
||||
// features, e.g. cache-flushing, crashes, verifying proxies and other
|
||||
@ -3825,10 +3825,10 @@ IN_PROC_BROWSER_TEST_P(BackForwardCacheBrowserTestWithFlagForAXEvents,
|
||||
|
||||
// 3) Set the callback for generated events, and expect that this is never
|
||||
// fired.
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
rfh_a->GetOrCreateBrowserAccessibilityManager();
|
||||
manager->SetGeneratedEventCallbackForTesting(
|
||||
base::BindRepeating([](BrowserAccessibilityManager* manager,
|
||||
base::BindRepeating([](ui::BrowserAccessibilityManager* manager,
|
||||
ui::AXEventGenerator::Event event,
|
||||
ui::AXNodeID event_target_id) { FAIL(); }));
|
||||
// Generate an event.
|
||||
@ -3847,7 +3847,7 @@ IN_PROC_BROWSER_TEST_P(BackForwardCacheBrowserTestWithFlagForAXEvents,
|
||||
// Reset the callback before restoring the page so that we will not fail when
|
||||
// events are generated.
|
||||
manager->SetGeneratedEventCallbackForTesting(
|
||||
GeneratedEventCallbackForTesting());
|
||||
ui::GeneratedEventCallbackForTesting());
|
||||
|
||||
// 4) Navigate back.
|
||||
ASSERT_TRUE(HistoryGoBack(web_contents()));
|
||||
@ -3922,7 +3922,7 @@ IN_PROC_BROWSER_TEST_P(BackForwardCacheBrowserTestWithFlagForAXLocationChange,
|
||||
EXPECT_TRUE(rfh_a->IsInBackForwardCache());
|
||||
|
||||
// 3) Set the callback for location change.
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
rfh_a->GetOrCreateBrowserAccessibilityManager();
|
||||
// This callback will count the number of times location change happens.
|
||||
// Note that this callback runs even when the page is in back/forward cache.
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include "base/command_line.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/renderer_host/legacy_render_widget_host_win.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
@ -18,6 +17,7 @@
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/platform/ax_fragment_root_win.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/aura/client/aura_constants.h"
|
||||
|
||||
namespace content {
|
||||
|
@ -11,10 +11,7 @@
|
||||
|
||||
#include "base/command_line.h"
|
||||
#include "base/win/win_util.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_win.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h"
|
||||
#include "content/browser/renderer_host/direct_manipulation_helper_win.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
@ -22,6 +19,9 @@
|
||||
#include "ui/accessibility/platform/ax_fragment_root_win.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
#include "ui/accessibility/platform/ax_system_caret_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#include "ui/accessibility/platform/one_shot_accessibility_tree_search.h"
|
||||
#include "ui/aura/window.h"
|
||||
#include "ui/aura/window_tree_host.h"
|
||||
#include "ui/base/ui_base_features.h"
|
||||
@ -592,13 +592,13 @@ LegacyRenderWidgetHostHWND::GetOrCreateBrowserAccessibilityRoot() {
|
||||
if (!rwhi)
|
||||
return nullptr;
|
||||
|
||||
BrowserAccessibilityManagerWin* manager =
|
||||
static_cast<BrowserAccessibilityManagerWin*>(
|
||||
ui::BrowserAccessibilityManagerWin* manager =
|
||||
static_cast<ui::BrowserAccessibilityManagerWin*>(
|
||||
rwhi->GetOrCreateRootBrowserAccessibilityManager());
|
||||
if (!manager || !manager->GetBrowserAccessibilityRoot())
|
||||
return nullptr;
|
||||
|
||||
BrowserAccessibility* root_node = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root_node = manager->GetBrowserAccessibilityRoot();
|
||||
|
||||
// Popups with HTML content (such as <input type="date">) will create a new
|
||||
// HWND with its own fragment root, but will also inject accessible nodes into
|
||||
@ -611,7 +611,7 @@ LegacyRenderWidgetHostHWND::GetOrCreateBrowserAccessibilityRoot() {
|
||||
if (host_->GetWidgetType() == WidgetType::kPopup) {
|
||||
// Check to see if the manager has a child root (it's expected that there
|
||||
// won't be in popups without HTML-based content such as <select> controls).
|
||||
BrowserAccessibility* child_root = manager->GetPopupRoot();
|
||||
ui::BrowserAccessibility* child_root = manager->GetPopupRoot();
|
||||
if (child_root)
|
||||
return child_root->GetNativeViewAccessible();
|
||||
}
|
||||
|
@ -59,7 +59,6 @@
|
||||
#include "components/input/timeout_monitor.h"
|
||||
#include "components/viz/common/features.h"
|
||||
#include "content/browser/about_url_loader_factory.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/render_accessibility_host.h"
|
||||
#include "content/browser/bad_message.h"
|
||||
#include "content/browser/blob_storage/file_backed_blob_factory_frame_impl.h"
|
||||
@ -281,6 +280,7 @@
|
||||
#include "ui/accessibility/ax_common.h"
|
||||
#include "ui/accessibility/ax_tree_update.h"
|
||||
#include "ui/accessibility/ax_updates_and_events.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/ime/text_input_client.h"
|
||||
#include "ui/display/screen.h"
|
||||
#include "ui/events/event_constants.h"
|
||||
@ -7599,7 +7599,7 @@ void RenderFrameHostImpl::HandleAccessibilityFindInPageResult(
|
||||
if (lifecycle_state() != LifecycleStateImpl::kActive)
|
||||
return;
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetOrCreateBrowserAccessibilityManager();
|
||||
if (manager) {
|
||||
manager->OnFindInPageResult(params->request_id, params->match_index,
|
||||
@ -7615,7 +7615,7 @@ void RenderFrameHostImpl::HandleAccessibilityFindInPageTermination() {
|
||||
if (lifecycle_state() != LifecycleStateImpl::kActive)
|
||||
return;
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetOrCreateBrowserAccessibilityManager();
|
||||
if (manager)
|
||||
manager->OnFindInPageTermination();
|
||||
@ -10430,7 +10430,7 @@ void RenderFrameHostImpl::HandleAXLocationChanges(
|
||||
detail.new_location = change->new_location;
|
||||
details.push_back(detail);
|
||||
}
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetOrCreateBrowserAccessibilityManager();
|
||||
if (manager) {
|
||||
manager->OnLocationChanges(details);
|
||||
@ -12088,7 +12088,7 @@ RenderFrameHostImpl::UpdateAXFocusDeferScope::~UpdateAXFocusDeferScope() {
|
||||
}
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
RenderFrameHostImpl::GetOrCreateBrowserAccessibilityManager() {
|
||||
// Never create a BrowserAccessibilityManager unless needed for the AXMode.
|
||||
// At least basic mode is required; it contains kWebContents and KNativeAPIs.
|
||||
@ -12107,14 +12107,14 @@ RenderFrameHostImpl::GetOrCreateBrowserAccessibilityManager() {
|
||||
BrowserAccessibilityManagerAndroid::Create(*this, this));
|
||||
#else
|
||||
browser_accessibility_manager_.reset(
|
||||
BrowserAccessibilityManager::Create(*this, this));
|
||||
ui::BrowserAccessibilityManager::Create(*this, this));
|
||||
#endif
|
||||
return browser_accessibility_manager_.get();
|
||||
}
|
||||
|
||||
void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility(
|
||||
int request_id) {
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetOrCreateBrowserAccessibilityManager();
|
||||
if (manager)
|
||||
manager->ActivateFindInPageResult(request_id);
|
||||
|
@ -44,7 +44,6 @@
|
||||
#include "base/unguessable_token.h"
|
||||
#include "base/uuid.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/bad_message.h"
|
||||
#include "content/browser/browser_interface_broker_impl.h"
|
||||
#include "content/browser/buckets/bucket_context.h"
|
||||
@ -185,6 +184,7 @@
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/accessibility/platform/ax_unique_id.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/page_transition_types.h"
|
||||
#include "ui/gfx/geometry/rect.h"
|
||||
#include "url/gurl.h"
|
||||
@ -1464,14 +1464,14 @@ class CONTENT_EXPORT RenderFrameHostImpl
|
||||
};
|
||||
|
||||
// Access the BrowserAccessibilityManager if it already exists.
|
||||
BrowserAccessibilityManager* browser_accessibility_manager() const {
|
||||
ui::BrowserAccessibilityManager* browser_accessibility_manager() const {
|
||||
return browser_accessibility_manager_.get();
|
||||
}
|
||||
|
||||
// If accessibility is enabled, get the BrowserAccessibilityManager for
|
||||
// this frame, or create one if it doesn't exist yet, otherwise return
|
||||
// null.
|
||||
BrowserAccessibilityManager* GetOrCreateBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* GetOrCreateBrowserAccessibilityManager();
|
||||
|
||||
void set_no_create_browser_accessibility_manager_for_testing(bool flag) {
|
||||
no_create_browser_accessibility_manager_for_testing_ = flag;
|
||||
@ -4544,7 +4544,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
|
||||
std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces_;
|
||||
|
||||
// The object managing the accessibility tree for this frame.
|
||||
std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager_;
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager>
|
||||
browser_accessibility_manager_;
|
||||
|
||||
// A mapping of each AXNodeID managed by `browser_accessibility_manager_`,
|
||||
// which is only unique within its renderer, to an AXUniqueId, which is unique
|
||||
|
@ -50,13 +50,13 @@ double RenderWidgetHostDelegate::GetPendingPageZoomLevel() {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
RenderWidgetHostDelegate::GetRootBrowserAccessibilityManager() {
|
||||
ui::BrowserAccessibilityManager*
|
||||
RenderWidgetHostDelegate::GetRootBrowserAccessibilityManager() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
RenderWidgetHostDelegate::GetOrCreateRootBrowserAccessibilityManager() {
|
||||
ui::BrowserAccessibilityManager*
|
||||
RenderWidgetHostDelegate::GetOrCreateRootBrowserAccessibilityManager() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -47,11 +47,11 @@ class RenderWidgetHostInputEventRouter;
|
||||
|
||||
namespace ui {
|
||||
class Compositor;
|
||||
class BrowserAccessibilityManager;
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
|
||||
class BrowserAccessibilityManager;
|
||||
class RenderFrameProxyHost;
|
||||
class RenderWidgetHostImpl;
|
||||
class RenderViewHostDelegateView;
|
||||
@ -135,11 +135,11 @@ class CONTENT_EXPORT RenderWidgetHostDelegate {
|
||||
virtual bool PreHandleGestureEvent(const blink::WebGestureEvent& event);
|
||||
|
||||
// Get the root BrowserAccessibilityManager for this frame tree.
|
||||
virtual BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
virtual ui::BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Get the root BrowserAccessibilityManager for this frame tree,
|
||||
// or create it if it doesn't exist.
|
||||
virtual BrowserAccessibilityManager*
|
||||
virtual ui::BrowserAccessibilityManager*
|
||||
GetOrCreateRootBrowserAccessibilityManager();
|
||||
|
||||
// Send OS Cut/Copy/Paste actions to the focused frame.
|
||||
|
@ -52,7 +52,6 @@
|
||||
#include "components/input/utils.h"
|
||||
#include "components/viz/common/features.h"
|
||||
#include "components/viz/host/host_frame_sink_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/bad_message.h"
|
||||
#include "content/browser/browser_main_loop.h"
|
||||
@ -120,6 +119,7 @@
|
||||
#include "third_party/blink/public/mojom/drag/drag.mojom.h"
|
||||
#include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h"
|
||||
#include "third_party/blink/public/mojom/input/touch_event.mojom.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/clipboard/clipboard_constants.h"
|
||||
#include "ui/base/cursor/cursor.h"
|
||||
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h"
|
||||
@ -3462,12 +3462,12 @@ void RenderWidgetHostImpl::OnSnapshotReceived(int snapshot_id,
|
||||
#endif
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
RenderWidgetHostImpl::GetRootBrowserAccessibilityManager() {
|
||||
return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : nullptr;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() {
|
||||
return delegate_ ? delegate_->GetOrCreateRootBrowserAccessibilityManager()
|
||||
: nullptr;
|
||||
@ -3715,7 +3715,7 @@ void RenderWidgetHostImpl::OnRenderFrameMetadataChangedAfterActivation(
|
||||
|
||||
// The root BrowserAccessibilityManager only is reachable if there's a
|
||||
// delegate() still, ie we're not in shutdown. This can be null in tests.
|
||||
BrowserAccessibilityManager* accessibility_manager =
|
||||
ui::BrowserAccessibilityManager* accessibility_manager =
|
||||
GetRootBrowserAccessibilityManager();
|
||||
if (accessibility_manager) {
|
||||
accessibility_manager->SetPageScaleFactor(metadata.page_scale_factor);
|
||||
|
@ -112,7 +112,6 @@ enum class DomCode : uint32_t;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
class BrowserAccessibilityManager;
|
||||
class FrameTree;
|
||||
class MockRenderWidgetHost;
|
||||
class MockRenderWidgetHostImpl;
|
||||
@ -704,11 +703,11 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
void SetForceEnableZoom(bool);
|
||||
|
||||
// Get the BrowserAccessibilityManager for the root of the frame tree,
|
||||
BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* GetRootBrowserAccessibilityManager();
|
||||
|
||||
// Get the BrowserAccessibilityManager for the root of the frame tree,
|
||||
// or create it if it doesn't already exist.
|
||||
BrowserAccessibilityManager* GetOrCreateRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* GetOrCreateRootBrowserAccessibilityManager();
|
||||
|
||||
void RejectPointerLockOrUnlockIfNecessary(
|
||||
blink::mojom::PointerLockResult reason);
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include "components/viz/common/frame_sinks/copy_output_request.h"
|
||||
#include "components/viz/common/frame_sinks/copy_output_result.h"
|
||||
#include "components/viz/common/surfaces/local_surface_id.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/bad_message.h"
|
||||
#include "content/browser/gpu/compositor_util.h"
|
||||
@ -60,6 +59,7 @@
|
||||
#include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom.h"
|
||||
#include "ui/accessibility/aura/aura_window_properties.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/aura/client/aura_constants.h"
|
||||
#include "ui/aura/client/cursor_client.h"
|
||||
#include "ui/aura/client/cursor_client_observer.h"
|
||||
@ -108,10 +108,10 @@
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
#include "base/time/time.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_win.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "content/browser/renderer_host/legacy_render_widget_host_win.h"
|
||||
#include "ui/accessibility/platform/ax_fragment_root_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#include "ui/base/ime/virtual_keyboard_controller.h"
|
||||
#include "ui/base/ime/virtual_keyboard_controller_observer.h"
|
||||
#include "ui/base/ime/win/tsf_input_scope.h"
|
||||
@ -121,7 +121,7 @@
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_LINUX)
|
||||
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_auralinux.h"
|
||||
#include "ui/base/ime/linux/text_edit_command_auralinux.h"
|
||||
#include "ui/base/ime/text_input_flags.h"
|
||||
#include "ui/linux/linux_ui.h"
|
||||
@ -473,14 +473,14 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() {
|
||||
if (!window_host)
|
||||
return static_cast<gfx::NativeViewAccessible>(NULL);
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetOrCreateRootBrowserAccessibilityManager();
|
||||
if (manager)
|
||||
return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot())
|
||||
->GetCOM();
|
||||
|
||||
#elif BUILDFLAG(IS_LINUX)
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetOrCreateRootBrowserAccessibilityManager();
|
||||
if (manager && manager->GetBrowserAccessibilityRoot())
|
||||
return manager->GetBrowserAccessibilityRoot()->GetNativeViewAccessible();
|
||||
@ -1898,7 +1898,7 @@ void RenderWidgetHostViewAura::SetActiveCompositionForAccessibility(
|
||||
const gfx::Range& range,
|
||||
const std::u16string& active_composition_text,
|
||||
bool is_composition_committed) {
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetRootBrowserAccessibilityManager();
|
||||
if (manager) {
|
||||
ui::AXPlatformNodeWin* focus_node = static_cast<ui::AXPlatformNodeWin*>(
|
||||
@ -2229,7 +2229,7 @@ void RenderWidgetHostViewAura::OnWindowFocused(aura::Window* gained_focus,
|
||||
input_method->SetFocusedTextInputClient(this);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetRootBrowserAccessibilityManager();
|
||||
if (manager)
|
||||
manager->OnWindowFocused();
|
||||
@ -2255,7 +2255,7 @@ void RenderWidgetHostViewAura::OnWindowFocused(aura::Window* gained_focus,
|
||||
if (overscroll_controller_)
|
||||
overscroll_controller_->Cancel();
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetRootBrowserAccessibilityManager();
|
||||
if (manager)
|
||||
manager->OnWindowBlurred();
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "cc/layers/deadline_policy.h"
|
||||
#include "components/viz/common/frame_sinks/begin_frame_args.h"
|
||||
#include "components/viz/common/frame_sinks/begin_frame_source.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/compositor/image_transport_factory.h"
|
||||
#include "content/browser/device_posture/device_posture_platform_provider.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_base.h"
|
||||
@ -39,6 +38,7 @@
|
||||
#include "third_party/blink/public/mojom/input/input_handler.mojom-forward.h"
|
||||
#include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom-forward.h"
|
||||
#include "third_party/skia/include/core/SkRegion.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/aura/client/cursor_client_observer.h"
|
||||
#include "ui/aura/client/focus_change_observer.h"
|
||||
#include "ui/aura/client/window_types.h"
|
||||
|
@ -5,8 +5,6 @@
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/observer_list.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/renderer_host/delegated_frame_host.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
||||
@ -27,6 +25,8 @@
|
||||
#include "net/base/filename_util.h"
|
||||
#include "net/dns/mock_host_resolver.h"
|
||||
#include "third_party/blink/public/common/switches.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/ime/text_input_type.h"
|
||||
#include "ui/base/ime/virtual_keyboard_controller.h"
|
||||
#include "ui/base/ime/virtual_keyboard_controller_observer.h"
|
||||
@ -150,14 +150,15 @@ class RenderWidgetHostViewAuraBrowserMockIMETest : public ContentBrowserTest {
|
||||
GetRenderViewHost()->GetWidget()->GetView());
|
||||
}
|
||||
|
||||
BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
BrowserAccessibility* root = GetManager()->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* FindNode(ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* root =
|
||||
GetManager()->GetBrowserAccessibilityRoot();
|
||||
CHECK(root);
|
||||
return FindNodeInSubtree(*root, role, name_or_value);
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager* GetManager() {
|
||||
ui::BrowserAccessibilityManager* GetManager() {
|
||||
WebContentsImpl* web_contents =
|
||||
static_cast<WebContentsImpl*>(shell()->web_contents());
|
||||
return web_contents->GetRootBrowserAccessibilityManager();
|
||||
@ -175,9 +176,10 @@ class RenderWidgetHostViewAuraBrowserMockIMETest : public ContentBrowserTest {
|
||||
net::EmbeddedTestServer server_{net::EmbeddedTestServer::TYPE_HTTPS};
|
||||
|
||||
private:
|
||||
BrowserAccessibility* FindNodeInSubtree(BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
ui::BrowserAccessibility* FindNodeInSubtree(
|
||||
ui::BrowserAccessibility& node,
|
||||
ax::mojom::Role role,
|
||||
const std::string& name_or_value) {
|
||||
const std::string& name =
|
||||
node.GetStringAttribute(ax::mojom::StringAttribute::kName);
|
||||
const std::string value = base::UTF16ToUTF8(node.GetValueForControl());
|
||||
@ -187,7 +189,7 @@ class RenderWidgetHostViewAuraBrowserMockIMETest : public ContentBrowserTest {
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node.PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* result =
|
||||
ui::BrowserAccessibility* result =
|
||||
FindNodeInSubtree(*node.PlatformGetChild(i), role, name_or_value);
|
||||
if (result)
|
||||
return result;
|
||||
@ -205,7 +207,7 @@ IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewAuraBrowserMockIMETest,
|
||||
<div><button>After</button></div>
|
||||
)HTML");
|
||||
|
||||
BrowserAccessibility* target =
|
||||
ui::BrowserAccessibility* target =
|
||||
FindNode(ax::mojom::Role::kGenericContainer, "Editable text");
|
||||
ASSERT_NE(nullptr, target);
|
||||
WebContentsImpl* web_contents =
|
||||
@ -220,7 +222,7 @@ IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewAuraBrowserMockIMETest,
|
||||
GetManager()->DoDefaultAction(*target);
|
||||
ASSERT_TRUE(waiter2.WaitForNotification());
|
||||
|
||||
BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
ui::BrowserAccessibility* focus = GetManager()->GetFocus();
|
||||
EXPECT_EQ(focus->GetId(), target->GetId());
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "components/viz/common/frame_sinks/copy_output_result.h"
|
||||
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
|
||||
#include "components/viz/host/host_frame_sink_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/compositor/surface_utils.h"
|
||||
#include "content/browser/gpu/compositor_util.h"
|
||||
#include "content/browser/renderer_host/cross_process_frame_connector.h"
|
||||
|
@ -35,9 +35,6 @@
|
||||
#include "components/viz/common/switches.h"
|
||||
#import "content/app_shim_remote_cocoa/render_widget_host_ns_view_bridge.h"
|
||||
#import "content/app_shim_remote_cocoa/render_widget_host_view_cocoa.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#include "content/browser/renderer_host/input/motion_event_web.h"
|
||||
#import "content/browser/renderer_host/input/synthetic_gesture_target_mac.h"
|
||||
#include "content/browser/renderer_host/render_view_host_delegate.h"
|
||||
@ -57,6 +54,9 @@
|
||||
#include "third_party/blink/public/common/input/web_input_event.h"
|
||||
#include "third_party/blink/public/mojom/input/input_handler.mojom.h"
|
||||
#include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
#import "ui/base/clipboard/clipboard_util_mac.h"
|
||||
#include "ui/base/cocoa/animation_utils.h"
|
||||
#include "ui/base/cocoa/cocoa_base_utils.h"
|
||||
@ -176,10 +176,10 @@ id RenderWidgetHostViewMac::GetAccessibilityFocusedUIElement() {
|
||||
if (popup_focus_override)
|
||||
return popup_focus_override;
|
||||
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
host()->GetRootBrowserAccessibilityManager();
|
||||
if (manager) {
|
||||
BrowserAccessibility* focused_item = manager->GetFocus();
|
||||
ui::BrowserAccessibility* focused_item = manager->GetFocus();
|
||||
DCHECK(focused_item);
|
||||
if (focused_item) {
|
||||
BrowserAccessibilityCocoa* focused_item_cocoa =
|
||||
|
@ -59,7 +59,6 @@
|
||||
#include "components/url_formatter/url_formatter.h"
|
||||
#include "components/viz/common/features.h"
|
||||
#include "components/viz/host/host_frame_sink_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/attribution_reporting/attribution_host.h"
|
||||
#include "content/browser/attribution_reporting/attribution_manager.h"
|
||||
@ -194,6 +193,7 @@
|
||||
#include "third_party/blink/public/mojom/window_features/window_features.mojom.h"
|
||||
#include "third_party/skia/include/core/SkBitmap.h"
|
||||
#include "ui/accessibility/ax_tree_combiner.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/base/ime/mojom/virtual_keyboard_types.mojom.h"
|
||||
#include "ui/base/pointer/pointer_device.h"
|
||||
#include "ui/base/ui_base_types.h"
|
||||
@ -5296,7 +5296,8 @@ void WebContentsImpl::AccessibilityLocationChangesReceived(
|
||||
}
|
||||
|
||||
ui::AXNode* WebContentsImpl::GetAccessibilityRootNode() {
|
||||
BrowserAccessibilityManager* manager = GetRootBrowserAccessibilityManager();
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
GetRootBrowserAccessibilityManager();
|
||||
if (!manager || !manager->ax_tree()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -5469,14 +5470,14 @@ bool WebContentsImpl::IsWidgetForPrimaryMainFrame(
|
||||
return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost();
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
WebContentsImpl::GetRootBrowserAccessibilityManager() {
|
||||
RenderFrameHostImpl* rfh =
|
||||
static_cast<RenderFrameHostImpl*>(GetPrimaryMainFrame());
|
||||
return rfh ? rfh->browser_accessibility_manager() : nullptr;
|
||||
}
|
||||
|
||||
BrowserAccessibilityManager*
|
||||
ui::BrowserAccessibilityManager*
|
||||
WebContentsImpl::GetOrCreateRootBrowserAccessibilityManager() {
|
||||
RenderFrameHostImpl* rfh =
|
||||
static_cast<RenderFrameHostImpl*>(GetPrimaryMainFrame());
|
||||
@ -6609,7 +6610,7 @@ void WebContentsImpl::DidRedirectNavigation(
|
||||
// BrowserAccessibilityManager associated with the old RFHI.
|
||||
if (navigation_handle->GetReloadType() != ReloadType::NONE) {
|
||||
NavigationRequest* request = NavigationRequest::From(navigation_handle);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
request->frame_tree_node()
|
||||
->current_frame_host()
|
||||
->browser_accessibility_manager();
|
||||
@ -6698,7 +6699,7 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) {
|
||||
if (navigation_handle->HasCommitted()) {
|
||||
// TODO(domfarolino, dmazzoni): Do this using WebContentsObserver. See
|
||||
// https://crbug.com/981271.
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
static_cast<RenderFrameHostImpl*>(
|
||||
navigation_handle->GetRenderFrameHost())
|
||||
->browser_accessibility_manager();
|
||||
@ -8664,7 +8665,7 @@ void WebContentsImpl::DidStartLoading(FrameTreeNode* frame_tree_node) {
|
||||
// current document.
|
||||
// TODO(domfarolino, dmazzoni): Do this using WebContentsObserver. See
|
||||
// https://crbug.com/981271.
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
frame_tree_node->current_frame_host()->browser_accessibility_manager();
|
||||
if (manager) {
|
||||
manager->UserIsNavigatingAway();
|
||||
@ -8692,7 +8693,7 @@ void WebContentsImpl::DidStopLoading() {
|
||||
|
||||
GetPrimaryMainFrame()->ForEachRenderFrameHost(
|
||||
[](RenderFrameHostImpl* render_frame_host) {
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
render_frame_host->browser_accessibility_manager();
|
||||
if (manager) {
|
||||
manager->DidStopLoading();
|
||||
|
@ -1050,8 +1050,9 @@ class CONTENT_EXPORT WebContentsImpl
|
||||
bool HandleKeyboardEvent(const input::NativeWebKeyboardEvent& event) override;
|
||||
bool HandleWheelEvent(const blink::WebMouseWheelEvent& event) override;
|
||||
bool PreHandleGestureEvent(const blink::WebGestureEvent& event) override;
|
||||
BrowserAccessibilityManager* GetRootBrowserAccessibilityManager() override;
|
||||
BrowserAccessibilityManager* GetOrCreateRootBrowserAccessibilityManager()
|
||||
ui::BrowserAccessibilityManager* GetRootBrowserAccessibilityManager()
|
||||
override;
|
||||
ui::BrowserAccessibilityManager* GetOrCreateRootBrowserAccessibilityManager()
|
||||
override;
|
||||
// The following 4 functions are already listed under WebContents overrides:
|
||||
// void Cut() override;
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include "base/notreached.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_tree_manager.h"
|
||||
#include "ui/base/buildflags.h"
|
||||
|
||||
namespace content {
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_android.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_android_external.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_tree_manager.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
|
@ -2,11 +2,10 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
|
||||
#include "base/notreached.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_event_recorder_auralinux.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_tree_formatter_auralinux.h"
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_fuchsia.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_tree_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_event_recorder_fuchsia.h"
|
||||
|
||||
namespace content {
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "content/public/browser/ax_inspect_factory.h"
|
||||
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_tree_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_event_recorder_mac.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_tree_formatter_mac.h"
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "base/notreached.h"
|
||||
#include "base/win/com_init_util.h"
|
||||
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/ax_tree_manager.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_event_recorder_win.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_event_recorder_win_uia.h"
|
||||
#include "ui/accessibility/platform/inspect/ax_tree_formatter_uia_win.h"
|
||||
|
@ -10,8 +10,6 @@
|
||||
#include "base/run_loop.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/renderer_host/render_frame_host_impl.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_base.h"
|
||||
#include "content/browser/web_contents/web_contents_impl.h"
|
||||
@ -22,6 +20,8 @@
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/test/test_utils.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
@ -198,7 +198,7 @@ void AccessibilityNotificationWaiter::BindOnLocationsChanged(
|
||||
}
|
||||
|
||||
void AccessibilityNotificationWaiter::OnGeneratedEvent(
|
||||
BrowserAccessibilityManager* manager,
|
||||
ui::BrowserAccessibilityManager* manager,
|
||||
ui::AXEventGenerator::Event event,
|
||||
ui::AXNodeID event_target_id) {
|
||||
DCHECK(manager);
|
||||
@ -226,7 +226,7 @@ void AccessibilityNotificationWaiter::OnLocationsChanged() {
|
||||
void AccessibilityNotificationWaiter::OnFocusChanged() {
|
||||
WebContentsImpl* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(web_contents());
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
if (manager && manager->delegate() && manager->GetFocus()) {
|
||||
OnGeneratedEvent(manager, ui::AXEventGenerator::Event::FOCUS_CHANGED,
|
||||
@ -239,7 +239,7 @@ const ui::AXTree& AccessibilityNotificationWaiter::GetAXTreeForFrame(
|
||||
static base::NoDestructor<ui::AXTree> empty_tree;
|
||||
WebContentsImpl* web_contents_impl =
|
||||
WebContentsImpl::FromRenderFrameHostImpl(render_frame);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
return manager && manager->ax_tree() ? *manager->ax_tree() : *empty_tree;
|
||||
}
|
||||
|
@ -20,9 +20,12 @@ namespace base {
|
||||
class RunLoop;
|
||||
}
|
||||
|
||||
namespace ui {
|
||||
class BrowserAccessibilityManager;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
|
||||
class BrowserAccessibilityManager;
|
||||
class RenderFrameHost;
|
||||
class RenderFrameHostImpl;
|
||||
class WebContents;
|
||||
@ -81,7 +84,7 @@ class AccessibilityNotificationWaiter : public WebContentsObserver {
|
||||
|
||||
// After WaitForNotification returns, use this to retrieve the
|
||||
// `BrowserAccessibilityManager` that was the target of the event.
|
||||
BrowserAccessibilityManager* event_browser_accessibility_manager() const {
|
||||
ui::BrowserAccessibilityManager* event_browser_accessibility_manager() const {
|
||||
return event_browser_accessibility_manager_;
|
||||
}
|
||||
|
||||
@ -115,7 +118,7 @@ class AccessibilityNotificationWaiter : public WebContentsObserver {
|
||||
int event_target_id);
|
||||
|
||||
// Callback from BrowserAccessibilityManager for all generated events.
|
||||
void OnGeneratedEvent(BrowserAccessibilityManager* manager,
|
||||
void OnGeneratedEvent(ui::BrowserAccessibilityManager* manager,
|
||||
ui::AXEventGenerator::Event event,
|
||||
ui::AXNodeID event_target_id);
|
||||
|
||||
@ -139,7 +142,7 @@ class AccessibilityNotificationWaiter : public WebContentsObserver {
|
||||
std::unique_ptr<base::RunLoop> loop_runner_;
|
||||
base::RepeatingClosure loop_runner_quit_closure_;
|
||||
int event_target_id_ = 0;
|
||||
raw_ptr<BrowserAccessibilityManager, AcrossTasksDanglingUntriaged>
|
||||
raw_ptr<ui::BrowserAccessibilityManager, AcrossTasksDanglingUntriaged>
|
||||
event_browser_accessibility_manager_ = nullptr;
|
||||
bool notification_received_ = false;
|
||||
int frame_count_ = 0;
|
||||
|
@ -49,8 +49,6 @@
|
||||
#include "cc/test/pixel_test_utils.h"
|
||||
#include "components/input/render_widget_host_input_event_router.h"
|
||||
#include "components/viz/client/frame_evictor.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/file_system/file_system_manager_impl.h"
|
||||
#include "content/browser/file_system_access/file_system_access_manager_impl.h"
|
||||
#include "content/browser/renderer_host/cross_process_frame_connector.h"
|
||||
@ -135,6 +133,8 @@
|
||||
#include "third_party/blink/public/mojom/filesystem/file_system.mojom.h"
|
||||
#include "third_party/blink/public/mojom/keyboard_lock/keyboard_lock.mojom-shared.h"
|
||||
#include "third_party/skia/include/core/SkBitmap.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/clipboard/clipboard.h"
|
||||
#include "ui/base/clipboard/scoped_clipboard_writer.h"
|
||||
#include "ui/base/clipboard/test/test_clipboard.h"
|
||||
@ -2189,7 +2189,7 @@ bool WaitForRenderFrameReady(RenderFrameHost* rfh) {
|
||||
|
||||
void WaitForAccessibilityFocusChange() {
|
||||
base::RunLoop run_loop;
|
||||
BrowserAccessibilityManager::SetFocusChangeCallbackForTesting(
|
||||
ui::BrowserAccessibilityManager::SetFocusChangeCallbackForTesting(
|
||||
run_loop.QuitClosure());
|
||||
run_loop.Run();
|
||||
}
|
||||
@ -2197,15 +2197,15 @@ void WaitForAccessibilityFocusChange() {
|
||||
ui::AXNodeData GetFocusedAccessibilityNodeInfo(WebContents* web_contents) {
|
||||
WebContentsImpl* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(web_contents);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
if (!manager)
|
||||
return ui::AXNodeData();
|
||||
BrowserAccessibility* focused_node = manager->GetFocus();
|
||||
ui::BrowserAccessibility* focused_node = manager->GetFocus();
|
||||
return focused_node->GetData();
|
||||
}
|
||||
|
||||
bool AccessibilityTreeContainsNodeWithName(BrowserAccessibility* node,
|
||||
bool AccessibilityTreeContainsNodeWithName(ui::BrowserAccessibility* node,
|
||||
std::string_view name) {
|
||||
// If an image annotation is set, it plays the same role as a name, so it
|
||||
// makes sense to check both in the same test helper.
|
||||
@ -2232,7 +2232,7 @@ void WaitForAccessibilityTreeToContainNodeWithName(WebContents* web_contents,
|
||||
static_cast<WebContentsImpl*>(web_contents);
|
||||
RenderFrameHostImpl* main_frame = static_cast<RenderFrameHostImpl*>(
|
||||
web_contents_impl->GetPrimaryMainFrame());
|
||||
BrowserAccessibilityManager* main_frame_manager =
|
||||
ui::BrowserAccessibilityManager* main_frame_manager =
|
||||
main_frame->browser_accessibility_manager();
|
||||
while (!main_frame_manager ||
|
||||
!AccessibilityTreeContainsNodeWithName(
|
||||
@ -2245,7 +2245,7 @@ void WaitForAccessibilityTreeToContainNodeWithName(WebContents* web_contents,
|
||||
ui::AXTreeUpdate GetAccessibilityTreeSnapshot(WebContents* web_contents) {
|
||||
WebContentsImpl* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(web_contents);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
if (!manager)
|
||||
return ui::AXTreeUpdate();
|
||||
@ -2254,8 +2254,8 @@ ui::AXTreeUpdate GetAccessibilityTreeSnapshot(WebContents* web_contents) {
|
||||
|
||||
ui::AXTreeUpdate GetAccessibilityTreeSnapshotFromId(
|
||||
const ui::AXTreeID& tree_id) {
|
||||
BrowserAccessibilityManager* manager =
|
||||
BrowserAccessibilityManager::FromID(tree_id);
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager::FromID(tree_id);
|
||||
return manager ? manager->SnapshotAXTreeForTesting() : ui::AXTreeUpdate();
|
||||
}
|
||||
|
||||
@ -2263,7 +2263,7 @@ ui::AXPlatformNodeDelegate* GetRootAccessibilityNode(
|
||||
WebContents* web_contents) {
|
||||
WebContentsImpl* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(web_contents);
|
||||
BrowserAccessibilityManager* manager =
|
||||
ui::BrowserAccessibilityManager* manager =
|
||||
web_contents_impl->GetRootBrowserAccessibilityManager();
|
||||
return manager ? manager->GetBrowserAccessibilityRoot() : nullptr;
|
||||
}
|
||||
@ -2283,7 +2283,8 @@ ui::AXPlatformNodeDelegate* FindAccessibilityNode(
|
||||
ui::AXPlatformNodeDelegate* FindAccessibilityNodeInSubtree(
|
||||
ui::AXPlatformNodeDelegate* node,
|
||||
const FindAccessibilityNodeCriteria& criteria) {
|
||||
auto* node_internal = BrowserAccessibility::FromAXPlatformNodeDelegate(node);
|
||||
auto* node_internal =
|
||||
ui::BrowserAccessibility::FromAXPlatformNodeDelegate(node);
|
||||
DCHECK(node_internal);
|
||||
if ((!criteria.name ||
|
||||
node_internal->GetStringAttribute(ax::mojom::StringAttribute::kName) ==
|
||||
@ -2293,7 +2294,7 @@ ui::AXPlatformNodeDelegate* FindAccessibilityNodeInSubtree(
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < node_internal->PlatformChildCount(); ++i) {
|
||||
BrowserAccessibility* child = node_internal->PlatformGetChild(i);
|
||||
ui::BrowserAccessibility* child = node_internal->PlatformGetChild(i);
|
||||
ui::AXPlatformNodeDelegate* result =
|
||||
FindAccessibilityNodeInSubtree(child, criteria);
|
||||
if (result)
|
||||
|
@ -2170,7 +2170,6 @@ test("content_browsertests") {
|
||||
sources += [
|
||||
"../app_shim_remote_cocoa/window_occlusion_browsertest_mac.mm",
|
||||
"../browser/accessibility/ax_tree_formatter_mac_browsertest.mm",
|
||||
"../browser/accessibility/browser_accessibility_cocoa_browsertest.mm",
|
||||
"../browser/accessibility/hit_testing_mac_browsertest.mm",
|
||||
"../browser/gpu/browser_child_process_backgrounded_bridge_browsertest.mm",
|
||||
"../browser/keyboard_lock_browsertest_mac.mm",
|
||||
@ -2876,7 +2875,6 @@ test("content_unittests") {
|
||||
|
||||
if (is_mac) {
|
||||
sources += [
|
||||
"../browser/accessibility/browser_accessibility_mac_unittest.mm",
|
||||
"../browser/child_process_task_port_provider_mac_unittest.cc",
|
||||
"../browser/cocoa/system_hotkey_map_unittest.mm",
|
||||
"../browser/media/capture/screen_capture_kit_fullscreen_module_unittest.mm",
|
||||
@ -2900,20 +2898,8 @@ test("content_unittests") {
|
||||
]
|
||||
}
|
||||
|
||||
if (use_atk) {
|
||||
sources += [
|
||||
"../browser/accessibility/browser_accessibility_auralinux_unittest.cc",
|
||||
"../browser/accessibility/browser_accessibility_manager_auralinux_unittest.cc",
|
||||
]
|
||||
configs += [ "//build/config/linux/atk" ]
|
||||
}
|
||||
|
||||
if (is_fuchsia) {
|
||||
sources += [
|
||||
"../browser/accessibility/browser_accessibility_fuchsia_unittest.cc",
|
||||
"../browser/accessibility/browser_accessibility_manager_fuchsia_unittest.cc",
|
||||
"../browser/renderer_host/media/fuchsia_media_codec_provider_impl_unittest.cc",
|
||||
]
|
||||
sources += [ "../browser/renderer_host/media/fuchsia_media_codec_provider_impl_unittest.cc" ]
|
||||
|
||||
additional_manifest_fragments = [
|
||||
"//build/config/fuchsia/test/fonts.shard.test-cml",
|
||||
@ -3273,8 +3259,6 @@ test("content_unittests") {
|
||||
}
|
||||
if (is_win) {
|
||||
sources += [
|
||||
"../browser/accessibility/browser_accessibility_manager_win_unittest.cc",
|
||||
"../browser/accessibility/browser_accessibility_win_unittest.cc",
|
||||
"../browser/device_posture/device_posture_registry_watcher_win_unittest.cc",
|
||||
"../browser/renderer_host/direct_manipulation_test_helper_win.cc",
|
||||
"../browser/renderer_host/direct_manipulation_test_helper_win.h",
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
#include <fuzzer/FuzzedDataProvider.h>
|
||||
|
||||
@ -10,13 +10,13 @@
|
||||
|
||||
#include "base/at_exit.h"
|
||||
#include "base/command_line.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h"
|
||||
#include "content/public/common/content_client.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "content/test/test_content_browser_client.h"
|
||||
#include "content/test/test_content_client.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/one_shot_accessibility_tree_search.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
|
||||
@ -177,11 +177,12 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
|
||||
|
||||
ui::TestAXPlatformTreeManagerDelegate delegate;
|
||||
ui::TestAXNodeIdDelegate node_id_delegate;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager(
|
||||
BrowserAccessibilityManager::Create(tree, node_id_delegate, &delegate));
|
||||
std::unique_ptr<BrowserAccessibilityManager> child_manager(
|
||||
BrowserAccessibilityManager::Create(child_tree, node_id_delegate,
|
||||
&delegate));
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> manager(
|
||||
ui::BrowserAccessibilityManager::Create(tree, node_id_delegate,
|
||||
&delegate));
|
||||
std::unique_ptr<ui::BrowserAccessibilityManager> child_manager(
|
||||
ui::BrowserAccessibilityManager::Create(child_tree, node_id_delegate,
|
||||
&delegate));
|
||||
|
||||
// We want to call a bunch of functions but we don't care what the
|
||||
// return values are. To ensure the compiler doesn't optimize the calls
|
||||
@ -190,22 +191,23 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
|
||||
std::vector<void*> results;
|
||||
|
||||
// Test some tree-walking functions.
|
||||
BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
ui::BrowserAccessibility* root = manager->GetBrowserAccessibilityRoot();
|
||||
results.push_back(root->PlatformDeepestFirstChild());
|
||||
results.push_back(root->PlatformDeepestLastChild());
|
||||
results.push_back(root->InternalDeepestFirstChild());
|
||||
results.push_back(root->InternalDeepestLastChild());
|
||||
|
||||
// Test OneShotAccessibilityTreeSearch.
|
||||
OneShotAccessibilityTreeSearch search(manager->GetBrowserAccessibilityRoot());
|
||||
ui::OneShotAccessibilityTreeSearch search(
|
||||
manager->GetBrowserAccessibilityRoot());
|
||||
search.SetDirection(fdp.ConsumeBool()
|
||||
? OneShotAccessibilityTreeSearch::FORWARDS
|
||||
: OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
? ui::OneShotAccessibilityTreeSearch::FORWARDS
|
||||
: ui::OneShotAccessibilityTreeSearch::BACKWARDS);
|
||||
search.SetImmediateDescendantsOnly(fdp.ConsumeBool());
|
||||
search.SetCanWrapToLastElement(fdp.ConsumeBool());
|
||||
search.SetOnscreenOnly(fdp.ConsumeBool());
|
||||
if (fdp.ConsumeBool())
|
||||
search.AddPredicate(AccessibilityButtonPredicate);
|
||||
search.AddPredicate(ui::AccessibilityButtonPredicate);
|
||||
if (fdp.ConsumeBool())
|
||||
search.SetSearchText(fdp.ConsumeRandomLengthString(5));
|
||||
size_t matches = search.CountMatches();
|
||||
|
@ -555,8 +555,8 @@ For more detail on Chrome OS accessibility, read [How Chrome OS Accessibility Wo
|
||||
[AXPlatformNode]: https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_node.h
|
||||
[AXTreeSerializer]: https://cs.chromium.org/chromium/src/ui/accessibility/ax_tree_serializer.h
|
||||
[BlinkAXTreeSource]: https://cs.chromium.org/chromium/src/content/renderer/accessibility/blink_ax_tree_source.h
|
||||
[BrowserAccessibility]: https://cs.chromium.org/chromium/src/content/browser/accessibility/browser_accessibility.h
|
||||
[BrowserAccessibilityManager]: https://cs.chromium.org/chromium/src/content/browser/accessibility/browser_accessibility_manager.h
|
||||
[BrowserAccessibility]: https://cs.chromium.org/chromium/src/ui/accessibility/platform/browser_accessibility.h
|
||||
[BrowserAccessibilityManager]: https://cs.chromium.org/chromium/src/ui/accessibility/platform/browser_accessibility_manager.h
|
||||
[LayoutObject]: https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/layout/layout_object.h
|
||||
[AXPlatformTreeManagerDelegate]: https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_tree_manager_delegate.h
|
||||
[ViewAccessibility]: https://cs.chromium.org/chromium/src/ui/views/accessibility/view_accessibility.h
|
||||
|
@ -204,7 +204,7 @@ src:*third_party/angle/src/common/vulkan/vulkan_icd.cpp
|
||||
|
||||
src:*components/os_crypt/sync/*
|
||||
|
||||
src:*content/browser/accessibility/browser_accessibility_auralinux.cc
|
||||
src:*ui/accessibility/platform/browser_accessibility_auralinux.cc
|
||||
src:*ui/accessibility/platform/ax_platform_node_auralinux.cc
|
||||
src:*ui/accessibility/platform/ax_platform_atk_hyperlink.cc
|
||||
src:*ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
|
||||
|
@ -373,6 +373,8 @@ test("accessibility_unittests") {
|
||||
if (is_fuchsia) {
|
||||
sources += [
|
||||
"platform/fuchsia/accessibility_bridge_fuchsia_unittest.cc",
|
||||
"platform/fuchsia/browser_accessibility_fuchsia_unittest.cc",
|
||||
"platform/fuchsia/browser_accessibility_manager_fuchsia_unittest.cc",
|
||||
"platform/fuchsia/semantic_provider_unittest.cc",
|
||||
]
|
||||
|
||||
@ -398,6 +400,8 @@ test("accessibility_unittests") {
|
||||
"platform/ax_platform_node_textrangeprovider_win_unittest.cc",
|
||||
"platform/ax_platform_node_win_unittest.cc",
|
||||
"platform/ax_platform_node_win_unittest.h",
|
||||
"platform/browser_accessibility_manager_win_unittest.cc",
|
||||
"platform/browser_accessibility_win_unittest.cc",
|
||||
"platform/iaccessible2/scoped_co_mem_array_unittest.cc",
|
||||
]
|
||||
|
||||
@ -412,10 +416,17 @@ test("accessibility_unittests") {
|
||||
]
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
sources += [ "platform/browser_accessibility_mac_unittest.mm" ]
|
||||
deps += [ "//ui/base:test_support" ]
|
||||
}
|
||||
|
||||
if (use_atk) {
|
||||
sources += [
|
||||
"platform/atk_util_auralinux_unittest.cc",
|
||||
"platform/ax_platform_node_auralinux_unittest.cc",
|
||||
"platform/browser_accessibility_auralinux_unittest.cc",
|
||||
"platform/browser_accessibility_manager_auralinux_unittest.cc",
|
||||
]
|
||||
|
||||
configs += [ "//build/config/linux/atk" ]
|
||||
|
@ -76,6 +76,11 @@ component("platform") {
|
||||
"inspect/ax_tree_indexer.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//ui/strings:auto_image_annotation_strings",
|
||||
"//ui/strings:ax_strings",
|
||||
]
|
||||
|
||||
public_deps = [
|
||||
"//ui/accessibility:accessibility_internal",
|
||||
"//ui/accessibility:ax_base",
|
||||
@ -103,7 +108,7 @@ component("platform") {
|
||||
"automation/v8_handler_function_wrapper.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
deps += [
|
||||
"//base:i18n",
|
||||
"//components/crash/core/common:crash_key",
|
||||
"//gin",
|
||||
@ -118,6 +123,23 @@ component("platform") {
|
||||
]
|
||||
}
|
||||
|
||||
# BrowserAccessibility was historically used only by AXNodes
|
||||
# coming from blink and has a dependency on `cc/base/rtree.h`.
|
||||
# If we want to support using BrowserAccessibility on platforms
|
||||
# that cannot take this dependency (such as non-blink ios) we
|
||||
# will need to refactor to use a different data structure.
|
||||
# So don't build on non-blink ios for now.
|
||||
if (!(is_ios && !use_blink)) {
|
||||
sources += [
|
||||
"browser_accessibility.cc",
|
||||
"browser_accessibility.h",
|
||||
"browser_accessibility_manager.cc",
|
||||
"browser_accessibility_manager.h",
|
||||
"one_shot_accessibility_tree_search.cc",
|
||||
"one_shot_accessibility_tree_search.h",
|
||||
]
|
||||
}
|
||||
|
||||
if (is_fuchsia) {
|
||||
sources += [
|
||||
"fuchsia/accessibility_bridge_fuchsia.h",
|
||||
@ -127,6 +149,10 @@ component("platform") {
|
||||
"fuchsia/accessibility_bridge_fuchsia_registry.h",
|
||||
"fuchsia/ax_platform_node_fuchsia.cc",
|
||||
"fuchsia/ax_platform_node_fuchsia.h",
|
||||
"fuchsia/browser_accessibility_fuchsia.cc",
|
||||
"fuchsia/browser_accessibility_fuchsia.h",
|
||||
"fuchsia/browser_accessibility_manager_fuchsia.cc",
|
||||
"fuchsia/browser_accessibility_manager_fuchsia.h",
|
||||
"fuchsia/semantic_provider.h",
|
||||
"fuchsia/semantic_provider_impl.cc",
|
||||
"fuchsia/semantic_provider_impl.h",
|
||||
@ -134,6 +160,8 @@ component("platform") {
|
||||
"inspect/ax_event_recorder_fuchsia.h",
|
||||
]
|
||||
|
||||
deps += [ "//third_party/fuchsia-sdk/sdk/pkg/inspect_component_cpp" ]
|
||||
|
||||
public_deps += [
|
||||
"//base",
|
||||
"//third_party/fuchsia-sdk/sdk/fidl/fuchsia.accessibility.semantics:fuchsia.accessibility.semantics_cpp",
|
||||
@ -173,6 +201,12 @@ component("platform") {
|
||||
"ax_platform_relation_win.h",
|
||||
"ax_system_caret_win.cc",
|
||||
"ax_system_caret_win.h",
|
||||
"browser_accessibility_com_win.cc",
|
||||
"browser_accessibility_com_win.h",
|
||||
"browser_accessibility_manager_win.cc",
|
||||
"browser_accessibility_manager_win.h",
|
||||
"browser_accessibility_win.cc",
|
||||
"browser_accessibility_win.h",
|
||||
"iaccessible2/scoped_co_mem_array.h",
|
||||
"inspect/ax_call_statement_invoker_win.cc",
|
||||
"inspect/ax_call_statement_invoker_win.h",
|
||||
@ -220,6 +254,12 @@ component("platform") {
|
||||
"ax_private_webkit_constants_mac.mm",
|
||||
"ax_utils_mac.h",
|
||||
"ax_utils_mac.mm",
|
||||
"browser_accessibility_cocoa.h",
|
||||
"browser_accessibility_cocoa.mm",
|
||||
"browser_accessibility_mac.h",
|
||||
"browser_accessibility_mac.mm",
|
||||
"browser_accessibility_manager_mac.h",
|
||||
"browser_accessibility_manager_mac.mm",
|
||||
"inspect/ax_call_statement_invoker_mac.h",
|
||||
"inspect/ax_call_statement_invoker_mac.mm",
|
||||
"inspect/ax_element_wrapper_mac.h",
|
||||
@ -235,6 +275,8 @@ component("platform") {
|
||||
"inspect/ax_tree_indexer_mac.h",
|
||||
]
|
||||
|
||||
deps += [ "//ui/accelerated_widget_mac" ]
|
||||
|
||||
frameworks = [
|
||||
"Accessibility.framework",
|
||||
"AppKit.framework",
|
||||
@ -248,6 +290,10 @@ component("platform") {
|
||||
"ax_platform_node_ios.mm",
|
||||
"ax_platform_node_ui_kit_element.h",
|
||||
"ax_platform_node_ui_kit_element.mm",
|
||||
"browser_accessibility_ios.h",
|
||||
"browser_accessibility_ios.mm",
|
||||
"browser_accessibility_manager_ios.h",
|
||||
"browser_accessibility_manager_ios.mm",
|
||||
]
|
||||
|
||||
frameworks = [
|
||||
@ -266,6 +312,10 @@ component("platform") {
|
||||
"ax_platform_atk_hyperlink.h",
|
||||
"ax_platform_node_auralinux.cc",
|
||||
"ax_platform_node_auralinux.h",
|
||||
"browser_accessibility_auralinux.cc",
|
||||
"browser_accessibility_auralinux.h",
|
||||
"browser_accessibility_manager_auralinux.cc",
|
||||
"browser_accessibility_manager_auralinux.h",
|
||||
"inspect/ax_call_statement_invoker_auralinux.cc",
|
||||
"inspect/ax_call_statement_invoker_auralinux.h",
|
||||
"inspect/ax_event_recorder_auralinux.cc",
|
||||
|
@ -1,3 +1,7 @@
|
||||
include_rules = [
|
||||
"+ui/strings/grit/auto_image_annotation_strings.h",
|
||||
"+ui/accelerated_widget_mac",
|
||||
]
|
||||
specific_include_rules = {
|
||||
"atk_util_auralinux_x11\.cc": [
|
||||
"+ui/events/x",
|
||||
@ -8,4 +12,7 @@ specific_include_rules = {
|
||||
"ax_platform_node_win\.cc": [
|
||||
"+skia/ext",
|
||||
],
|
||||
"browser_accessibility_manager\.h": [
|
||||
"+cc/base/rtree.h",
|
||||
],
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
@ -17,9 +17,6 @@
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/public/common/content_client.h"
|
||||
#include "ui/accessibility/ax_enums.mojom.h"
|
||||
#include "ui/accessibility/ax_node_id_forward.h"
|
||||
#include "ui/accessibility/ax_role_properties.h"
|
||||
@ -27,7 +24,9 @@
|
||||
#include "ui/accessibility/ax_tree_id.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/base/buildflags.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
#include "ui/gfx/geometry/rect_conversions.h"
|
||||
#include "ui/gfx/geometry/rect_f.h"
|
||||
#include "ui/strings/grit/auto_image_annotation_strings.h"
|
||||
@ -40,7 +39,7 @@
|
||||
#include "ui/strings/grit/ax_strings.h"
|
||||
#endif // !BUILDFLAG(IS_FUCHSIA)
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
#if DCHECK_IS_ON()
|
||||
static int browser_accessibility_count = 0;
|
||||
@ -1330,8 +1329,7 @@ bool BrowserAccessibility::AccessibilityPerformAction(
|
||||
// BrowserAccessibility to avoid platform-specific code in the base class.
|
||||
#if !BUILDFLAG(IS_FUCHSIA)
|
||||
std::u16string BrowserAccessibility::GetLocalizedString(int message_id) const {
|
||||
ContentClient* content_client = GetContentClient();
|
||||
return content_client->GetLocalizedString(message_id);
|
||||
return l10n_util::GetStringUTF16(message_id);
|
||||
}
|
||||
|
||||
std::u16string BrowserAccessibility::GetLocalizedStringForImageAnnotationStatus(
|
||||
@ -2082,4 +2080,4 @@ bool BrowserAccessibility::IsHierarchicalList() const {
|
||||
return HasListDescendant(this, this) || HasListAncestor(InternalGetParent());
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
@ -19,8 +19,7 @@
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/strings/string_split.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "third_party/blink/public/web/web_ax_enums.h"
|
||||
#include "base/component_export.h"
|
||||
#include "ui/accessibility/ax_enums.mojom-forward.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/ax_node_data.h"
|
||||
@ -35,10 +34,11 @@
|
||||
#if BUILDFLAG(IS_MAC) && __OBJC__
|
||||
@class BrowserAccessibilityCocoa;
|
||||
#endif
|
||||
|
||||
namespace content {
|
||||
class BrowserAccessibilityManager;
|
||||
class DumpAccessibilityTestBase;
|
||||
}
|
||||
namespace ui {
|
||||
class BrowserAccessibilityManager;
|
||||
// A `BrowserAccessibility` object represents one node in the accessibility tree
|
||||
// on the browser side. It wraps an `AXNode` and assists in exposing
|
||||
// web-specific information from the node. It's owned by a
|
||||
@ -47,7 +47,7 @@ class DumpAccessibilityTestBase;
|
||||
// There are subclasses of BrowserAccessibility for each platform where we
|
||||
// implement some of the native accessibility APIs that are only specific to the
|
||||
// Web.
|
||||
class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
class COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
public:
|
||||
// Creates a platform specific BrowserAccessibility. Ownership passes to the
|
||||
// caller.
|
||||
@ -111,7 +111,7 @@ class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
virtual BrowserAccessibility* PlatformGetPreviousSibling() const;
|
||||
|
||||
// Iterator over platform children.
|
||||
class CONTENT_EXPORT PlatformChildIterator : public ui::ChildIterator {
|
||||
class COMPONENT_EXPORT(AX_PLATFORM) PlatformChildIterator : public ui::ChildIterator {
|
||||
public:
|
||||
using iterator_category = std::bidirectional_iterator_tag;
|
||||
using difference_type = int;
|
||||
@ -209,7 +209,7 @@ class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
child_tree_root_(parent->PlatformGetRootOfChildTree()) {}
|
||||
AllChildrenRange(const AllChildrenRange&) = default;
|
||||
|
||||
class CONTENT_EXPORT Iterator final {
|
||||
class COMPONENT_EXPORT(AX_PLATFORM) Iterator final {
|
||||
public:
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
using value_type = BrowserAccessibility*;
|
||||
@ -417,7 +417,7 @@ class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
// TODO(https://crbug.com/358567091): Move this logic outside of
|
||||
// BrowserAccessibility to avoid platform-specific code in the base class.
|
||||
#if !BUILDFLAG(IS_FUCHSIA)
|
||||
std::u16string GetLocalizedString(int message_id) const;
|
||||
virtual std::u16string GetLocalizedString(int message_id) const;
|
||||
std::u16string GetLocalizedStringForImageAnnotationStatus(
|
||||
ax::mojom::ImageAnnotationStatus status) const override;
|
||||
std::u16string GetLocalizedRoleDescriptionForUnlabeledImage() const override;
|
||||
@ -486,7 +486,7 @@ class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
|
||||
// DumpAccessibilityTestBase needs to be able to set
|
||||
// ignore_hovered_state_for_testing_ to avoid flaky tests.
|
||||
friend class DumpAccessibilityTestBase;
|
||||
friend class content::DumpAccessibilityTestBase;
|
||||
|
||||
private:
|
||||
// Return the bounds after converting from this node's coordinate system
|
||||
@ -559,4 +559,4 @@ class CONTENT_EXPORT BrowserAccessibility : public ui::AXPlatformNodeDelegate {
|
||||
|
||||
} // namespace content
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_H_
|
@ -2,13 +2,13 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_auralinux.h"
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_auralinux.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
||||
BrowserAccessibility* obj) {
|
||||
@ -83,4 +83,4 @@ bool BrowserAccessibilityAuraLinux::IsPrimaryWebContentsForWindow() const {
|
||||
return primary_id != ui::kInvalidAXNodeID && primary_id == GetId();
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
@ -2,22 +2,17 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "base/component_export.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
class AXPlatformNodeAuraLinux;
|
||||
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
|
||||
class BrowserAccessibilityAuraLinux : public BrowserAccessibility {
|
||||
public:
|
||||
BrowserAccessibilityAuraLinux(BrowserAccessibilityManager* manager,
|
||||
@ -27,7 +22,7 @@ class BrowserAccessibilityAuraLinux : public BrowserAccessibility {
|
||||
BrowserAccessibilityAuraLinux& operator=(
|
||||
const BrowserAccessibilityAuraLinux&) = delete;
|
||||
|
||||
CONTENT_EXPORT ui::AXPlatformNodeAuraLinux* GetNode() const;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) ui::AXPlatformNodeAuraLinux* GetNode() const;
|
||||
|
||||
// This is used to call UpdateHypertext, when a node needs to be
|
||||
// updated for some other reason other than via OnAtomicUpdateFinished.
|
||||
@ -50,9 +45,9 @@ class BrowserAccessibilityAuraLinux : public BrowserAccessibility {
|
||||
raw_ptr<ui::AXPlatformNodeAuraLinux> platform_node_;
|
||||
};
|
||||
|
||||
CONTENT_EXPORT BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
||||
COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
||||
BrowserAccessibility* obj);
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_AURALINUX_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_auralinux.h"
|
||||
|
||||
#include <atk/atk.h>
|
||||
|
||||
@ -10,15 +10,15 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "content/public/test/scoped_accessibility_mode_override.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "base/test/task_environment.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/ax_platform_for_test.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
class BrowserAccessibilityAuraLinuxTest : public ::testing::Test {
|
||||
public:
|
||||
@ -37,14 +37,14 @@ class BrowserAccessibilityAuraLinuxTest : public ::testing::Test {
|
||||
ui::TestAXNodeIdDelegate node_id_delegate_;
|
||||
|
||||
private:
|
||||
ScopedAXModeSetter ax_mode_setter;
|
||||
void SetUp() override;
|
||||
|
||||
BrowserTaskEnvironment task_environment_;
|
||||
ScopedAccessibilityModeOverride ax_mode_override_;
|
||||
base::test::SingleThreadTaskEnvironment task_environment_;
|
||||
};
|
||||
|
||||
BrowserAccessibilityAuraLinuxTest::BrowserAccessibilityAuraLinuxTest()
|
||||
: ax_mode_override_(ui::kAXModeComplete) {}
|
||||
: ax_mode_setter(kAXModeComplete) {}
|
||||
|
||||
BrowserAccessibilityAuraLinuxTest::~BrowserAccessibilityAuraLinuxTest() =
|
||||
default;
|
||||
@ -896,4 +896,4 @@ TEST_F(BrowserAccessibilityAuraLinuxTest, TestAtkTextGetOffesetAtPoint) {
|
||||
manager.reset();
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
@ -2,27 +2,27 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COCOA_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COCOA_H_
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "base/component_export.h"
|
||||
#include "ui/accessibility/ax_node_position.h"
|
||||
#include "ui/accessibility/ax_range.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_cocoa.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_mac.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
// Used to store changes in edit fields, required by VoiceOver in order to
|
||||
// support character echo and other announcements during editing.
|
||||
struct CONTENT_EXPORT AXTextEdit {
|
||||
struct COMPONENT_EXPORT(AX_PLATFORM) AXTextEdit {
|
||||
AXTextEdit();
|
||||
AXTextEdit(std::u16string inserted_text,
|
||||
std::u16string deleted_text,
|
||||
@ -40,7 +40,7 @@ struct CONTENT_EXPORT AXTextEdit {
|
||||
// Returns true if the given object is an NSRange instance.
|
||||
bool IsNSRange(id value);
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
||||
|
||||
// BrowserAccessibilityCocoa is a cocoa wrapper around the BrowserAccessibility
|
||||
// object. The renderer converts webkit's accessibility tree into a
|
||||
@ -50,7 +50,7 @@ bool IsNSRange(id value);
|
||||
|
||||
// This creates a cocoa browser accessibility object around
|
||||
// the cross platform BrowserAccessibility object, which can't be nullptr.
|
||||
- (instancetype)initWithObject:(content::BrowserAccessibility*)accessibility
|
||||
- (instancetype)initWithObject:(ui::BrowserAccessibility*)accessibility
|
||||
withPlatformNode:(ui::AXPlatformNodeMac*)platform_node;
|
||||
|
||||
// Clear this object's pointer to the wrapped BrowserAccessibility object
|
||||
@ -62,10 +62,10 @@ bool IsNSRange(id value);
|
||||
- (void)childrenChanged;
|
||||
|
||||
// Get the BrowserAccessibility that this object wraps.
|
||||
- (content::BrowserAccessibility*)owner;
|
||||
- (ui::BrowserAccessibility*)owner;
|
||||
|
||||
// Computes the text that was added or deleted in a text field after an edit.
|
||||
- (content::AXTextEdit)computeTextEdit;
|
||||
- (ui::AXTextEdit)computeTextEdit;
|
||||
|
||||
// Convert from the view's local coordinate system (with the origin in the upper
|
||||
// left) to the primary NSScreen coordinate system (with the origin in the lower
|
||||
@ -87,7 +87,7 @@ bool IsNSRange(id value);
|
||||
|
||||
// Choose the appropriate accessibility object to receive an action depending
|
||||
// on the characteristics of this accessibility node.
|
||||
- (content::BrowserAccessibility*)actionTarget;
|
||||
- (ui::BrowserAccessibility*)actionTarget;
|
||||
|
||||
@property(nonatomic, readonly) NSArray* children;
|
||||
@property(nonatomic, readonly) NSArray* columns;
|
||||
@ -141,4 +141,4 @@ bool IsNSRange(id value);
|
||||
@property(nonatomic, readonly) id window;
|
||||
@end
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COCOA_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
|
||||
#include <execinfo.h>
|
||||
#include <stddef.h>
|
||||
@ -24,15 +24,15 @@
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
|
||||
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
#include "ui/accessibility/platform/one_shot_accessibility_tree_search.h"
|
||||
#include "third_party/skia/include/core/SkColor.h"
|
||||
#include "ui/accessibility/ax_common.h"
|
||||
#include "ui/accessibility/ax_enum_util.h"
|
||||
#include "ui/accessibility/ax_range.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
#include "ui/accessibility/ax_role_properties.h"
|
||||
#include "ui/accessibility/ax_selection.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
@ -45,11 +45,11 @@
|
||||
using AXPosition = ui::AXPlatformNodeDelegate::AXPosition;
|
||||
using AXRange = ui::AXPlatformNodeDelegate::AXRange;
|
||||
using StringAttribute = ax::mojom::StringAttribute;
|
||||
using content::AccessibilityMatchPredicate;
|
||||
using content::BrowserAccessibility;
|
||||
using content::BrowserAccessibilityManager;
|
||||
using content::BrowserAccessibilityManagerMac;
|
||||
using content::OneShotAccessibilityTreeSearch;
|
||||
using ui::AccessibilityMatchPredicate;
|
||||
using ui::BrowserAccessibility;
|
||||
using ui::BrowserAccessibilityManager;
|
||||
using ui::BrowserAccessibilityManagerMac;
|
||||
using ui::OneShotAccessibilityTreeSearch;
|
||||
using ui::AXActionHandlerRegistry;
|
||||
using ui::AXNodeData;
|
||||
using ui::AXPlatformTreeManagerDelegate;
|
||||
@ -276,17 +276,17 @@ AccessibilityMatchPredicate PredicateForSearchKey(NSString* searchKey) {
|
||||
};
|
||||
} else if ([searchKey isEqualToString:@"AXBlockquoteSameLevelSearchKey"]) {
|
||||
// TODO(dmazzoni): implement the "same level" part.
|
||||
return content::AccessibilityBlockquotePredicate;
|
||||
return ui::AccessibilityBlockquotePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXBlockquoteSearchKey"]) {
|
||||
return content::AccessibilityBlockquotePredicate;
|
||||
return ui::AccessibilityBlockquotePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXBoldFontSearchKey"]) {
|
||||
return content::AccessibilityTextStyleBoldPredicate;
|
||||
return ui::AccessibilityTextStyleBoldPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXButtonSearchKey"]) {
|
||||
return content::AccessibilityButtonPredicate;
|
||||
return ui::AccessibilityButtonPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXCheckBoxSearchKey"]) {
|
||||
return content::AccessibilityCheckboxPredicate;
|
||||
return ui::AccessibilityCheckboxPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXControlSearchKey"]) {
|
||||
return content::AccessibilityControlPredicate;
|
||||
return ui::AccessibilityControlPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXDifferentTypeSearchKey"]) {
|
||||
return [](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
return current->GetRole() != start->GetRole();
|
||||
@ -298,48 +298,48 @@ AccessibilityMatchPredicate PredicateForSearchKey(NSString* searchKey) {
|
||||
// TODO(dmazzoni): implement this.
|
||||
return nullptr;
|
||||
} else if ([searchKey isEqualToString:@"AXFrameSearchKey"]) {
|
||||
return content::AccessibilityFramePredicate;
|
||||
return ui::AccessibilityFramePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXGraphicSearchKey"]) {
|
||||
return content::AccessibilityGraphicPredicate;
|
||||
return ui::AccessibilityGraphicPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel1SearchKey"]) {
|
||||
return content::AccessibilityH1Predicate;
|
||||
return ui::AccessibilityH1Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel2SearchKey"]) {
|
||||
return content::AccessibilityH2Predicate;
|
||||
return ui::AccessibilityH2Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel3SearchKey"]) {
|
||||
return content::AccessibilityH3Predicate;
|
||||
return ui::AccessibilityH3Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel4SearchKey"]) {
|
||||
return content::AccessibilityH4Predicate;
|
||||
return ui::AccessibilityH4Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel5SearchKey"]) {
|
||||
return content::AccessibilityH5Predicate;
|
||||
return ui::AccessibilityH5Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingLevel6SearchKey"]) {
|
||||
return content::AccessibilityH6Predicate;
|
||||
return ui::AccessibilityH6Predicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingSameLevelSearchKey"]) {
|
||||
return content::AccessibilityHeadingSameLevelPredicate;
|
||||
return ui::AccessibilityHeadingSameLevelPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHeadingSearchKey"]) {
|
||||
return content::AccessibilityHeadingPredicate;
|
||||
return ui::AccessibilityHeadingPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXHighlightedSearchKey"]) {
|
||||
// TODO(dmazzoni): implement this.
|
||||
return nullptr;
|
||||
} else if ([searchKey isEqualToString:@"AXItalicFontSearchKey"]) {
|
||||
return content::AccessibilityTextStyleItalicPredicate;
|
||||
return ui::AccessibilityTextStyleItalicPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXLandmarkSearchKey"]) {
|
||||
return content::AccessibilityLandmarkPredicate;
|
||||
return ui::AccessibilityLandmarkPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXLinkSearchKey"]) {
|
||||
return content::AccessibilityLinkPredicate;
|
||||
return ui::AccessibilityLinkPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXListSearchKey"]) {
|
||||
return content::AccessibilityListPredicate;
|
||||
return ui::AccessibilityListPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXLiveRegionSearchKey"]) {
|
||||
return content::AccessibilityLiveRegionPredicate;
|
||||
return ui::AccessibilityLiveRegionPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXMisspelledWordSearchKey"]) {
|
||||
// TODO(dmazzoni): implement this.
|
||||
return nullptr;
|
||||
} else if ([searchKey isEqualToString:@"AXOutlineSearchKey"]) {
|
||||
return content::AccessibilityTreePredicate;
|
||||
return ui::AccessibilityTreePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXPlainTextSearchKey"]) {
|
||||
// TODO(dmazzoni): implement this.
|
||||
return nullptr;
|
||||
} else if ([searchKey isEqualToString:@"AXRadioGroupSearchKey"]) {
|
||||
return content::AccessibilityRadioGroupPredicate;
|
||||
return ui::AccessibilityRadioGroupPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXSameTypeSearchKey"]) {
|
||||
return [](BrowserAccessibility* start, BrowserAccessibility* current) {
|
||||
return current->GetRole() == start->GetRole();
|
||||
@ -353,17 +353,17 @@ AccessibilityMatchPredicate PredicateForSearchKey(NSString* searchKey) {
|
||||
return nullptr;
|
||||
} else if ([searchKey isEqualToString:@"AXTableSameLevelSearchKey"]) {
|
||||
// TODO(dmazzoni): implement the "same level" part.
|
||||
return content::AccessibilityTablePredicate;
|
||||
return ui::AccessibilityTablePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXTableSearchKey"]) {
|
||||
return content::AccessibilityTablePredicate;
|
||||
return ui::AccessibilityTablePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXTextFieldSearchKey"]) {
|
||||
return content::AccessibilityTextfieldPredicate;
|
||||
return ui::AccessibilityTextfieldPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXUnderlineSearchKey"]) {
|
||||
return content::AccessibilityTextStyleUnderlinePredicate;
|
||||
return ui::AccessibilityTextStyleUnderlinePredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXUnvisitedLinkSearchKey"]) {
|
||||
return content::AccessibilityUnvisitedLinkPredicate;
|
||||
return ui::AccessibilityUnvisitedLinkPredicate;
|
||||
} else if ([searchKey isEqualToString:@"AXVisitedLinkSearchKey"]) {
|
||||
return content::AccessibilityVisitedLinkPredicate;
|
||||
return ui::AccessibilityVisitedLinkPredicate;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -397,14 +397,14 @@ bool InitializeAccessibilityTreeSearch(OneShotAccessibilityTreeSearch* search,
|
||||
if ([onscreenOnlyParameter isKindOfClass:[NSNumber class]])
|
||||
onscreenOnly = [onscreenOnlyParameter boolValue];
|
||||
|
||||
content::OneShotAccessibilityTreeSearch::Direction direction =
|
||||
content::OneShotAccessibilityTreeSearch::FORWARDS;
|
||||
ui::OneShotAccessibilityTreeSearch::Direction direction =
|
||||
ui::OneShotAccessibilityTreeSearch::FORWARDS;
|
||||
NSString* directionParameter = [dictionary objectForKey:@"AXDirection"];
|
||||
if ([directionParameter isKindOfClass:[NSString class]]) {
|
||||
if ([directionParameter isEqualToString:@"AXDirectionNext"])
|
||||
direction = content::OneShotAccessibilityTreeSearch::FORWARDS;
|
||||
direction = ui::OneShotAccessibilityTreeSearch::FORWARDS;
|
||||
else if ([directionParameter isEqualToString:@"AXDirectionPrevious"])
|
||||
direction = content::OneShotAccessibilityTreeSearch::BACKWARDS;
|
||||
direction = ui::OneShotAccessibilityTreeSearch::BACKWARDS;
|
||||
}
|
||||
|
||||
int resultsLimit = kAXResultsLimitNoLimit;
|
||||
@ -477,7 +477,7 @@ bool IsSelectedStateRelevant(BrowserAccessibility* item) {
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
AXTextEdit::AXTextEdit() = default;
|
||||
AXTextEdit::AXTextEdit(std::u16string inserted_text,
|
||||
@ -489,21 +489,21 @@ AXTextEdit::AXTextEdit(std::u16string inserted_text,
|
||||
AXTextEdit::AXTextEdit(const AXTextEdit& other) = default;
|
||||
AXTextEdit::~AXTextEdit() = default;
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
||||
|
||||
// Not defined in current versions of library, but may be in the future:
|
||||
#ifndef NSAccessibilityLanguageAttribute
|
||||
#define NSAccessibilityLanguageAttribute @"AXLanguage"
|
||||
#endif
|
||||
|
||||
bool content::IsNSRange(id value) {
|
||||
bool ui::IsNSRange(id value) {
|
||||
return [value isKindOfClass:[NSValue class]] &&
|
||||
0 == strcmp([value objCType], @encode(NSRange));
|
||||
}
|
||||
|
||||
@implementation BrowserAccessibilityCocoa {
|
||||
// Dangling pointer https://crbug.com/1475830.
|
||||
raw_ptr<content::BrowserAccessibility, DanglingUntriaged> _owner;
|
||||
raw_ptr<ui::BrowserAccessibility, DanglingUntriaged> _owner;
|
||||
// An array of children of this object. Cached to avoid re-computing.
|
||||
NSMutableArray* __strong _children;
|
||||
// Whether the children have changed and need to be updated.
|
||||
@ -1027,16 +1027,16 @@ bool content::IsNSRange(id value) {
|
||||
return [NSValue valueWithPoint:pointInScreen];
|
||||
}
|
||||
|
||||
- (content::BrowserAccessibility*)owner {
|
||||
- (ui::BrowserAccessibility*)owner {
|
||||
return _owner;
|
||||
}
|
||||
|
||||
// Assumes that there is at most one insertion, deletion or replacement at once.
|
||||
// TODO(nektar): Merge this method with
|
||||
// |BrowserAccessibilityAndroid::CommonEndLengths|.
|
||||
- (content::AXTextEdit)computeTextEdit {
|
||||
- (ui::AXTextEdit)computeTextEdit {
|
||||
if (!_owner->IsTextField())
|
||||
return content::AXTextEdit();
|
||||
return ui::AXTextEdit();
|
||||
|
||||
// Starting from macOS 10.11, if the user has edited some text we need to
|
||||
// dispatch the actual text that changed on the value changed notification.
|
||||
@ -1046,7 +1046,7 @@ bool content::IsNSRange(id value) {
|
||||
ui::AXEmbeddedObjectBehavior::kSuppressCharacter);
|
||||
_oldValue = newValue;
|
||||
if (oldValue.empty() && newValue.empty())
|
||||
return content::AXTextEdit();
|
||||
return ui::AXTextEdit();
|
||||
|
||||
size_t i;
|
||||
size_t j;
|
||||
@ -1085,10 +1085,10 @@ bool content::IsNSRange(id value) {
|
||||
if (static_cast<size_t>(sel_start) == newValue.length() &&
|
||||
static_cast<size_t>(sel_end) == newValue.length()) {
|
||||
// Don't include oldValue as it would be announced -- very confusing.
|
||||
return content::AXTextEdit(newValue, std::u16string(), nil);
|
||||
return ui::AXTextEdit(newValue, std::u16string(), nil);
|
||||
}
|
||||
}
|
||||
return content::AXTextEdit(
|
||||
return ui::AXTextEdit(
|
||||
insertedText, deletedText,
|
||||
AXPositionToAXTextMarker(_owner->CreateTextPositionAt(i)));
|
||||
}
|
||||
@ -2696,7 +2696,7 @@ bool content::IsNSRange(id value) {
|
||||
manager->SetFocus(*_owner);
|
||||
}
|
||||
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) {
|
||||
if (content::IsNSRange(value)) {
|
||||
if (ui::IsNSRange(value)) {
|
||||
[self setAccessibilitySelectedTextRange:[(NSValue*)value rangeValue]];
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
#pragma allow_unsafe_buffers
|
||||
#endif
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_com_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_com_win.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
@ -26,8 +26,8 @@
|
||||
#include "base/win/enum_variant.h"
|
||||
#include "base/win/win_util.h"
|
||||
#include "base/win/windows_version.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_win.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_win.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#include "ui/accessibility/ax_common.h"
|
||||
#include "ui/accessibility/ax_enum_localization_util.h"
|
||||
#include "ui/accessibility/ax_enum_util.h"
|
||||
@ -43,7 +43,7 @@ const uint32_t kScreenReaderAccessibilityMode = ui::AXMode::kNativeAPIs |
|
||||
ui::AXMode::kWebContents |
|
||||
ui::AXMode::kScreenReader;
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
void AddAccessibilityModeFlags(ui::AXMode mode_flags) {
|
||||
ui::AXPlatform::GetInstance().NotifyAccessibilityApiUsage();
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
||||
|
||||
#include <oleacc.h>
|
||||
#include <stddef.h>
|
||||
@ -15,9 +15,9 @@
|
||||
#include <vector>
|
||||
|
||||
#include "base/win/atl.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_win.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_win.h"
|
||||
#include "base/component_export.h"
|
||||
#include "third_party/iaccessible2/ia2_api_all.h"
|
||||
#include "third_party/isimpledom/ISimpleDOMDocument.h"
|
||||
#include "third_party/isimpledom/ISimpleDOMNode.h"
|
||||
@ -33,7 +33,7 @@ const GUID GUID_ISimpleDOM = {0x0c539790,
|
||||
0x11cf,
|
||||
{0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8}};
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
class BrowserAccessibilityWin;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@ -73,63 +73,63 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
static std::map<int32_t, std::u16string> role_string_map;
|
||||
static std::map<int32_t, std::u16string> state_string_map;
|
||||
|
||||
CONTENT_EXPORT BrowserAccessibilityComWin();
|
||||
COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibilityComWin();
|
||||
|
||||
BrowserAccessibilityComWin(const BrowserAccessibilityComWin&) = delete;
|
||||
BrowserAccessibilityComWin& operator=(const BrowserAccessibilityComWin&) =
|
||||
delete;
|
||||
|
||||
CONTENT_EXPORT ~BrowserAccessibilityComWin() override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) ~BrowserAccessibilityComWin() override;
|
||||
|
||||
// AXPlatformNodeWin methods.
|
||||
CONTENT_EXPORT void OnReferenced() override;
|
||||
CONTENT_EXPORT void OnDereferenced() override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void OnReferenced() override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void OnDereferenced() override;
|
||||
|
||||
// Called after an atomic tree update completes. See
|
||||
// BrowserAccessibilityManagerWin::OnAtomicUpdateFinished for more
|
||||
// details on what these do.
|
||||
CONTENT_EXPORT void UpdateStep1ComputeWinAttributes();
|
||||
CONTENT_EXPORT void UpdateStep2ComputeHypertext();
|
||||
CONTENT_EXPORT void UpdateStep3FireEvents();
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void UpdateStep1ComputeWinAttributes();
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void UpdateStep2ComputeHypertext();
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void UpdateStep3FireEvents();
|
||||
|
||||
//
|
||||
// IAccessible2 methods.
|
||||
//
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_attributes(BSTR* attributes) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_attributes(BSTR* attributes) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
scrollTo(enum IA2ScrollType scroll_type) override;
|
||||
|
||||
//
|
||||
// IAccessibleApplication methods.
|
||||
//
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_appName(BSTR* app_name) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_appName(BSTR* app_name) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_appVersion(BSTR* app_version) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_appVersion(BSTR* app_version) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_toolkitName(BSTR* toolkit_name) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_toolkitName(BSTR* toolkit_name) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_toolkitVersion(BSTR* toolkit_version) override;
|
||||
|
||||
//
|
||||
// IAccessibleImage methods.
|
||||
//
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_description(BSTR* description) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_description(BSTR* description) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_imagePosition(enum IA2CoordinateType coordinate_type,
|
||||
LONG* x,
|
||||
LONG* y) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_imageSize(LONG* height,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_imageSize(LONG* height,
|
||||
LONG* width) override;
|
||||
|
||||
//
|
||||
// IAccessibleText methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_characterExtents(LONG offset,
|
||||
enum IA2CoordinateType coord_type,
|
||||
LONG* out_x,
|
||||
@ -137,40 +137,40 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
LONG* out_width,
|
||||
LONG* out_height) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_nSelections(LONG* n_selections) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_nSelections(LONG* n_selections) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_selection(LONG selection_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_selection(LONG selection_index,
|
||||
LONG* start_offset,
|
||||
LONG* end_offset) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_text(LONG start_offset,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_text(LONG start_offset,
|
||||
LONG end_offset,
|
||||
BSTR* text) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_newText(IA2TextSegment* new_text) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_newText(IA2TextSegment* new_text) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_oldText(IA2TextSegment* old_text) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_oldText(IA2TextSegment* old_text) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
scrollSubstringTo(LONG start_index,
|
||||
LONG end_index,
|
||||
enum IA2ScrollType scroll_type) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
scrollSubstringToPoint(LONG start_index,
|
||||
LONG end_index,
|
||||
enum IA2CoordinateType coordinate_type,
|
||||
LONG x,
|
||||
LONG y) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP setCaretOffset(LONG offset) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP setCaretOffset(LONG offset) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP setSelection(LONG selection_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP setSelection(LONG selection_index,
|
||||
LONG start_offset,
|
||||
LONG end_offset) override;
|
||||
|
||||
// IAccessibleText methods not implemented.
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_attributes(LONG offset,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_attributes(LONG offset,
|
||||
LONG* start_offset,
|
||||
LONG* end_offset,
|
||||
BSTR* text_attributes) override;
|
||||
@ -179,122 +179,122 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
// IAccessibleHypertext methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_nHyperlinks(LONG* hyperlink_count) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_nHyperlinks(LONG* hyperlink_count) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
// A hyperlink represents an embedded object character (leading to a subtree).
|
||||
get_hyperlink(LONG index, IAccessibleHyperlink** hyperlink) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_hyperlinkIndex(LONG char_index, LONG* hyperlink_index) override;
|
||||
|
||||
// IAccessibleHyperlink methods.
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_anchor(LONG index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_anchor(LONG index,
|
||||
VARIANT* anchor) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_anchorTarget(LONG index, VARIANT* anchor_target) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_startIndex(LONG* index) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_endIndex(LONG* index) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_startIndex(LONG* index) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_endIndex(LONG* index) override;
|
||||
// This method is deprecated in the IA2 Spec and so we don't implement it.
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_valid(boolean* valid) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_valid(boolean* valid) override;
|
||||
|
||||
// IAccessibleAction mostly not implemented.
|
||||
CONTENT_EXPORT IFACEMETHODIMP nActions(LONG* n_actions) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP doAction(LONG action_index) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_description(LONG action_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP nActions(LONG* n_actions) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP doAction(LONG action_index) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_description(LONG action_index,
|
||||
BSTR* description) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_keyBinding(LONG action_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_keyBinding(LONG action_index,
|
||||
LONG n_max_bindings,
|
||||
BSTR** key_bindings,
|
||||
LONG* n_bindings) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_name(LONG action_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_name(LONG action_index,
|
||||
BSTR* name) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_localizedName(LONG action_index, BSTR* localized_name) override;
|
||||
|
||||
//
|
||||
// ISimpleDOMDocument methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_URL(BSTR* url) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_URL(BSTR* url) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_title(BSTR* title) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_title(BSTR* title) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_mimeType(BSTR* mime_type) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_mimeType(BSTR* mime_type) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_docType(BSTR* doc_type) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_docType(BSTR* doc_type) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_nameSpaceURIForID(SHORT name_space_id, BSTR* name_space_uri) override;
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
put_alternateViewMediaTypes(BSTR* comma_separated_media_types) override;
|
||||
|
||||
//
|
||||
// ISimpleDOMNode methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_nodeInfo(BSTR* node_name,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_nodeInfo(BSTR* node_name,
|
||||
SHORT* name_space_id,
|
||||
BSTR* node_value,
|
||||
unsigned int* num_children,
|
||||
unsigned int* unique_id,
|
||||
USHORT* node_type) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_attributes(USHORT max_attribs,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_attributes(USHORT max_attribs,
|
||||
BSTR* attrib_names,
|
||||
SHORT* name_space_id,
|
||||
BSTR* attrib_values,
|
||||
USHORT* num_attribs) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_attributesForNames(USHORT num_attribs,
|
||||
BSTR* attrib_names,
|
||||
SHORT* name_space_id,
|
||||
BSTR* attrib_values) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_computedStyle(USHORT max_style_properties,
|
||||
boolean use_alternate_view,
|
||||
BSTR* style_properties,
|
||||
BSTR* style_values,
|
||||
USHORT* num_style_properties) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_computedStyleForProperties(USHORT num_style_properties,
|
||||
boolean use_alternate_view,
|
||||
BSTR* style_properties,
|
||||
BSTR* style_values) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP scrollTo(boolean placeTopLeft) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP scrollTo(boolean placeTopLeft) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_parentNode(ISimpleDOMNode** node) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_parentNode(ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_firstChild(ISimpleDOMNode** node) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_firstChild(ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_lastChild(ISimpleDOMNode** node) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_lastChild(ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_previousSibling(ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_nextSibling(ISimpleDOMNode** node) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_nextSibling(ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_childAt(unsigned int child_index,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_childAt(unsigned int child_index,
|
||||
ISimpleDOMNode** node) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_innerHTML(BSTR* innerHTML) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_innerHTML(BSTR* innerHTML) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_localInterface(void** local_interface) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_language(BSTR* language) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_language(BSTR* language) override;
|
||||
|
||||
//
|
||||
// ISimpleDOMText methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_domText(BSTR* dom_text) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_domText(BSTR* dom_text) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_clippedSubstringBounds(unsigned int start_index,
|
||||
unsigned int end_index,
|
||||
int* out_x,
|
||||
@ -302,7 +302,7 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
int* out_width,
|
||||
int* out_height) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
get_unclippedSubstringBounds(unsigned int start_index,
|
||||
unsigned int end_index,
|
||||
int* out_x,
|
||||
@ -310,16 +310,16 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
int* out_width,
|
||||
int* out_height) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP
|
||||
scrollToSubstring(unsigned int start_index, unsigned int end_index) override;
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP get_fontFamily(BSTR* font_family) override;
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP get_fontFamily(BSTR* font_family) override;
|
||||
|
||||
//
|
||||
// IServiceProvider methods.
|
||||
//
|
||||
|
||||
CONTENT_EXPORT IFACEMETHODIMP QueryService(REFGUID guidService,
|
||||
COMPONENT_EXPORT(AX_PLATFORM) IFACEMETHODIMP QueryService(REFGUID guidService,
|
||||
REFIID riid,
|
||||
void** object) override;
|
||||
|
||||
@ -328,7 +328,7 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
//
|
||||
|
||||
// Called by BEGIN_COM_MAP() / END_COM_MAP().
|
||||
static CONTENT_EXPORT STDMETHODIMP
|
||||
static COMPONENT_EXPORT(AX_PLATFORM) STDMETHODIMP
|
||||
InternalQueryInterface(void* this_ptr,
|
||||
const _ATL_INTMAP_ENTRY* entries,
|
||||
REFIID iid,
|
||||
@ -336,7 +336,7 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
|
||||
// Computes and caches the IA2 text style attributes for the text and other
|
||||
// embedded child objects.
|
||||
CONTENT_EXPORT void ComputeStylesIfNeeded();
|
||||
COMPONENT_EXPORT(AX_PLATFORM) void ComputeStylesIfNeeded();
|
||||
|
||||
// Public accessors (these do not have COM accessible accessors)
|
||||
const ui::TextAttributeMap& offset_to_text_attributes() const {
|
||||
@ -449,9 +449,9 @@ class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79"))
|
||||
friend class BrowserAccessibilityWin;
|
||||
};
|
||||
|
||||
CONTENT_EXPORT BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
|
||||
COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
|
||||
BrowserAccessibility* obj);
|
||||
|
||||
} // namespace content
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_COM_WIN_H_
|
@ -2,15 +2,15 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_IOS_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_IOS_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_IOS_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_IOS_H_
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_ios.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
class BrowserAccessibilityIOS : public BrowserAccessibility,
|
||||
public ui::AXPlatformNodeIOSDelegate {
|
||||
@ -48,6 +48,6 @@ class BrowserAccessibilityIOS : public BrowserAccessibility,
|
||||
raw_ptr<ui::AXPlatformNodeIOS> platform_node_;
|
||||
};
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_IOS_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_IOS_H_
|
@ -2,15 +2,15 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import "content/browser/accessibility/browser_accessibility_ios.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_ios.h"
|
||||
|
||||
#import "base/apple/foundation_util.h"
|
||||
#import "base/memory/ptr_util.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_manager_ios.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_manager_ios.h"
|
||||
#import "ui/accessibility/platform/ax_platform_node_ios.h"
|
||||
#import "ui/accessibility/platform/ax_platform_node_ui_kit_element.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
// static
|
||||
std::unique_ptr<BrowserAccessibility> BrowserAccessibility::Create(
|
||||
@ -152,4 +152,4 @@ void BrowserAccessibilityIOS::CreatePlatformNode() {
|
||||
platform_node_->SetIOSDelegate(this);
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
} // namespace ui
|
@ -2,13 +2,13 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MAC_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MAC_H_
|
||||
|
||||
#include "base/component_export.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
|
||||
@class BrowserAccessibilityCocoa;
|
||||
|
||||
@ -18,7 +18,7 @@ class AXPlatformNodeMac;
|
||||
|
||||
} // namespace ui
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
class BrowserAccessibilityMac : public BrowserAccessibility {
|
||||
public:
|
||||
@ -65,4 +65,4 @@ class BrowserAccessibilityMac : public BrowserAccessibility {
|
||||
|
||||
} // namespace content
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MAC_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MAC_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
#import "base/task/single_thread_task_runner.h"
|
||||
#include "base/task/single_thread_task_runner.h"
|
||||
#include "base/time/time.h"
|
||||
#import "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#import "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
// static
|
||||
std::unique_ptr<BrowserAccessibility> BrowserAccessibility::Create(
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_mac.h"
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@ -12,18 +12,18 @@
|
||||
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_cocoa.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_mac.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "base/test/task_environment.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#import "testing/gtest_mac.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_cocoa.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_mac.h"
|
||||
#include "ui/accessibility/ax_tree_update.h"
|
||||
#include "ui/accessibility/ax_updates_and_events.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#import "ui/base/test/cocoa_helper.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
namespace {
|
||||
|
||||
@ -179,7 +179,7 @@ class BrowserAccessibilityMacTest : public ui::CocoaTest {
|
||||
ui::TestAXNodeIdDelegate node_id_delegate_;
|
||||
std::unique_ptr<BrowserAccessibilityManager> manager_;
|
||||
|
||||
const content::BrowserTaskEnvironment task_environment_;
|
||||
const base::test::SingleThreadTaskEnvironment task_environment_;
|
||||
};
|
||||
|
||||
// Standard hit test.
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
@ -19,19 +19,18 @@
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "build/build_config.h"
|
||||
#include "content/browser/renderer_host/render_frame_host_impl.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "ui/accessibility/ax_common.h"
|
||||
#include "ui/accessibility/ax_language_detection.h"
|
||||
#include "ui/accessibility/ax_tree_data.h"
|
||||
#include "ui/accessibility/ax_tree_id.h"
|
||||
#include "ui/accessibility/ax_tree_serializer.h"
|
||||
#include "ui/accessibility/ax_tree_update_util.h"
|
||||
#include "ui/accessibility/platform/ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
#include "ui/base/buildflags.h"
|
||||
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
ui::AXTreeUpdate MakeAXTreeUpdateForTesting(
|
||||
const ui::AXNodeData& node1,
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
@ -13,15 +13,13 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "base/component_export.h"
|
||||
#include "base/functional/callback_forward.h"
|
||||
#include "base/gtest_prod_util.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/raw_ref.h"
|
||||
#include "build/build_config.h"
|
||||
#include "cc/base/rtree.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "third_party/blink/public/web/web_ax_enums.h"
|
||||
#include "ui/accessibility/ax_action_data.h"
|
||||
#include "ui/accessibility/ax_action_handler_registry.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
@ -38,6 +36,7 @@
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/base/buildflags.h"
|
||||
#include "ui/gfx/native_widget_types.h"
|
||||
|
||||
@ -46,6 +45,14 @@ class AXNodeIdDelegate;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
FORWARD_DECLARE_TEST(BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForNode);
|
||||
FORWARD_DECLARE_TEST(BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForAlertEventWithEmptyName);
|
||||
FORWARD_DECLARE_TEST(BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForAlertEventWithNonEmptyName);
|
||||
}
|
||||
namespace ui {
|
||||
|
||||
// Required by the several platform specific
|
||||
// `BrowserAccessibilityManager::ToBrowserAccessibilityManager...()` methods
|
||||
@ -68,7 +75,7 @@ using GeneratedEventCallbackForTesting =
|
||||
ui::AXEventGenerator::Event,
|
||||
ui::AXNodeID)>;
|
||||
|
||||
CONTENT_EXPORT ui::AXTreeUpdate MakeAXTreeUpdateForTesting(
|
||||
COMPONENT_EXPORT(AX_PLATFORM) ui::AXTreeUpdate MakeAXTreeUpdateForTesting(
|
||||
const ui::AXNodeData& node,
|
||||
const ui::AXNodeData& node2 = ui::AXNodeData(),
|
||||
const ui::AXNodeData& node3 = ui::AXNodeData(),
|
||||
@ -105,7 +112,7 @@ struct BrowserAccessibilityFindInPageInfo {
|
||||
};
|
||||
|
||||
// Manages a tree of BrowserAccessibility objects.
|
||||
class CONTENT_EXPORT BrowserAccessibilityManager
|
||||
class COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibilityManager
|
||||
: public ui::AXPlatformTreeManager {
|
||||
public:
|
||||
// Creates the platform-specific BrowserAccessibilityManager.
|
||||
@ -494,11 +501,11 @@ class CONTENT_EXPORT BrowserAccessibilityManager
|
||||
ui::AXPlatformNodeId GetNodeUniqueId(const BrowserAccessibility* node);
|
||||
|
||||
protected:
|
||||
FRIEND_TEST_ALL_PREFIXES(BrowserAccessibilityManagerTest,
|
||||
FRIEND_TEST_ALL_PREFIXES(content::BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForNode);
|
||||
FRIEND_TEST_ALL_PREFIXES(BrowserAccessibilityManagerTest,
|
||||
FRIEND_TEST_ALL_PREFIXES(content::BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForAlertEventWithEmptyName);
|
||||
FRIEND_TEST_ALL_PREFIXES(BrowserAccessibilityManagerTest,
|
||||
FRIEND_TEST_ALL_PREFIXES(content::BrowserAccessibilityManagerTest,
|
||||
TestShouldFireEventForAlertEventWithNonEmptyName);
|
||||
|
||||
explicit BrowserAccessibilityManager(
|
||||
@ -623,4 +630,4 @@ class CONTENT_EXPORT BrowserAccessibilityManager
|
||||
|
||||
} // namespace content
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_H_
|
@ -2,19 +2,19 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_auralinux.h"
|
||||
|
||||
#include <atk/atk.h>
|
||||
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
|
||||
#include "ui/accessibility/ax_selection.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
|
||||
#include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_auralinux.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
// static
|
||||
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
|
@ -2,26 +2,26 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
||||
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
||||
#ifndef UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
||||
#define UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "base/component_export.h"
|
||||
#include "base/gtest_prod_util.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "ui/accessibility/ax_node_id_forward.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
|
||||
namespace ui {
|
||||
class AXPlatformTreeManagerDelegate;
|
||||
}
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
class BrowserAccessibilityAuraLinux;
|
||||
|
||||
// Manages a tree of BrowserAccessibilityAuraLinux objects.
|
||||
class CONTENT_EXPORT BrowserAccessibilityManagerAuraLinux
|
||||
class COMPONENT_EXPORT(AX_PLATFORM) BrowserAccessibilityManagerAuraLinux
|
||||
: public BrowserAccessibilityManager {
|
||||
public:
|
||||
BrowserAccessibilityManagerAuraLinux(
|
||||
@ -102,4 +102,4 @@ class CONTENT_EXPORT BrowserAccessibilityManagerAuraLinux
|
||||
|
||||
} // namespace content
|
||||
|
||||
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_BROWSER_ACCESSIBILITY_MANAGER_AURALINUX_H_
|
@ -2,28 +2,28 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "content/browser/accessibility/browser_accessibility_manager_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager_auralinux.h"
|
||||
|
||||
#include <atk/atk.h>
|
||||
|
||||
#include "base/test/task_environment.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "content/browser/accessibility/browser_accessibility.h"
|
||||
#include "content/browser/accessibility/browser_accessibility_manager.h"
|
||||
#include "content/public/test/browser_task_environment.h"
|
||||
#include "content/public/test/scoped_accessibility_mode_override.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/accessibility/ax_enums.mojom.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
#include "ui/accessibility/platform/ax_platform_for_test.h"
|
||||
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility.h"
|
||||
#include "ui/accessibility/platform/browser_accessibility_manager.h"
|
||||
#include "ui/accessibility/platform/test_ax_node_id_delegate.h"
|
||||
#include "ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h"
|
||||
#include "ui/base/glib/scoped_gsignal.h"
|
||||
|
||||
namespace content {
|
||||
namespace ui {
|
||||
|
||||
class BrowserAccessibilityManagerAuraLinuxTest : public ::testing::Test {
|
||||
public:
|
||||
BrowserAccessibilityManagerAuraLinuxTest() = default;
|
||||
BrowserAccessibilityManagerAuraLinuxTest();
|
||||
|
||||
BrowserAccessibilityManagerAuraLinuxTest(
|
||||
const BrowserAccessibilityManagerAuraLinuxTest&) = delete;
|
||||
@ -38,18 +38,19 @@ class BrowserAccessibilityManagerAuraLinuxTest : public ::testing::Test {
|
||||
ui::TestAXNodeIdDelegate node_id_delegate_;
|
||||
|
||||
private:
|
||||
ScopedAXModeSetter ax_mode_setter;
|
||||
void SetUp() override;
|
||||
std::unique_ptr<ScopedAccessibilityModeOverride> ax_mode_override_;
|
||||
|
||||
// See crbug.com/1349124
|
||||
BrowserTaskEnvironment task_environment_;
|
||||
base::test::SingleThreadTaskEnvironment task_environment_;
|
||||
};
|
||||
|
||||
BrowserAccessibilityManagerAuraLinuxTest::BrowserAccessibilityManagerAuraLinuxTest()
|
||||
: ax_mode_setter(kAXModeComplete) {}
|
||||
|
||||
void BrowserAccessibilityManagerAuraLinuxTest::SetUp() {
|
||||
test_browser_accessibility_delegate_ =
|
||||
std::make_unique<ui::TestAXPlatformTreeManagerDelegate>();
|
||||
ax_mode_override_ =
|
||||
std::make_unique<ScopedAccessibilityModeOverride>(ui::kAXModeComplete);
|
||||
}
|
||||
|
||||
TEST_F(BrowserAccessibilityManagerAuraLinuxTest, TestEmitChildrenChanged) {
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user