Source code
Revision control
Copy as Markdown
Other Tools
/* Any copyright is dedicated to the Public Domain.
"use strict";
function triggerClickOn(target, options) {
if (AppConstants.platform == "macosx") {
options = { metaKey: options.ctrlKey, shiftKey: options.shiftKey };
}
let promise = BrowserTestUtils.waitForEvent(target, "click");
EventUtils.synthesizeMouseAtCenter(target, options);
return promise;
}
async function openTabContextMenu(tab) {
info("Opening tab context menu");
let contextMenu = document.getElementById("tabContextMenu");
let openTabContextMenuPromise = BrowserTestUtils.waitForPopupEvent(
contextMenu,
"shown"
);
EventUtils.synthesizeMouseAtCenter(tab, { type: "contextmenu" });
await openTabContextMenuPromise;
return contextMenu;
}
async function openShareMenuPopup(contextMenu) {
info("Opening Share menu popup.");
let shareItem = contextMenu.querySelector(".share-tab-url-item");
shareItem.openMenu(true);
await BrowserTestUtils.waitForPopupEvent(shareItem.menupopup, "shown");
}
function getHTMLClipboard() {
let xferable = Cc["@mozilla.org/widget/transferable;1"].createInstance(
Ci.nsITransferable
);
xferable.init(null);
xferable.addDataFlavor("text/html");
Services.clipboard.getData(xferable, Ci.nsIClipboard.kGlobalClipboard);
let data = {};
xferable.getTransferData("text/html", data);
return data.value?.QueryInterface(Ci.nsISupportsString)?.data ?? "";
}