function pushPrefs(...aPrefs) { return SpecialPowers.pushPrefEnv({ set: aPrefs });
}
function popPrefs() { return SpecialPowers.popPrefEnv();
}
function promiseWindowClosed(win) {
let promise = BrowserTestUtils.domWindowClosed(win);
win.close(); return promise;
}
async function whenNewTabLoaded(aWindow, aCallback) {
aWindow.BrowserCommands.openTab();
let expectedURL = AboutNewTab.newTabURL;
let browser = aWindow.gBrowser.selectedBrowser;
let loadPromise = BrowserTestUtils.browserLoaded(browser, false, expectedURL);
let alreadyLoaded = await SpecialPowers.spawn(browser, [expectedURL], url => {
let doc = content.document; return doc && doc.readyState === "complete" && doc.location.href == url;
}); if (!alreadyLoaded) {
await loadPromise;
}
aCallback();
}
function is_hidden(element) { var style = element.documentGlobal.getComputedStyle(element); if (style.display == "none") { returntrue;
} if (style.visibility != "visible") { returntrue;
} if (XULPopupElement.isInstance(element)) { return ["hiding", "closed"].includes(element.state);
}
// Hiding a parent element will hide all its children if (element.parentNode != element.ownerDocument) { return is_hidden(element.parentNode);
}
returnfalse;
}
function is_element_visible(element, msg) {
isnot(element, null, "Element should not be null, when checking visibility");
ok(BrowserTestUtils.isVisible(element), msg || "Element should be visible");
}
function is_element_hidden(element, msg) {
isnot(element, null, "Element should not be null, when checking visibility");
ok(is_hidden(element), msg || "Element should be hidden");
}
function promisePopupShown(popup) { return BrowserTestUtils.waitForPopupEvent(popup, "shown");
}
function promisePopupHidden(popup) { return BrowserTestUtils.waitForPopupEvent(popup, "hidden");
}
function promiseNotificationShown(notification) {
let win = notification.browser.documentGlobal; if (win.PopupNotifications.panel.state == "open") { return Promise.resolve();
}
let panelPromise = promisePopupShown(win.PopupNotifications.panel);
notification.reshow(); return panelPromise;
}
/** *Resolveswhenabookmarkwiththegivenuriisadded.
*/ function promiseOnBookmarkItemAdded(aExpectedURI) { returnnew Promise((resolve, reject) => {
let listener = events => {
is(events.length, 1, "Should only receive one event.");
info("Added a bookmark to " + events[0].url);
PlacesUtils.observers.removeListener(["bookmark-added"], listener); if (events[0].url == aExpectedURI.spec) {
resolve();
} else {
reject(new Error("Added an unexpected bookmark"));
}
};
info("Waiting for a bookmark to be added");
PlacesUtils.observers.addListener(["bookmark-added"], listener);
});
}
async function loadBadCertPage(url, feltPrivacy = false) {
let loaded = BrowserTestUtils.waitForErrorPage(gBrowser.selectedBrowser);
BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, url);
await loaded;
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.