Skip to content

Commit f8638a4

Browse files
mr-cheffyRob--W
authored andcommitted
Bug 1943057 - Remove extensions.userScripts.mv3.enabled pref r=extension-reviewers,robwu
Differential Revision: https://phabricator.services.mozilla.com/D258824
1 parent 8a42bef commit f8638a4

11 files changed

+1
-129
lines changed

modules/libpref/init/all.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3136,9 +3136,6 @@ pref("extensions.originControls.grantByDefault", true);
31363136
// unless other process sandboxing and extension remoting prefs are changed.
31373137
pref("extensions.webextensions.protocol.remote", true);
31383138

3139-
// Enable userScripts API by default.
3140-
pref("extensions.userScripts.mv3.enabled", true);
3141-
31423139
// Whether or not the installed extensions should be migrated to the storage.local IndexedDB backend.
31433140
pref("extensions.webextensions.ExtensionStorageIDB.enabled", true);
31443141

toolkit/components/extensions/Extension.sys.mjs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,6 @@ const lazy = XPCOMUtils.declareLazy({
9393

9494
dnrEnabled: { pref: "extensions.dnr.enabled", default: true },
9595

96-
// All functionality is gated by the "userScripts" permission, and forgetting
97-
// about its existence is enough to hide all userScripts functionality.
98-
// MV3 userScripts API in development (bug 1875475), off by default.
99-
// Not to be confused with MV2 and extensions.webextensions.userScripts.enabled!
100-
userScriptsMV3Enabled: {
101-
pref: "extensions.userScripts.mv3.enabled",
102-
default: false,
103-
},
104-
10596
// This pref modifies behavior for MV2. MV3 is enabled regardless.
10697
eventPagesEnabled: { pref: "extensions.eventPages.enabled", default: true },
10798

@@ -345,8 +336,6 @@ function classifyPermission(perm, restrictSchemes, isPrivileged) {
345336
return { invalid: perm, privileged: true };
346337
} else if (perm.startsWith("declarativeNetRequest") && !lazy.dnrEnabled) {
347338
return { invalid: perm };
348-
} else if (perm === "userScripts" && !lazy.userScriptsMV3Enabled) {
349-
return { invalid: perm };
350339
}
351340
return { permission: perm };
352341
}
@@ -2085,12 +2074,6 @@ export class ExtensionData {
20852074
}
20862075

20872076
const shouldIgnorePermission = (perm, verbose = true) => {
2088-
if (perm === "userScripts" && !lazy.userScriptsMV3Enabled) {
2089-
if (verbose) {
2090-
this.manifestWarning(`Unavailable extension permission: ${perm}`);
2091-
}
2092-
return true;
2093-
}
20942077
if (isMV2 && PERMS_NOT_IN_MV2.has(perm)) {
20952078
if (verbose) {
20962079
this.manifestWarning(

toolkit/components/extensions/test/xpcshell/test_ext_permissions_optional_only.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@ add_setup(async () => {
3636

3737
await AddonTestUtils.promiseStartupManager();
3838
AddonTestUtils.usePrivilegedSignatures = false;
39-
40-
// "userScripts" can only be in optional_permissions when supported:
41-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
4239
});
4340

4441
// Test that an optional-only permission in the "permissions" array is not

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_availability.js

Lines changed: 0 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ async function grantUserScriptsPermission(extensionId) {
4545
});
4646
}
4747

48-
add_setup(() => {
49-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
50-
});
51-
5248
// Test that manifest.user_scripts does not expose a userScripts API in MV3.
5349
add_task(async function legacy_userScripts_unavailable_in_mv3() {
5450
let extension = ExtensionTestUtils.loadExtension({
@@ -405,92 +401,6 @@ add_task(async function legacy_userScripts_plus_userScripts_permission_mv3() {
405401
await extension.unload();
406402
});
407403

408-
async function do_test_userScripts_permission_unavailable(manifest_version) {
409-
const extensionId = `@permission_disabled_by_pref_mv${manifest_version}`;
410-
await grantUserScriptsPermission(extensionId);
411-
let extension = ExtensionTestUtils.loadExtension({
412-
manifest: {
413-
browser_specific_settings: { gecko: { id: extensionId } },
414-
manifest_version,
415-
optional_permissions: ["userScripts"],
416-
},
417-
background() {
418-
browser.test.assertEq(
419-
undefined,
420-
browser.userScripts,
421-
"userScripts API unavailable when off by pref"
422-
);
423-
browser.test.sendMessage("bg_done");
424-
},
425-
});
426-
await extension.startup();
427-
await extension.awaitMessage("bg_done");
428-
429-
Assert.deepEqual(
430-
extension.extension.warnings,
431-
["Reading manifest: Unavailable extension permission: userScripts"],
432-
"userScripts permission unavailable when off by pref"
433-
);
434-
435-
await extension.unload();
436-
}
437-
438-
add_task(
439-
{ pref_set: [["extensions.userScripts.mv3.enabled", false]] },
440-
async function userScripts_permission_disabled_by_pref_mv2() {
441-
// The only difference compared to pref on is that the warning is about an
442-
// invalid extension permission, instead of requiring MV3.
443-
await do_test_userScripts_permission_unavailable(2);
444-
}
445-
);
446-
447-
add_task(
448-
{ pref_set: [["extensions.userScripts.mv3.enabled", false]] },
449-
async function userScripts_permission_disabled_by_pref_mv3() {
450-
await do_test_userScripts_permission_unavailable(3);
451-
}
452-
);
453-
454-
add_task(
455-
{
456-
pref_set: [
457-
["extensions.userScripts.mv3.enabled", false],
458-
["extensions.webextOptionalPermissionPrompts", false],
459-
[
460-
// This pref controls the Cu.isInAutomation flag that is needed to use
461-
// browser.test.withHandlingUserInput in xpcshell tests (bug 1598804):
462-
"security.turn_off_all_security_so_that_viruses_can_take_over_this_computer",
463-
true,
464-
],
465-
],
466-
},
467-
async function reject_userScripts_permission_request_when_disabled_by_pref() {
468-
let extension = ExtensionTestUtils.loadExtension({
469-
manifest: {
470-
manifest_version: 3,
471-
optional_permissions: ["userScripts"],
472-
},
473-
async background() {
474-
let prom;
475-
browser.test.withHandlingUserInput(() => {
476-
prom = browser.permissions.request({ permissions: ["userScripts"] });
477-
});
478-
await browser.test.assertRejects(
479-
prom,
480-
"Cannot request permission userScripts since it was not declared in optional_permissions",
481-
"userScripts permission cannot be requested when off by pref"
482-
);
483-
browser.test.assertEq(undefined, browser.userScripts, "No API please");
484-
browser.test.sendMessage("done");
485-
},
486-
});
487-
488-
await extension.startup();
489-
await extension.awaitMessage("done");
490-
await extension.unload();
491-
}
492-
);
493-
494404
add_task(
495405
{
496406
pref_set: [

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_csp.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ AddonTestUtils.init(this);
1717
AddonTestUtils.overrideCertDB();
1818

1919
add_setup(async () => {
20-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
21-
2220
// Grant "userScripts" permission via permissions.request() without UI.
2321
Services.prefs.setBoolPref(
2422
"extensions.webextOptionalPermissionPrompts",

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_injection.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ async function collectResults(contentPage) {
4747
}
4848

4949
add_setup(async () => {
50-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
5150
await ExtensionTestUtils.startAddonManager();
5251
});
5352

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_messaging.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ async function grantUserScriptsPermission(extensionId) {
2828
}
2929

3030
add_setup(async () => {
31-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
3231
await ExtensionTestUtils.startAddonManager();
3332
});
3433

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_persistence.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ function loadTestExtension({ background }) {
3838
}
3939

4040
add_setup(async () => {
41-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
4241
await ExtensionTestUtils.startAddonManager();
4342
});
4443

toolkit/components/extensions/test/xpcshell/test_ext_userScripts_mv3_worlds.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ async function spawnPage(spawnFunc) {
2929
}
3030

3131
add_setup(async () => {
32-
Services.prefs.setBoolPref("extensions.userScripts.mv3.enabled", true);
3332
await ExtensionTestUtils.startAddonManager();
3433
});
3534

toolkit/mozapps/extensions/test/browser/browser_html_detail_permissions_userScripts.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ AddonTestUtils.initMochitest(this);
1313

1414
add_setup(async () => {
1515
await SpecialPowers.pushPrefEnv({
16-
set: [
17-
["extensions.userScripts.mv3.enabled", true],
18-
["extensions.dataCollectionPermissions.enabled", true],
19-
],
16+
set: [["extensions.dataCollectionPermissions.enabled", true]],
2017
});
2118
});
2219

0 commit comments

Comments
 (0)