mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 13:48:23 +02:00
In the next changeset we will remove the nsIDOMXULPopupElement interface, which was only used to make sure that this role is set. There wasn't a test covering this case yet, so this changeset adds one. Note that we are using a mochitest-browser test as opposed to directly testing markup like `<panel><richlistbox /></panel>` in a mochitest-chrome test so that we'll actually be able to catch a regression if the markup for the awesomebar changes. MozReview-Commit-ID: KGaxQZTDq69 --HG-- extra : rebase_source : 671b718fd010b5f6a2036a695d2c4c03c8b64654
67 lines
1.8 KiB
JavaScript
67 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.
|
|
/* import-globals-from ../shared-head.js */
|
|
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");
|
|
});
|
|
}
|