Commit 68ad76f4 authored by Josiah K's avatar Josiah K Committed by Commit Bot

Add Docked Magnifier support to Accessibility Common extension

Bug: 1131153
Change-Id: I959958dbfe5d81cac99bd3f747170fd60921e415
AX-Relnotes: Adds Docked Magnifier support for active-descendant focus-following
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2465491
Commit-Queue: Josiah Krutz <josiahk@google.com>
Reviewed-by: default avatarDavid Tseng <dtseng@chromium.org>
Reviewed-by: default avatarTaylor Bergquist <tbergquist@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Auto-Submit: Josiah Krutz <josiahk@google.com>
Cr-Commit-Position: refs/heads/master@{#823896}
parent 447e3030
......@@ -1044,7 +1044,8 @@ void AccessibilityManager::SetProfile(Profile* profile) {
// All features supported by accessibility common.
static const char* kAccessibilityCommonFeatures[] = {
ash::prefs::kAccessibilityAutoclickEnabled,
ash::prefs::kAccessibilityScreenMagnifierEnabled};
ash::prefs::kAccessibilityScreenMagnifierEnabled,
ash::prefs::kDockedMagnifierEnabled};
if (profile) {
// TODO(yoshiki): Move following code to PrefHandler.
......
......@@ -323,7 +323,6 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFeaturesApiTest, ObserveFeatures) {
std::vector<std::string> enabled_features = {
"caretHighlight",
"cursorColor",
"dockedMagnifier",
"focusHighlight",
"stickyKeys",
};
......@@ -331,6 +330,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityFeaturesApiTest, ObserveFeatures) {
std::vector<std::string> disabled_features = {
"autoclick",
"cursorHighlight",
"dockedMagnifier",
"highContrast",
"largeCursor",
"screenMagnifier",
......
......@@ -44,6 +44,11 @@ class AccessibilityCommon {
{}, this.onMagnifierUpdated_.bind(this));
chrome.accessibilityFeatures.screenMagnifier.onChange.addListener(
this.onMagnifierUpdated_.bind(this));
chrome.accessibilityFeatures.dockedMagnifier.get(
{}, this.onMagnifierUpdated_.bind(this));
chrome.accessibilityFeatures.dockedMagnifier.onChange.addListener(
this.onMagnifierUpdated_.bind(this));
}
/**
......
......@@ -75,6 +75,46 @@ TEST_F(
});
});
TEST_F(
'MagnifierE2ETest', 'MovesDockedMagnifierToActiveDescendant', function() {
const site = `
<div role="group" id="parent" aria-activedescendant="apple">
<div id="apple" role="treeitem">Apple</div>
<div id="banana" role="treeitem">Banana</div>
</div>
<script>
const parent = document.getElementById('parent');
parent.addEventListener('click', function() {
parent.setAttribute('aria-activedescendant', 'banana');
});
</script>
`;
this.runWithLoadedTree(site, async function(root) {
// Enable docked magnifier.
await new Promise(resolve => {
chrome.accessibilityFeatures.dockedMagnifier.set(
{value: true}, resolve);
});
// Validate magnifier wants to move to root.
const rootLocation = await getNextMagnifierLocation();
assertTrue(RectUtil.equal(rootLocation, root.location));
// Click parent to change active descendant from apple to banana.
const parent = root.find({role: RoleType.GROUP});
parent.doDefault();
// Register and wait for rect from magnifier.
const rect = await getNextMagnifierLocation();
// Validate rect from magnifier is rect of banana.
const bananaNode =
root.find({role: RoleType.TREE_ITEM, attributes: {name: 'Banana'}});
assertTrue(RectUtil.equal(rect, bananaNode.location));
}, {returnPage: true});
});
// Disabled - flaky: https://crbug.com/1139939
TEST_F(
'MagnifierE2ETest', 'DISABLED_MovesScreenMagnifierToActiveDescendant',
......
......@@ -77,7 +77,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionDialogBoundsTest, Test_OpenFileDialog) {
ShowAndVerifyUi();
}
IN_PROC_BROWSER_TEST_F(ExtensionDialogBoundsTest, Test_BigExtensionDialog) {
// TODO(crbug.com/1012025): Test crashes as enabling docked magnifier now loads
// another extension (Accessibility Common).
IN_PROC_BROWSER_TEST_F(ExtensionDialogBoundsTest,
DISABLED_Test_BigExtensionDialog) {
EnableDockedMagnifier();
ShowAndVerifyUi();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment