tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 6d1fbb3239353ef644256b277442a8f79bbaf542
parent 01bc91ff08ccd25e7737eaa397bf885c9caf83b6
Author: RachelRusiecki <rachrusiecki@gmail.com>
Date:   Wed, 17 Dec 2025 17:35:19 +0000

Bug 1804921 - Remove the extensions.manifestV3.enabled pref. r=robwu,toolkit-telemetry-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D272280

Diffstat:
Mbrowser/components/extensions/test/browser/browser_ext_action_popup_allowed_urls.js | 6------
Mbrowser/components/extensions/test/browser/browser_ext_browserAction_click_types.js | 8--------
Mbrowser/components/extensions/test/browser/browser_ext_browserAction_context.js | 4----
Mbrowser/components/extensions/test/browser/browser_ext_browserAction_simple.js | 6------
Mbrowser/components/extensions/test/browser/browser_ext_chrome_settings_overrides_home.js | 3---
Mbrowser/components/extensions/test/browser/browser_ext_contextMenus_commands.js | 6------
Mbrowser/components/extensions/test/browser/browser_ext_menus_events.js | 4----
Mbrowser/components/extensions/test/xpcshell/test_ext_manifest.js | 2--
Mbrowser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js | 2--
Mbrowser/components/extensions/test/xpcshell/test_ext_settings_overrides_search.js | 1-
Mbrowser/components/migration/tests/unit/xpcshell.toml | 1+
Mmodules/libpref/init/all.js | 2--
Mtoolkit/components/extensions/Schemas.sys.mjs | 13-------------
Mtoolkit/components/extensions/schemas/manifest.json | 3+--
Mtoolkit/components/extensions/test/mochitest/test_ext_action.html | 6------
Mtoolkit/components/extensions/test/mochitest/test_ext_all_apis.js | 4----
Mtoolkit/components/extensions/test/mochitest/test_ext_contentscript_activeTab.html | 5+----
Mtoolkit/components/extensions/test/mochitest/test_ext_dnr_other_extensions.html | 5+----
Mtoolkit/components/extensions/test/mochitest/test_ext_dnr_tabIds.html | 5+----
Mtoolkit/components/extensions/test/mochitest/test_ext_dnr_upgradeScheme.html | 1-
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript.html | 6------
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_activeTab.html | 5+----
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_injectImmediately.html | 6------
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_insertCSS.html | 6------
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_permissions.html | 5+----
Mtoolkit/components/extensions/test/mochitest/test_ext_scripting_removeCSS.html | 6------
Mtoolkit/components/extensions/test/mochitest/test_ext_sendmessage_no_receiver.html | 5-----
Mtoolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html | 5-----
Mtoolkit/components/extensions/test/xpcshell/test_csp_custom_policies.js | 4----
Mtoolkit/components/extensions/test/xpcshell/test_ext_content_security_policy.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_csp.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_dynamic_registration.js | 45++++++++++++++++++++-------------------------
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_json_api.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_change.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_fetch.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_contentscript_triggeringPrincipal.js | 3---
Mtoolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js | 4----
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_allowAllRequests.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_api.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_dynamic_rules.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_modifyHeaders.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_private_browsing.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_redirect_transform.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter_limits.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_session_rules.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_startup_cache.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules_limits.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_system_restrictions.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_tabIds.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_testMatchOutcome.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_update_static_rules.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_urlFilter.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_webrequest.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_dnr_without_webrequest.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_eventpage_idle.js | 11+++--------
Mtoolkit/components/extensions/test/xpcshell/test_ext_json_parser.js | 5+----
Mtoolkit/components/extensions/test/xpcshell/test_ext_manifest.js | 46++++++++++++++++++----------------------------
Mtoolkit/components/extensions/test/xpcshell/test_ext_manifest_content_security_policy.js | 1-
Mtoolkit/components/extensions/test/xpcshell/test_ext_permission_warnings.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_css.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_file.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_scripting_persistAcrossSessions.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_scripting_updateContentScripts.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_secfetch.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_simple.js | 17++++-------------
Mtoolkit/components/extensions/test/xpcshell/test_ext_wasm.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_webRequest_eventPage_StreamFilter.js | 45++++++++++++++++-----------------------------
Mtoolkit/components/extensions/test/xpcshell/test_ext_webRequest_mergecsp.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_webRequest_restrictedHeaders.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_webSocket.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_web_accessible_resources_matches.js | 2--
Mtoolkit/components/extensions/test/xpcshell/test_ext_xhr_cors.js | 2--
Mtoolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs | 1-
Mtoolkit/components/telemetry/docs/data/environment.rst | 2--
Mtoolkit/modules/Troubleshoot.sys.mjs | 1-
Mtoolkit/mozapps/extensions/content/aboutaddons.js | 26+++++++++-----------------
Mtoolkit/mozapps/extensions/test/browser/browser_html_detail_permissions.js | 29++++++-----------------------
Mtoolkit/mozapps/extensions/test/xpcshell/test_hidden.js | 3---
Mtoolkit/mozapps/extensions/test/xpcshell/test_installOrigins.js | 2--
82 files changed, 84 insertions(+), 347 deletions(-)

