Skip to content

Commit

Permalink
[accessibility] Move ScopedContentAXModeSetter out of product code
Browse files Browse the repository at this point in the history
This class is a helper for tests, so move it into content/public/test
and //content/test:test_support. In the process, rename it to
`ScopedAccessibilityModeOverride` since having "Content" in its name is
redundant (it's in the `content` namespace) and abbreviations are
discouraged by the style guide.

Bug: none
Change-Id: Ia0f0aedcec08b4012dfd16983892225188d6fa2a
AX-Relnotes: n/a.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4767962
Commit-Queue: Avi Drissman <[email protected]>
Reviewed-by: Jacques Newman <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Reviewed-by: Collin Baker <[email protected]>
Reviewed-by: Fabio Tirelo <[email protected]>
Auto-Submit: Greg Thompson <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1185871}
  • Loading branch information
GregTho authored and Chromium LUCI CQ committed Aug 21, 2023
1 parent f848cbc commit 708c581
Show file tree
Hide file tree
Showing 18 changed files with 86 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/accessibility/accessibility_manager.h"
#else
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)

namespace {
Expand Down Expand Up @@ -91,7 +91,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityLabelsMenuObserverTest,
ash::AccessibilityManager::Get()->EnableSpokenFeedback(true);
#else
// Spoof a screen reader.
content::testing::ScopedContentAXModeSetter scoped_accessibility_mode(
content::ScopedAccessibilityModeOverride scoped_accessibility_mode(
ui::AXMode::kScreenReader);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
menu()->GetPrefs()->SetBoolean(prefs::kAccessibilityImageLabelsEnabled,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/accessibility/accessibility_manager.h"
#else
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)

namespace {
Expand Down Expand Up @@ -93,7 +93,7 @@ IN_PROC_BROWSER_TEST_F(PdfOcrMenuObserverTest,
ash::AccessibilityManager::Get()->EnableSpokenFeedback(true);
#else
// Spoof a screen reader.
content::testing::ScopedContentAXModeSetter scoped_accessibility_mode(
content::ScopedAccessibilityModeOverride scoped_accessibility_mode(
ui::AXMode::kScreenReader);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
menu()->GetPrefs()->SetBoolean(prefs::kAccessibilityPdfOcrAlwaysActive,
Expand Down Expand Up @@ -141,7 +141,7 @@ IN_PROC_BROWSER_TEST_F(PdfOcrMenuObserverTest,
ash::AccessibilityManager::Get()->EnableSpokenFeedback(true);
#else
// Spoof a screen reader.
content::testing::ScopedContentAXModeSetter scoped_accessibility_mode(
content::ScopedAccessibilityModeOverride scoped_accessibility_mode(
ui::AXMode::kScreenReader);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)

Expand Down Expand Up @@ -173,7 +173,7 @@ IN_PROC_BROWSER_TEST_F(PdfOcrMenuObserverTest,
ash::AccessibilityManager::Get()->EnableSpokenFeedback(true);
#else
// Spoof a screen reader.
content::testing::ScopedContentAXModeSetter scoped_accessibility_mode(
content::ScopedAccessibilityModeOverride scoped_accessibility_mode(
ui::AXMode::kScreenReader);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)

Expand Down Expand Up @@ -204,7 +204,7 @@ IN_PROC_BROWSER_TEST_F(PdfOcrMenuObserverTest,
ash::AccessibilityManager::Get()->EnableSpokenFeedback(true);
#else
// Spoof a screen reader.
content::testing::ScopedContentAXModeSetter scoped_accessibility_mode(
content::ScopedAccessibilityModeOverride scoped_accessibility_mode(
ui::AXMode::kScreenReader);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
#include "ui/gfx/text_utils.h"

#if !BUILDFLAG(IS_CHROMEOS_ASH)
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#endif

#if BUILDFLAG(IS_ANDROID)
Expand Down Expand Up @@ -795,7 +795,7 @@ class AutofillPopupControllerAccessibilityUnitTest
static constexpr int kAxUniqueId = 123;

AutofillPopupControllerAccessibilityUnitTest()
: accessibility_mode_setter_(ui::AXMode::kScreenReader) {}
: accessibility_mode_override_(ui::AXMode::kScreenReader) {}
AutofillPopupControllerAccessibilityUnitTest(
AutofillPopupControllerAccessibilityUnitTest&) = delete;
AutofillPopupControllerAccessibilityUnitTest& operator=(
Expand All @@ -821,12 +821,12 @@ class AutofillPopupControllerAccessibilityUnitTest
// This needs to bo reset explicit because having the mode set to
// `kScreenReader` causes mocked functions to get called with
// `mock_ax_platform_node_delegate` after it has been destroyed.
accessibility_mode_setter_.ResetMode();
accessibility_mode_override_.ResetMode();
AutofillPopupControllerUnitTest::TearDown();
}

protected:
content::testing::ScopedContentAXModeSetter accessibility_mode_setter_;
content::ScopedAccessibilityModeOverride accessibility_mode_override_;
MockAxPlatformNodeDelegate mock_ax_platform_node_delegate_;
MockAxPlatformNode mock_ax_platform_node_;
ui::AXTreeID test_tree_id_ = ui::AXTreeID::CreateNewAXTreeID();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
#include "chrome/browser/ui/tab_modal_confirm_dialog.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#include "ui/accessibility/platform/ax_platform_node_base.h"
#include "ui/views/accessibility/view_accessibility.h"

Expand All @@ -24,21 +24,21 @@ class AuraLinuxAccessibilityInProcessBrowserTest : public InProcessBrowserTest {
AuraLinuxAccessibilityInProcessBrowserTest() = default;

void PreRunTestOnMainThread() override {
ax_mode_setter_ =
std::make_unique<content::testing::ScopedContentAXModeSetter>(
ax_mode_override_ =
std::make_unique<content::ScopedAccessibilityModeOverride>(
ui::kAXModeComplete);
InProcessBrowserTest::PreRunTestOnMainThread();
}

AuraLinuxAccessibilityInProcessBrowserTest(
const AuraLinuxAccessibilityInProcessBrowserTest&) = delete;
AuraLinuxAccessibilityInProcessBrowserTest& operator=(
const AuraLinuxAccessibilityInProcessBrowserTest&) = delete;
void PostRunTestOnMainThread() override {
InProcessBrowserTest::PostRunTestOnMainThread();
ax_mode_override_.reset();
}

void VerifyEmbedRelationships();

private:
std::unique_ptr<content::testing::ScopedContentAXModeSetter> ax_mode_setter_;
std::unique_ptr<content::ScopedAccessibilityModeOverride> ax_mode_override_;
};

IN_PROC_BROWSER_TEST_F(AuraLinuxAccessibilityInProcessBrowserTest,
Expand Down
4 changes: 2 additions & 2 deletions chrome/browser/ui/views/frame/browser_view_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
#include "chrome/test/base/ui_test_utils.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/browser/invalidate_type.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#include "content/public/test/test_navigation_observer.h"
#include "media/base/media_switches.h"
#include "ui/accessibility/platform/ax_platform_node.h"
Expand Down Expand Up @@ -367,7 +367,7 @@ IN_PROC_BROWSER_TEST_F(BrowserViewTest, ShowFaviconInTab) {
// Open a tab-modal dialog and check that the accessibility tree only contains
// the dialog.
IN_PROC_BROWSER_TEST_F(BrowserViewTest, GetAccessibleTabModalDialogTree) {
content::testing::ScopedContentAXModeSetter ax_mode_setter(
content::ScopedAccessibilityModeOverride ax_mode_override(
ui::kAXModeComplete);
ui::AXPlatformNode* ax_node = ui::AXPlatformNode::FromNativeViewAccessible(
browser_view()->GetWidget()->GetRootView()->GetNativeViewAccessible());
Expand Down
6 changes: 3 additions & 3 deletions chrome/browser/ui/views/menu_interactive_uitest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/interactive_test_utils.h"
#include "chrome/test/base/test_browser_window.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/test/ui_controls.h"
#include "ui/gfx/geometry/point.h"
Expand Down Expand Up @@ -117,7 +117,7 @@ class MenuControllerUITest : public InProcessBrowserTest {

IN_PROC_BROWSER_TEST_F(MenuControllerUITest, TestMouseOverShownMenu) {
#if !BUILDFLAG(IS_CHROMEOS_ASH)
content::testing::ScopedContentAXModeSetter ax_mode_setter(
content::ScopedAccessibilityModeOverride ax_mode_override(
ui::kAXModeComplete);
#endif
// Create a parent widget.
Expand Down Expand Up @@ -219,7 +219,7 @@ IN_PROC_BROWSER_TEST_F(MenuControllerUITest, FocusOnOrphanMenu) {
// Going into full screen mode prevents pre-test focus and mouse position
// state from affecting test, and helps ui_controls function correctly.
chrome::ToggleFullscreenMode(browser());
content::testing::ScopedContentAXModeSetter ax_mode_setter(
content::ScopedAccessibilityModeOverride ax_mode_override(
ui::kAXModeComplete);
MenuDelegate menu_delegate;
MenuItemView* menu_item = new MenuItemView(&menu_delegate);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

#include "build/build_config.h"
#include "content/browser/accessibility/browser_accessibility.h"
#include "content/browser/accessibility/browser_accessibility_state_impl.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"
Expand All @@ -18,6 +17,7 @@
#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/public/test/scoped_accessibility_mode_override.h"
#include "content/shell/browser/shell.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/accessibility/ax_mode.h"
Expand Down Expand Up @@ -200,8 +200,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddScreenReaderModeFlag) {

AccessibilityNotificationWaiter waiter2(shell()->web_contents(), ui::AXMode(),
ax::mojom::Event::kLoadComplete);
content::testing::ScopedContentAXModeSetter ax_mode_setter(
ui::AXMode::kScreenReader);
ScopedAccessibilityModeOverride ax_mode_override(ui::AXMode::kScreenReader);
ASSERT_TRUE(waiter2.WaitForNotification());

const BrowserAccessibility* textbox2 =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
#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/public/test/scoped_accessibility_mode_override.h"
#include "content/shell/browser/shell.h"
#include "content/test/content_browser_test_utils_internal.h"
#include "net/dns/mock_host_resolver.h"
Expand Down Expand Up @@ -932,7 +933,7 @@ class WebContentsUIAParentNavigationInDestroyedWatcher

IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
TestAlwaysFireFocusEventAfterNavigationComplete) {
testing::ScopedContentAXModeSetter ax_mode_setter(ui::kAXModeBasic.flags());
ScopedAccessibilityModeOverride ax_mode_override(ui::kAXModeBasic.flags());

ASSERT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL)));

Expand Down Expand Up @@ -968,7 +969,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,

IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
TestLoadingAccessibilityTree) {
testing::ScopedContentAXModeSetter ax_mode_setter(ui::kAXModeBasic.flags());
ScopedAccessibilityModeOverride ax_mode_override(ui::kAXModeBasic.flags());

AccessibleChecker document1_checker(std::wstring(), ROLE_SYSTEM_DOCUMENT,
std::wstring());
Expand Down Expand Up @@ -5469,7 +5470,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinUIASelectivelyEnabledBrowserTest,

// Start with AXMode::kWebContents. Later, a UIA call will cause kNativeAPIs
// to be added to the AXMode.
testing::ScopedContentAXModeSetter ax_mode_setter(ui::AXMode::kWebContents);
ScopedAccessibilityModeOverride ax_mode_override(ui::AXMode::kWebContents);

// Request an automation element for the top-level window.
Microsoft::WRL::ComPtr<IUIAutomation> uia;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
#include "content/browser/accessibility/test_browser_accessibility_delegate.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/scoped_accessibility_mode_override.h"
#include "content/test/test_content_client.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/strings/grit/blink_accessibility_strings.h"
Expand Down Expand Up @@ -65,7 +65,7 @@ class BrowserAccessibilityAndroidTest : public ::testing::Test {
private:
void SetUp() override;
MockContentClient client_;
std::unique_ptr<content::testing::ScopedContentAXModeSetter> ax_mode_setter_;
std::unique_ptr<ScopedAccessibilityModeOverride> ax_mode_override_;

// This is needed to prevent a DCHECK failure when OnAccessibilityApiUsage
// is called in BrowserAccessibility::GetRole.
Expand All @@ -80,9 +80,8 @@ void BrowserAccessibilityAndroidTest::SetUp() {
test_browser_accessibility_delegate_ =
std::make_unique<TestBrowserAccessibilityDelegate>();
SetContentClient(&client_);
ax_mode_setter_ =
std::make_unique<content::testing::ScopedContentAXModeSetter>(
ui::kAXModeComplete);
ax_mode_override_ =
std::make_unique<ScopedAccessibilityModeOverride>(ui::kAXModeComplete);
}

TEST_F(BrowserAccessibilityAndroidTest, TestRetargetTextOnly) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/accessibility/test_browser_accessibility_delegate.h"
#include "content/public/browser/browser_accessibility_state.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/platform/ax_platform_node_auralinux.h"

Expand All @@ -36,12 +36,12 @@ class BrowserAccessibilityAuraLinuxTest : public ::testing::Test {
private:
void SetUp() override;

content::BrowserTaskEnvironment task_environment_;
content::testing::ScopedContentAXModeSetter ax_mode_setter_;
BrowserTaskEnvironment task_environment_;
ScopedAccessibilityModeOverride ax_mode_override_;
};

BrowserAccessibilityAuraLinuxTest::BrowserAccessibilityAuraLinuxTest()
: ax_mode_setter_(ui::kAXModeComplete) {}
: ax_mode_override_(ui::kAXModeComplete) {}

BrowserAccessibilityAuraLinuxTest::~BrowserAccessibilityAuraLinuxTest() =
default;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
#include "content/browser/accessibility/browser_accessibility.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/accessibility/test_browser_accessibility_delegate.h"
#include "content/public/browser/browser_accessibility_state.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"
Expand All @@ -35,18 +35,17 @@ class BrowserAccessibilityManagerAuraLinuxTest : public ::testing::Test {

private:
void SetUp() override;
std::unique_ptr<content::testing::ScopedContentAXModeSetter> ax_mode_setter_;
std::unique_ptr<ScopedAccessibilityModeOverride> ax_mode_override_;

// See crbug.com/1349124
content::BrowserTaskEnvironment task_environment_;
BrowserTaskEnvironment task_environment_;
};

void BrowserAccessibilityManagerAuraLinuxTest::SetUp() {
test_browser_accessibility_delegate_ =
std::make_unique<TestBrowserAccessibilityDelegate>();
ax_mode_setter_ =
std::make_unique<content::testing::ScopedContentAXModeSetter>(
ui::kAXModeComplete);
ax_mode_override_ =
std::make_unique<ScopedAccessibilityModeOverride>(ui::kAXModeComplete);
}

TEST_F(BrowserAccessibilityManagerAuraLinuxTest, TestEmitChildrenChanged) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
#include "build/build_config.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/accessibility/test_browser_accessibility_delegate.h"
#include "content/public/browser/browser_accessibility_state.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_node_position.h"

Expand All @@ -33,11 +33,11 @@ class BrowserAccessibilityTest : public ::testing::Test {
void SetUp() override;

BrowserTaskEnvironment task_environment_;
content::testing::ScopedContentAXModeSetter ax_mode_setter_;
ScopedAccessibilityModeOverride ax_mode_override_;
};

BrowserAccessibilityTest::BrowserAccessibilityTest()
: ax_mode_setter_(ui::kAXModeComplete) {}
: ax_mode_override_(ui::kAXModeComplete) {}

BrowserAccessibilityTest::~BrowserAccessibilityTest() = default;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
#include "base/test/scoped_feature_list.h"
#include "content/browser/renderer_host/legacy_render_widget_host_win.h"
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
#include "content/public/browser/browser_accessibility_state.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/public/test/scoped_accessibility_mode_override.h"
#include "content/shell/browser/shell.h"
#include "ui/accessibility/accessibility_features.h"
#include "ui/accessibility/platform/ax_platform_node_win.h"
Expand Down Expand Up @@ -59,7 +59,7 @@ class AccessibilityObjectLifetimeWinBrowserTest

IN_PROC_BROWSER_TEST_F(AccessibilityObjectLifetimeWinBrowserTest,
RootDoesNotLeak) {
testing::ScopedContentAXModeSetter ax_mode_setter(ui::kAXModeBasic.flags());
ScopedAccessibilityModeOverride ax_mode_override(ui::kAXModeBasic.flags());

EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL)));

Expand Down Expand Up @@ -171,7 +171,7 @@ class AccessibilityObjectLifetimeUiaWinBrowserTest

IN_PROC_BROWSER_TEST_F(AccessibilityObjectLifetimeUiaWinBrowserTest,
RootDoesNotLeak) {
testing::ScopedContentAXModeSetter ax_mode_setter(ui::kAXModeBasic.flags());
ScopedAccessibilityModeOverride ax_mode_override(ui::kAXModeBasic.flags());

EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL)));

Expand Down
Loading

0 comments on commit 708c581

Please sign in to comment.