71 lines
1.8 KiB
JavaScript
71 lines
1.8 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
/* exported initAccessibilityService, openNewTab, shutdownAccessibilityService */
|
|
|
|
// Load the shared-head file first.
|
|
Services.scriptloader.loadSubScript(
|
|
"chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
|
|
this
|
|
);
|
|
|
|
const nsIAccessibleRole = Ci.nsIAccessibleRole; // eslint-disable-line no-unused-vars
|
|
|
|
/* import-globals-from ../../mochitest/role.js */
|
|
loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
|
|
|
|
async function openNewTab(url) {
|
|
const forceNewProcess = true;
|
|
|
|
return BrowserTestUtils.openNewForegroundTab({
|
|
gBrowser,
|
|
url,
|
|
forceNewProcess,
|
|
});
|
|
}
|
|
|
|
async function initAccessibilityService() {
|
|
info("Create accessibility service.");
|
|
let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
|
|
Ci.nsIAccessibilityService
|
|
);
|
|
|
|
await new Promise(resolve => {
|
|
if (Services.appinfo.accessibilityEnabled) {
|
|
resolve();
|
|
return;
|
|
}
|
|
|
|
let observe = (subject, topic, data) => {
|
|
if (data === "1") {
|
|
Services.obs.removeObserver(observe, "a11y-init-or-shutdown");
|
|
resolve();
|
|
}
|
|
};
|
|
Services.obs.addObserver(observe, "a11y-init-or-shutdown");
|
|
});
|
|
|
|
return accService;
|
|
}
|
|
|
|
function shutdownAccessibilityService() {
|
|
forceGC();
|
|
|
|
return new Promise(resolve => {
|
|
if (!Services.appinfo.accessibilityEnabled) {
|
|
resolve();
|
|
return;
|
|
}
|
|
|
|
let observe = (subject, topic, data) => {
|
|
if (data === "0") {
|
|
Services.obs.removeObserver(observe, "a11y-init-or-shutdown");
|
|
resolve();
|
|
}
|
|
};
|
|
Services.obs.addObserver(observe, "a11y-init-or-shutdown");
|
|
});
|
|
}
|