diff --git a/browser/components/extensions/test/browser/browser_ext_action_popup_allowed_urls.js b/browser/components/extensions/test/browser/browser_ext_action_popup_allowed_urls.js @@ -3,12 +3,6 @@ "use strict"; -add_setup(async () => { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_actions_setPopup_allowed_urls() { const otherExtension = ExtensionTestUtils.loadExtension({}); const extensionDefinition = { diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_click_types.js b/browser/components/extensions/test/browser/browser_ext_browserAction_click_types.js @@ -249,11 +249,7 @@ add_task(async function test_clickData_MV2_eventpage() { }); add_task(async function test_clickData_MV3() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); await test_clickData({ manifest_version: 3 }); - await SpecialPowers.popPrefEnv(); }); add_task(function test_clickData_reset_MV2() { @@ -261,9 +257,5 @@ add_task(function test_clickData_reset_MV2() { }); add_task(async function test_clickData_reset_MV3() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); await test_clickData_reset({ manifest_version: 3 }); - await SpecialPowers.popPrefEnv(); }); diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_context.js b/browser/components/extensions/test/browser/browser_ext_browserAction_context.js @@ -462,10 +462,6 @@ add_task(async function testTabSwitchContext() { }); add_task(async function testTabSwitchActionContext() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); - await runTests({ manifest: { manifest_version: 3, diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_simple.js b/browser/components/extensions/test/browser/browser_ext_browserAction_simple.js @@ -93,12 +93,6 @@ async function testAction(manifest_version) { await waitForConsole; } -add_setup(async function () { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_browserAction() { await testAction(2); }); diff --git a/browser/components/extensions/test/browser/browser_ext_chrome_settings_overrides_home.js b/browser/components/extensions/test/browser/browser_ext_chrome_settings_overrides_home.js @@ -854,8 +854,5 @@ add_task(async function test_overriding_home_page_open_mv2() { }); add_task(async function test_overriding_home_page_open_mv3() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); await _test_overriding_home_page_open(3); }); diff --git a/browser/components/extensions/test/browser/browser_ext_contextMenus_commands.js b/browser/components/extensions/test/browser/browser_ext_contextMenus_commands.js @@ -2,12 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -add_task(async function testTabSwitchActionContext() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_actions_context_menu() { function background() { browser.contextMenus.create({ diff --git a/browser/components/extensions/test/browser/browser_ext_menus_events.js b/browser/components/extensions/test/browser/browser_ext_menus_events.js @@ -22,10 +22,6 @@ async function grantOptionalPermission(extension, permissions) { var someOtherTab, testTab; add_setup(async function () { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); - // To help diagnose an intermittent later. SimpleTest.requestCompleteLog(); diff --git a/browser/components/extensions/test/xpcshell/test_ext_manifest.js b/browser/components/extensions/test/xpcshell/test_ext_manifest.js @@ -2,8 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - async function testManifest(manifest, expectedError) { ExtensionTestUtils.failOnSchemaWarnings(false); let normalized = await ExtensionTestUtils.normalizeManifest(manifest); diff --git a/browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js b/browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js @@ -4,8 +4,6 @@ /* globals chrome */ -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - async function testPermission(options) { function background(bgOptions) { browser.test.sendMessage("typeof-namespace", { diff --git a/browser/components/extensions/test/xpcshell/test_ext_settings_overrides_search.js b/browser/components/extensions/test/xpcshell/test_ext_settings_overrides_search.js @@ -562,7 +562,6 @@ add_task(async function test_extension_allow_http_for_localhost() { }); add_task(async function test_search_favicon_mv3() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); let normalized = await ExtensionTestUtils.normalizeManifest({ manifest_version: 3, chrome_settings_overrides: { diff --git a/browser/components/migration/tests/unit/xpcshell.toml b/browser/components/migration/tests/unit/xpcshell.toml @@ -47,6 +47,7 @@ run-if = [ ] ["test_Chrome_extensions.js"] +skip-if = ["condprof"] # Bug 1804921 ["test_Chrome_formdata.js"] run-sequentially = ["true"] # fails more than 50% of the time in parallel diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js @@ -1775,8 +1775,6 @@ pref("extensions.eventPages.enabled", true); // Whether MV3 restrictions for actions popup urls should be extended to MV2 extensions // (only allowing same extension urls to be used as action popup urls). pref("extensions.manifestV2.actionsPopupURLRestricted", false); -// Whether "manifest_version: 3" extensions should be allowed to install successfully. -pref("extensions.manifestV3.enabled", true); #ifndef MOZ_WEBEXT_WEBIDL_ENABLED // Defined in StaticPrefList.yaml but overridden here to lock it. pref("extensions.backgroundServiceWorker.enabled", false, locked); diff --git a/toolkit/components/extensions/Schemas.sys.mjs b/toolkit/components/extensions/Schemas.sys.mjs @@ -322,19 +322,6 @@ const POSTPROCESSORS = { return value; }, - manifestVersionCheck(value, context) { - if ( - value == 2 || - (value == 3 && - Services.prefs.getBoolPref("extensions.manifestV3.enabled", false)) - ) { - return value; - } - const msg = `Unsupported manifest version: ${value}`; - context.logError(context.makeError(msg)); - throw new Error(msg); - }, - webAccessibleMatching(value, context) { // Ensure each object has at least one of matches or extension_ids array. for (let obj of value) { diff --git a/toolkit/components/extensions/schemas/manifest.json b/toolkit/components/extensions/schemas/manifest.json @@ -11,8 +11,7 @@ "manifest_version": { "type": "integer", "minimum": 2, - "maximum": 3, - "postprocess": "manifestVersionCheck" + "maximum": 3 }, "applications": { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_action.html b/toolkit/components/extensions/test/mochitest/test_ext_action.html @@ -13,12 +13,6 @@ <script type="text/javascript"> "use strict"; -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_action_onClicked() { const extension = ExtensionTestUtils.loadExtension({ manifest: { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js b/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js @@ -225,9 +225,6 @@ add_task(async function test_enumerate_background_script_apis() { }); add_task(async function test_enumerate_background_script_apis_mv3() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); let extensionData = { background: sendAllApis, manifest: { @@ -249,5 +246,4 @@ add_task(async function test_enumerate_background_script_apis_mv3() { ok(sameness, "namespaces are same object"); await extension.unload(); - await SpecialPowers.popPrefEnv(); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_contentscript_activeTab.html b/toolkit/components/extensions/test/mochitest/test_ext_contentscript_activeTab.html @@ -15,10 +15,7 @@ add_task(async function setup() { SimpleTest.requestCompleteLog(); await SpecialPowers.pushPrefEnv({ - set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.originControls.grantByDefault", false], - ], + set: [["extensions.originControls.grantByDefault", false]], }); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_dnr_other_extensions.html b/toolkit/components/extensions/test/mochitest/test_ext_dnr_other_extensions.html @@ -18,10 +18,7 @@ add_setup(async () => { await SpecialPowers.pushPrefEnv({ - set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.dnr.enabled", true], - ], + set: [["extensions.dnr.enabled", true]], }); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_dnr_tabIds.html b/toolkit/components/extensions/test/mochitest/test_ext_dnr_tabIds.html @@ -22,10 +22,7 @@ add_setup(async () => { await SpecialPowers.pushPrefEnv({ - set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.dnr.enabled", true], - ], + set: [["extensions.dnr.enabled", true]], }); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_dnr_upgradeScheme.html b/toolkit/components/extensions/test/mochitest/test_ext_dnr_upgradeScheme.html @@ -18,7 +18,6 @@ add_setup(async () => { await SpecialPowers.pushPrefEnv({ set: [ - ["extensions.manifestV3.enabled", true], ["extensions.dnr.enabled", true], ["extensions.dnr.match_requests_from_other_extensions", true], ], diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript.html @@ -41,12 +41,6 @@ const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { }); }; -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_executeScript_params_validation() { let extension = makeExtension({ async background() { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_activeTab.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_activeTab.html @@ -27,10 +27,7 @@ const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { add_task(async function setup() { await SpecialPowers.pushPrefEnv({ - set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.originControls.grantByDefault", false], - ], + set: [["extensions.originControls.grantByDefault", false]], }); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_injectImmediately.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_executeScript_injectImmediately.html @@ -38,12 +38,6 @@ const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { }); }; -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_executeScript_injectImmediately() { let extension = makeExtension({ async background() { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_insertCSS.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_insertCSS.html @@ -37,12 +37,6 @@ const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { }); }; -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_insertCSS_and_removeCSS_params_validation() { let extension = makeExtension({ async background() { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_permissions.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_permissions.html @@ -128,10 +128,7 @@ const verifyRegisterContentScripts = async ({ manifest_version }) => { add_task(async function setup() { await SpecialPowers.pushPrefEnv({ - set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.webextOptionalPermissionPrompts", false], - ], + set: [["extensions.webextOptionalPermissionPrompts", false]], }); }); diff --git a/toolkit/components/extensions/test/mochitest/test_ext_scripting_removeCSS.html b/toolkit/components/extensions/test/mochitest/test_ext_scripting_removeCSS.html @@ -33,12 +33,6 @@ const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { }); }; -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); -}); - add_task(async function test_removeCSS_with_invalid_tabId() { let extension = makeExtension({ async background() { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_sendmessage_no_receiver.html b/toolkit/components/extensions/test/mochitest/test_ext_sendmessage_no_receiver.html @@ -90,10 +90,6 @@ add_task(async function test_content_script_chrome_sendMessage_without_listener( }); add_task(async function test_chrome_sendMessage_without_listener_v3() { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", true]], - }); - // We only test the background here because content script behavior // is independant of the manifest version. let extension = ExtensionTestUtils.loadExtension({ @@ -108,7 +104,6 @@ add_task(async function test_chrome_sendMessage_without_listener_v3() { await extension.awaitMessage("finished"); await extension.unload(); - await SpecialPowers.popPrefEnv(); }); </script> </body> diff --git a/toolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html b/toolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html @@ -12,11 +12,6 @@ <script type="text/javascript"> "use strict"; -// add_setup not available in mochitest -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({set: [["extensions.manifestV3.enabled", true]]}); -}) - let image = atob( "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAA" + "ACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=" diff --git a/toolkit/components/extensions/test/xpcshell/test_csp_custom_policies.js b/toolkit/components/extensions/test/xpcshell/test_csp_custom_policies.js @@ -166,8 +166,6 @@ add_task(async function test_policy_csp() { }); add_task(async function test_extension_csp() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - ExtensionTestUtils.failOnSchemaWarnings(false); let extension_pages = "script-src 'self'; img-src 'none'"; @@ -366,6 +364,4 @@ add_task(async function test_extension_csp() { } ExtensionTestUtils.failOnSchemaWarnings(true); - - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_content_security_policy.js b/toolkit/components/extensions/test/xpcshell/test_ext_content_security_policy.js @@ -1,7 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com"] }); server.registerPathHandler("/dummy", (request, response) => { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_csp.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_csp.js @@ -6,8 +6,6 @@ const { TestUtils } = ChromeUtils.importESModule( "resource://testing-common/TestUtils.sys.mjs" ); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com", "csplog.example.net"], }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_dynamic_registration.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_dynamic_registration.js @@ -124,34 +124,29 @@ const verifyRegistrationWithNewProcess = async extension => { await secondContentPage.close(); }; -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - async function test_scripting_registerContentScripts() { - let extension = makeExtension({ - manifest: { - manifest_version: 3, - host_permissions: ["<all_urls>"], - granted_host_permissions: true, - }, - async background() { - const script = { - id: "a-script", - js: ["script.js"], - matches: ["http://*/*/*.html"], - persistAcrossSessions: false, - }; +add_task(async function test_scripting_registerContentScripts() { + let extension = makeExtension({ + manifest: { + manifest_version: 3, + host_permissions: ["<all_urls>"], + granted_host_permissions: true, + }, + async background() { + const script = { + id: "a-script", + js: ["script.js"], + matches: ["http://*/*/*.html"], + persistAcrossSessions: false, + }; - await browser.scripting.registerContentScripts([script]); + await browser.scripting.registerContentScripts([script]); - browser.test.sendMessage("background-done"); - }, - }); + browser.test.sendMessage("background-done"); + }, + }); - await verifyRegistrationWithNewProcess(extension); - } -); + await verifyRegistrationWithNewProcess(extension); +}); add_task( { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_json_api.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_json_api.js @@ -1,7 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com"] }); server.registerPathHandler("/dummy", (request, response) => { response.setStatusLine(request.httpVersion, 200, "OK"); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_change.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_change.js @@ -1,6 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.originControls.grantByDefault", false); const server = createHttpServer({ hosts: ["example.com", "example.net"] }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_fetch.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_permissions_fetch.js @@ -1,7 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com", "example.net"] }); server.registerDirectory("/data/", do_get_file("data")); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_triggeringPrincipal.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_triggeringPrincipal.js @@ -1361,8 +1361,6 @@ add_task(async function test_contentscript_csp() { * content page. */ add_task(async function test_extension_contentscript_csp() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - gContentSecurityPolicy = `default-src 'none' 'report-sample'; script-src 'nonce-deadbeef' 'unsafe-eval' 'report-sample'; report-uri ${CSP_REPORT_PATH};`; let data = { @@ -1396,5 +1394,4 @@ add_task(async function test_extension_contentscript_csp() { await extension.unload(); await contentPage.close(); - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js b/toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js @@ -5,10 +5,6 @@ server.registerPathHandler("/", (req, res) => { res.write("ok"); }); -add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); -}); - add_task(async function test_csp_upgrade() { async function background() { browser.webRequest.onBeforeRequest.addListener( diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_allowAllRequests.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_allowAllRequests.js @@ -11,7 +11,6 @@ ChromeUtils.defineESModuleGetters(this, { }); add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_api.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_api.js @@ -83,8 +83,6 @@ async function testAvailability({ } add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - // test_optional_declarativeNetRequestFeedback calls permission.request(). // We don't care about the UI, only about the effect of being granted. Services.prefs.setBoolPref( diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_dynamic_rules.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_dynamic_rules.js @@ -34,7 +34,6 @@ server.registerPathHandler("/", (req, res) => { }); add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_modifyHeaders.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_modifyHeaders.js @@ -77,7 +77,6 @@ server.registerPathHandler("/setcookie", (req, res) => { server.registerPathHandler("/empty", () => {}); add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); // The restrictedDomains pref should be set early, because the pref is read diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_private_browsing.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_private_browsing.js @@ -7,7 +7,6 @@ server.registerPathHandler("/", (req, res) => { }); add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_redirect_transform.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_redirect_transform.js @@ -8,7 +8,6 @@ // reasonably well. add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); // We don't normally allow localhost channels to be proxied, but this diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter.js @@ -11,7 +11,6 @@ // The quota on regexFilter is verified in test_ext_dnr_regexFilter_limits.js. add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter_limits.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_regexFilter_limits.js @@ -17,7 +17,6 @@ AddonTestUtils.init(this); AddonTestUtils.overrideCertDB(); add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_session_rules.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_session_rules.js @@ -5,7 +5,6 @@ ChromeUtils.defineESModuleGetters(this, { }); add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_startup_cache.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_startup_cache.js @@ -94,7 +94,6 @@ function getDNRExtension({ } add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules.js @@ -29,7 +29,6 @@ server.registerPathHandler("/", (req, res) => { }); add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules_limits.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_static_rules_limits.js @@ -27,7 +27,6 @@ server.registerPathHandler("/", (req, res) => { }); add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_system_restrictions.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_system_restrictions.js @@ -17,7 +17,6 @@ server.registerPathHandler("/imported.css", (req, res) => { }); add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); // The restrictedDomains pref should be set early, because the pref is read // only once (on first use) by WebExtensionPolicy::IsRestrictedURI. diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_tabIds.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_tabIds.js @@ -17,7 +17,6 @@ server.registerPathHandler("/", (req, res) => { let gTabLookupSpy; add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); // Install a spy on WebRequest.getTabIdForChannelWrapper. diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_testMatchOutcome.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_testMatchOutcome.js @@ -1,7 +1,6 @@ "use strict"; add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_update_static_rules.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_update_static_rules.js @@ -36,7 +36,6 @@ async function dropDNRStartupCache(dnrStore, extension) { } add_setup(async () => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_urlFilter.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_urlFilter.js @@ -1,7 +1,6 @@ "use strict"; add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); Services.prefs.setBoolPref("extensions.dnr.feedback", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_webrequest.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_webrequest.js @@ -1,7 +1,6 @@ "use strict"; add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_dnr_without_webrequest.js b/toolkit/components/extensions/test/xpcshell/test_ext_dnr_without_webrequest.js @@ -5,7 +5,6 @@ // test_ext_dnr_webRequest.js for the interaction between webRequest and DNR. add_setup(() => { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); Services.prefs.setBoolPref("extensions.dnr.enabled", true); }); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_eventpage_idle.js b/toolkit/components/extensions/test/xpcshell/test_ext_eventpage_idle.js @@ -589,14 +589,9 @@ add_task(function test_mv2_suspend_shutdown_race() { return testSuspendShutdownRace({ manifest_version: 2 }); }); -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - function test_mv3_suspend_shutdown_race() { - return testSuspendShutdownRace({ manifest_version: 3 }); - } -); +add_task(function test_mv3_suspend_shutdown_race() { + return testSuspendShutdownRace({ manifest_version: 3 }); +}); function createPendingListenerTestExtension() { return ExtensionTestUtils.loadExtension({ diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_json_parser.js b/toolkit/components/extensions/test/xpcshell/test_ext_json_parser.js @@ -123,10 +123,7 @@ add_task(async function test_getExtensionVersionWithoutValidation() { add_task( { - pref_set: [ - ["extensions.manifestV3.enabled", true], - ["extensions.webextensions.warnings-as-errors", false], - ], + pref_set: [["extensions.webextensions.warnings-as-errors", false]], }, async function test_applications_no_longer_valid_in_mv3() { let id = "some@id"; diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_manifest.js b/toolkit/components/extensions/test/xpcshell/test_ext_manifest.js @@ -142,19 +142,14 @@ add_task(async function test_mv2_scripting_permission_always_enabled() { Assert.deepEqual(warnings, [], "Got no warnings"); }); -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - async function test_mv3_scripting_permission_always_enabled() { - let warnings = await testManifest({ - manifest_version: 3, - permissions: ["scripting"], - }); +add_task(async function test_mv3_scripting_permission_always_enabled() { + let warnings = await testManifest({ + manifest_version: 3, + permissions: ["scripting"], + }); - Assert.deepEqual(warnings, [], "Got no warnings"); - } -); + Assert.deepEqual(warnings, [], "Got no warnings"); +}); add_task(async function test_name_too_long() { let extension = ExtensionTestUtils.loadExtension({ @@ -281,23 +276,18 @@ add_task(async function test_applications() { await extension.unload(); }); -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - async function test_applications_key_mv3() { - let warnings = await testManifest({ - manifest_version: 3, - applications: {}, - }); +add_task(async function test_applications_key_mv3() { + let warnings = await testManifest({ + manifest_version: 3, + applications: {}, + }); - Assert.deepEqual( - warnings, - [`Property "applications" is unsupported in Manifest Version 3`], - `Manifest v3 with "applications" key logs an error.` - ); - } -); + Assert.deepEqual( + warnings, + [`Property "applications" is unsupported in Manifest Version 3`], + `Manifest v3 with "applications" key logs an error.` + ); +}); add_task(async function test_bss_gecko_android() { const addonId = "some@id"; diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_manifest_content_security_policy.js b/toolkit/components/extensions/test/xpcshell/test_ext_manifest_content_security_policy.js @@ -2,7 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); AddonTestUtils.init(this); add_task(async function test_manifest_csp() { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_permission_warnings.js b/toolkit/components/extensions/test/xpcshell/test_ext_permission_warnings.js @@ -33,8 +33,6 @@ AddonTestUtils.overrideCertDB(); AddonTestUtils.usePrivilegedSignatures = id => id.startsWith("privileged"); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42"); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - async function getManifestPermissions(extensionData) { let extension = ExtensionTestCommon.generate(extensionData); // Some tests contain invalid permissions; ignore the warnings about their invalidity. diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts.js b/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts.js @@ -9,8 +9,6 @@ const BASE_URL = `http://localhost:${server.identity.primaryPort}/data`; // the right timeout for content scripts executed at document_idle. ExtensionTestUtils.mockAppInfo(); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { return ExtensionTestUtils.loadExtension({ manifest: { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_css.js b/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_css.js @@ -9,8 +9,6 @@ const BASE_URL = `http://localhost:${server.identity.primaryPort}/data`; // the right timeout for content scripts executed at document_idle. ExtensionTestUtils.mockAppInfo(); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { return ExtensionTestUtils.loadExtension({ manifest: { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_file.js b/toolkit/components/extensions/test/xpcshell/test_ext_scripting_contentScripts_file.js @@ -8,8 +8,6 @@ const FILE_DUMMY_URL = Services.io.newFileURI( // the right timeout for content scripts executed at document_idle. ExtensionTestUtils.mockAppInfo(); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { return ExtensionTestUtils.loadExtension({ manifest: { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_scripting_persistAcrossSessions.js b/toolkit/components/extensions/test/xpcshell/test_ext_scripting_persistAcrossSessions.js @@ -1,7 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - AddonTestUtils.init(this); AddonTestUtils.overrideCertDB(); AddonTestUtils.createAppInfo( diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_scripting_updateContentScripts.js b/toolkit/components/extensions/test/xpcshell/test_ext_scripting_updateContentScripts.js @@ -9,8 +9,6 @@ const BASE_URL = `http://localhost:${server.identity.primaryPort}/data`; // the right timeout for content scripts executed at document_idle. ExtensionTestUtils.mockAppInfo(); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const makeExtension = ({ manifest: manifestProps, ...otherProps }) => { return ExtensionTestUtils.loadExtension({ manifest: { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_secfetch.js b/toolkit/components/extensions/test/xpcshell/test_ext_secfetch.js @@ -2,8 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - // We don't normally allow localhost channels to be proxied, but this // is easier than updating all the certs and/or domains. Services.prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_simple.js b/toolkit/components/extensions/test/xpcshell/test_ext_simple.js @@ -30,25 +30,22 @@ add_task(async function test_simple() { await extension.unload(); }); -add_task(async function test_manifest_V3_disabled() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", false); +add_task(async function test_manifest_unsupported_version() { let extensionData = { manifest: { - manifest_version: 3, + manifest_version: 1, }, }; let extension = ExtensionTestUtils.loadExtension(extensionData); await Assert.rejects( extension.startup(), - /Unsupported manifest version: 3/, - "manifest V3 cannot be loaded" + /Property "manifest_version" is unsupported in Manifest Version 1/, + "manifest version 1 is rejected" ); - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); add_task(async function test_manifest_V3_enabled() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); let extensionData = { manifest: { manifest_version: 3, @@ -59,7 +56,6 @@ add_task(async function test_manifest_V3_enabled() { await extension.startup(); equal(extension.extension.manifest.manifest_version, 3, "manifest V3 loads"); await extension.unload(); - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); add_task(async function test_background() { @@ -152,7 +148,6 @@ add_task(async function test_policy_temporarilyInstalled() { }); add_task(async function test_manifest_allowInsecureRequests() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); let extensionData = { allowInsecureRequests: true, manifest: { @@ -168,11 +163,9 @@ add_task(async function test_manifest_allowInsecureRequests() { "insecure allowed" ); await extension.unload(); - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); add_task(async function test_manifest_allowInsecureRequests_throws() { - Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); let extensionData = { allowInsecureRequests: true, manifest: { @@ -188,7 +181,6 @@ add_task(async function test_manifest_allowInsecureRequests_throws() { /allowInsecureRequests cannot be used with manifest.content_security_policy/, "allowInsecureRequests with content_security_policy cannot be loaded" ); - Services.prefs.clearUserPref("extensions.manifestV3.enabled"); }); add_task(async function test_gecko_android_key_in_applications() { @@ -200,7 +192,6 @@ add_task(async function test_gecko_android_key_in_applications() { }, }, }); - ExtensionTestUtils.failOnSchemaWarnings(false); let { messages } = await promiseConsoleOutput(async () => { const { AddonManager } = ChromeUtils.importESModule( diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_wasm.js b/toolkit/components/extensions/test/xpcshell/test_ext_wasm.js @@ -2,8 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - // Common code snippet of background script in this test. function background() { globalThis.onsecuritypolicyviolation = event => { diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_eventPage_StreamFilter.js b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_eventPage_StreamFilter.js @@ -204,19 +204,14 @@ add_task( } ); -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - async function test_idletimeout_on_active_streamfilter_mv3() { - await test_idletimeout_on_streamfilter({ - manifest_version: 3, - requestUrlPath: "pending_request", - expectStreamFilterStop: false, - expectResetIdle: true, - }); - } -); +add_task(async function test_idletimeout_on_active_streamfilter_mv3() { + await test_idletimeout_on_streamfilter({ + manifest_version: 3, + requestUrlPath: "pending_request", + expectStreamFilterStop: false, + expectResetIdle: true, + }); +}); add_task( { @@ -232,19 +227,14 @@ add_task( } ); -add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, - async function test_idletimeout_on_inactive_streamfilter_mv3() { - await test_idletimeout_on_streamfilter({ - manifest_version: 3, - requestUrlPath: "completed_request", - expectStreamFilterStop: true, - expectResetIdle: false, - }); - } -); +add_task(async function test_idletimeout_on_inactive_streamfilter_mv3() { + await test_idletimeout_on_streamfilter({ + manifest_version: 3, + requestUrlPath: "completed_request", + expectStreamFilterStop: true, + expectResetIdle: false, + }); +}); async function test_create_new_streamfilter_while_suspending({ manifest_version, @@ -350,9 +340,6 @@ add_task( ); add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, async function test_error_creating_new_streamfilter_while_suspending_mv3() { await test_create_new_streamfilter_while_suspending({ manifest_version: 3, diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_mergecsp.js b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_mergecsp.js @@ -2,8 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - AddonTestUtils.init(this); AddonTestUtils.createAppInfo( "xpcshell@tests.mozilla.org", diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_restrictedHeaders.js b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_restrictedHeaders.js @@ -2,8 +2,6 @@ /* vim: set sts=2 sw=2 et tw=80: */ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - AddonTestUtils.init(this); AddonTestUtils.createAppInfo( "xpcshell@tests.mozilla.org", diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webSocket.js b/toolkit/components/extensions/test/xpcshell/test_ext_webSocket.js @@ -2,8 +2,6 @@ const HOSTS = new Set(["example.com"]); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: HOSTS }); const BASE_URL = `http://example.com`; diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_web_accessible_resources_matches.js b/toolkit/components/extensions/test/xpcshell/test_ext_web_accessible_resources_matches.js @@ -1,7 +1,5 @@ "use strict"; -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com", "example.org"] }); server.registerDirectory("/data/", do_get_file("data")); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_xhr_cors.js b/toolkit/components/extensions/test/xpcshell/test_ext_xhr_cors.js @@ -4,8 +4,6 @@ // similarly in MV2 and MV3, except for intentional differences related to // permission handling. -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); - const server = createHttpServer({ hosts: ["example.com", "example.net", "example.org"], }); diff --git a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs @@ -281,7 +281,6 @@ const DEFAULT_ENVIRONMENT_PREFS = new Map([ { what: RECORD_PREF_VALUE }, ], ["extensions.formautofill.creditCards.enabled", { what: RECORD_PREF_VALUE }], - ["extensions.manifestV3.enabled", { what: RECORD_PREF_VALUE }], ["extensions.quarantinedDomains.enabled", { what: RECORD_PREF_VALUE }], ["extensions.strictCompatibility", { what: RECORD_PREF_VALUE }], ["extensions.update.enabled", { what: RECORD_PREF_VALUE }], diff --git a/toolkit/components/telemetry/docs/data/environment.rst b/toolkit/components/telemetry/docs/data/environment.rst @@ -423,8 +423,6 @@ The following is a partial list of `collected preferences <https://searchfox.org - ``extensions.quarantinedDomains.enabled``: Whether "Quarantined Domains" is enabled. -- ``extensions.manifestV3.enabled``: Whether `"manifest_version": 3` extensions should be allowed to install successfully. - - ``media.gmp-gmpopenh264.enabled``: Whether OpenH264 is enabled. - ``media.gmp-gmpopenh264.lastDownload``: When OpenH264 was last downloaded as seconds since Jan 1, 1970. diff --git a/toolkit/modules/Troubleshoot.sys.mjs b/toolkit/modules/Troubleshoot.sys.mjs @@ -65,7 +65,6 @@ const PREFS_FOR_DISPLAY = [ "extensions.eventPages.enabled", "extensions.formautofill.", "extensions.lastAppVersion", - "extensions.manifestV3.enabled", "extensions.quarantinedDomains.enabled", "extensions.InstallTrigger.enabled", "fission.autostart", diff --git a/toolkit/mozapps/extensions/content/aboutaddons.js b/toolkit/mozapps/extensions/content/aboutaddons.js @@ -31,12 +31,6 @@ ChromeUtils.defineESModuleGetters(this, { recordListItemManageTelemetry: "chrome://global/content/ml/Utils.sys.mjs", }); -XPCOMUtils.defineLazyPreferenceGetter( - this, - "manifestV3enabled", - "extensions.manifestV3.enabled" -); - const UPDATES_RECENT_TIMESPAN = 2 * 24 * 3600000; // 2 days (in milliseconds) XPCOMUtils.defineLazyPreferenceGetter( @@ -1994,23 +1988,21 @@ class AddonPermissionsList extends HTMLElement { let optionalPerms = { ...(this.addon.optionalPermissions ?? empty) }; let grantedPerms = await ExtensionPermissions.get(this.addon.id); - if (manifestV3enabled) { - // If optional permissions include <all_urls>, extension can request and - // be granted permission for individual sites not listed in the manifest. - // Include them as well in the optional origins list. - let origins = [ - ...(this.addon.optionalOriginsNormalized ?? []), - ...grantedPerms.origins.filter(o => !requiredPerms.origins.includes(o)), - ]; - optionalPerms.origins = [...new Set(origins)]; - } + // If optional permissions include <all_urls>, extension can request and + // be granted permission for individual sites not listed in the manifest. + // Include them as well in the optional origins list. + let origins = [ + ...(this.addon.optionalOriginsNormalized ?? []), + ...grantedPerms.origins.filter(o => !requiredPerms.origins.includes(o)), + ]; + optionalPerms.origins = [...new Set(origins)]; let permissions = Extension.formatPermissionStrings( { permissions: requiredPerms, optionalPermissions: optionalPerms, }, - { buildOptionalOrigins: manifestV3enabled } + { buildOptionalOrigins: true } ); let optionalEntries = [ ...Object.entries(permissions.optionalPermissions), diff --git a/toolkit/mozapps/extensions/test/browser/browser_html_detail_permissions.js b/toolkit/mozapps/extensions/test/browser/browser_html_detail_permissions.js @@ -523,15 +523,7 @@ async function runTest(options) { } } -async function testPermissionsView({ - manifestV3enabled, - manifest_version, - expectGranted, -}) { - await SpecialPowers.pushPrefEnv({ - set: [["extensions.manifestV3.enabled", manifestV3enabled]], - }); - +async function testPermissionsView({ manifest_version, expectGranted }) { // pre-set a permission prior to starting extensions. await ExtensionPermissions.add("addon4@mochi.test", { permissions: ["tabs"], @@ -569,7 +561,7 @@ async function testPermissionsView({ info("Check add-on with only one optional origin."); await runTest({ extension: extensions["addon2@mochi.test"], - optional_permissions: manifestV3enabled ? ["http://mochi.test/*"] : [], + optional_permissions: ["http://mochi.test/*"], optional_strings: { "http://mochi.test/*": "Access your data for http://mochi.test", }, @@ -596,7 +588,7 @@ async function testPermissionsView({ optional_permissions: [ "webNavigation", "<all_urls>", - ...(manifestV3enabled ? ["https://example.com/*"] : []), + "https://example.com/*", ], optional_enabled: ["https://example.com/*"], optional_strings: { @@ -620,10 +612,7 @@ async function testPermissionsView({ info("Check privileged add-on with non-web origin permissions"); await runTest({ extension: extensions["priv6@mochi.test"], - optional_permissions: [ - "<all_urls>", - ...(manifestV3enabled ? ["*://*.mozilla.com/*"] : []), - ], + optional_permissions: ["<all_urls>", "*://*.mozilla.com/*"], optional_overlapping: ["<all_urls>", "*://*/*"], optional_strings: { "*://*.mozilla.com/*": @@ -653,12 +642,8 @@ async function testPermissionsView({ await SpecialPowers.popPrefEnv(); } -add_task(async function testPermissionsView_MV2_manifestV3disabled() { - await testPermissionsView({ manifestV3enabled: false, manifest_version: 2 }); -}); - -add_task(async function testPermissionsView_MV2_manifestV3enabled() { - await testPermissionsView({ manifestV3enabled: true, manifest_version: 2 }); +add_task(async function testPermissionsView_MV2() { + await testPermissionsView({ manifest_version: 2 }); }); add_task(async function testPermissionsView_MV3_noInstallPrompt() { @@ -666,7 +651,6 @@ add_task(async function testPermissionsView_MV3_noInstallPrompt() { set: [["extensions.originControls.grantByDefault", false]], }); await testPermissionsView({ - manifestV3enabled: true, manifest_version: 3, expectGranted: false, }); @@ -678,7 +662,6 @@ add_task(async function testPermissionsView_MV3() { set: [["extensions.originControls.grantByDefault", true]], }); await testPermissionsView({ - manifestV3enabled: true, manifest_version: 3, expectGranted: true, }); diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js b/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js @@ -79,9 +79,6 @@ add_task(async function test_hidden() { }); add_task( - { - pref_set: [["extensions.manifestV3.enabled", true]], - }, async function test_hidden_and_browser_action_props_are_mutually_exclusive() { const TEST_CASES = [ { diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_installOrigins.js b/toolkit/mozapps/extensions/test/xpcshell/test_installOrigins.js @@ -17,10 +17,8 @@ AddonTestUtils.createAppInfo( "42" ); -Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); // This pref is not set in Thunderbird, and needs to be true for the test to pass. Services.prefs.setBoolPref("extensions.postDownloadThirdPartyPrompt", true); - let server = AddonTestUtils.createHttpServer({ hosts: ["example.com", "example.org", "amo.example.com", "github.io"], });