"use strict"; let contextMenu; let LOGIN_FILL_ITEMS = [ "---", null, "fill-login", null, [ "fill-login-no-logins", false, "---", null, "fill-login-saved-passwords", true, ], null, ]; let hasPocket = Services.prefs.getBoolPref("extensions.pocket.enabled"); let hasContainers = Services.prefs.getBoolPref("privacy.userContext.enabled"); const example_base = "http://example.com/browser/browser/base/content/test/contextMenu/"; const chrome_base = "chrome://mochitests/content/browser/browser/base/content/test/contextMenu/"; const head_base = "chrome://mochitests/content/browser/browser/base/content/test/contextMenu/"; /* import-globals-from contextmenu_common.js */ Services.scriptloader.loadSubScript( chrome_base + "contextmenu_common.js", this ); /* import-globals-from ../general/head.js */ Services.scriptloader.loadSubScript(head_base + "head.js", this); add_task(async function init() { // Ensure screenshots is really disabled (bug 1498738) const addon = await AddonManager.getAddonByID("screenshots@mozilla.org"); await addon.disable({ allowSystemAddons: true }); }); // Below are test cases for XUL element add_task(async function test_xul_text_link_label() { let url = chrome_base + "subtst_contextmenu_xul.xhtml"; await BrowserTestUtils.openNewForegroundTab({ gBrowser, url, waitForLoad: true, waitForStateStop: true, }); await test_contextmenu("#test-xul-text-link-label", [ "context-openlinkintab", true, ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []), // We need a blank entry here because the containers submenu is // dynamically generated with no ids. ...(hasContainers ? ["", null] : []), "context-openlink", true, "context-openlinkprivate", true, "---", null, "context-bookmarklink", true, "context-savelink", true, ...(hasPocket ? ["context-savelinktopocket", true] : []), "context-copylink", true, "context-searchselect", true, "---", null, "context-sendlinktodevice", true, [], null, ]); // Clean up so won't affect HTML element test cases lastElementSelector = null; gBrowser.removeCurrentTab(); }); // Below are test cases for HTML element add_task(async function test_setup_html() { let url = example_base + "subtst_contextmenu.html"; await BrowserTestUtils.openNewForegroundTab(gBrowser, url); await ContentTask.spawn(gBrowser.selectedBrowser, null, async function() { let doc = content.document; let audioIframe = doc.querySelector("#test-audio-in-iframe"); // media documents always use a