Commit 8e2f8002 authored by David Tseng's avatar David Tseng Committed by Chromium LUCI CQ

Convert accessibility common to use ES6 modules

R=dmazzoni@chromium.org, josiahk@chromium.org

AX-Relnotes: n/a
Test: existing browser_tests
Change-Id: Ifc2b85ac0903903f8cc526e4a2154121da8346f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2602108Reviewed-by: default avatarJosiah Krutz <josiahk@chromium.org>
Commit-Queue: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839141}
parent e1c02494
......@@ -26,6 +26,7 @@ run_jsbundler("accessibility_common_copied_files") {
sources = [
"accessibility_common_loader.js",
"autoclick/autoclick.js",
"background.html",
"magnifier/magnifier.js",
]
rewrite_rules = [
......
......@@ -2,11 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {Autoclick} from './autoclick/autoclick.js';
import {Magnifier} from './magnifier/magnifier.js';
/**
* Class to manage loading resources depending on which Accessibility features
* are enabled.
*/
class AccessibilityCommon {
export class AccessibilityCommon {
constructor() {
/** @private {Autoclick} */
this.autoclick_ = null;
......@@ -86,4 +89,4 @@ class AccessibilityCommon {
InstanceChecker.closeExtraInstances();
// Initialize the AccessibilityCommon extension.
var accessibilityCommon = new AccessibilityCommon();
window.accessibilityCommon = new AccessibilityCommon();
......@@ -19,7 +19,7 @@ const AUTOCLICK_FOCUS_RING_DISPLAY_TIME_MS = 250;
/**
* Class to manage Automatic Clicks' interaction with the accessibility tree.
*/
class Autoclick {
export class Autoclick {
constructor() {
/**
* Whether to blink the focus rings. Disabled during tests due to
......
......@@ -18,12 +18,16 @@ AutoclickE2ETest = class extends E2ETestBase {
window.RoleType = chrome.automation.RoleType;
// Re-initialize AccessibilityCommon with mock AccessibilityPrivate API.
accessibilityCommon = new AccessibilityCommon();
const reinit = module => {
accessibilityCommon = new module.AccessibilityCommon();
chrome.accessibilityFeatures.autoclick.get({}, () => {
// Turn off focus ring blinking for test after autoclick is initialized.
accessibilityCommon.getAutoclickForTest().setNoBlinkFocusRingsForTest();
});
};
chrome.accessibilityFeatures.autoclick.get({}, () => {
// Turn off focus ring blinking for test after autoclick is initialized.
accessibilityCommon.getAutoclickForTest().setNoBlinkFocusRingsForTest();
});
// TODO: Clang-format does this and below wrong.
import('/accessibility_common/accessibility_common_loader.js').then(reinit);
}
/** @override */
......
<!-- Global scripts. -->
<script src="/common/closure_shim.js"></script>
<script src="/common/instance_checker.js"></script>
<script src="/common/event_handler.js"></script>
<!-- Module entry point. -->
<script type="module" src="accessibility_common_loader.js"></script>
......@@ -5,7 +5,7 @@
/**
* Main class for the Chrome OS magnifier.
*/
class Magnifier {
export class Magnifier {
/**
* @param {!Magnifier.Type} type The type of magnifier in use.
*/
......@@ -145,4 +145,4 @@ Magnifier.Type = {
Magnifier.Prefs = {
SCREEN_MAGNIFIER_FOCUS_FOLLOWING:
'settings.a11y.screen_magnifier_focus_following',
};
\ No newline at end of file
};
......@@ -174,6 +174,9 @@ TEST_F(
TEST_F('MagnifierE2ETest', 'ScreenMagnifierFocusFollowingPref', function() {
this.newCallback(async () => {
const module = await import('/accessibility_common/magnifier/magnifier.js');
const Magnifier = module.Magnifier;
// Disable focus following for full screen magnifier, and verify prefs and
// state.
await this.setPref(Magnifier.Prefs.SCREEN_MAGNIFIER_FOCUS_FOLLOWING, false);
......@@ -194,4 +197,4 @@ TEST_F('MagnifierE2ETest', 'ScreenMagnifierFocusFollowingPref', function() {
assertEquals(magnifier.type, Magnifier.Type.FULL_SCREEN);
assertTrue(magnifier.shouldFollowFocus());
})();
});
\ No newline at end of file
});
......@@ -10,14 +10,7 @@
"incognito": "split",
{% endif %}
"background": {
"scripts": [
"common/closure_shim.js",
"common/instance_checker.js",
"accessibility_common/autoclick/autoclick.js",
"accessibility_common/magnifier/magnifier.js",
"accessibility_common/accessibility_common_loader.js",
"common/event_handler.js"
]
"page": "accessibility_common/background.html"
},
"permissions": [
"accessibilityPrivate",
......
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