/** * Dispatches |handler| to |element|, as if fired in response to |event|.
*/ function send(element, event, handler) { function unique_handler() { return handler.apply(this, arguments);
}
element.addEventListener(event, unique_handler); try {
sendMouseEvent({ type: event }, element.id);
} finally {
element.removeEventListener(event, unique_handler);
}
} function sendWithUserActivation(element, event, handler) {
SpecialPowers.wrap(document).notifyUserGestureActivation();
send(element, event, handler);
}
/** * Because it's not nice to leave popup windows open after the tests are * finished, we need a foolproof way to close some/all window.opened windows.
*/
(function (originalOpen) { var wins = [];
(window.open = function () { var win = originalOpen.apply(window, arguments); if (win) {
wins[wins.length] = win;
} return win;
}).close = function (n) { var promises = []; if (arguments.length < 1) {
n = wins.length;
} while (n-- > 0) { var win = wins.pop(); if (win) {
let openedBrowsingContextID = SpecialPowers.getBrowsingContextID(win);
promises.push(
(function (openedWindow) { returnnew Promise(function (resolve) {
let observer = {
observe(subject) { if (subject.id == openedBrowsingContextID) {
SpecialPowers.removeObserver(
observer, "browsing-context-discarded"
);
SimpleTest.executeSoon(resolve);
}
},
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.