Bug 1385864 - Drop invalid optional_permissions from manifests r?kmag
MozReview-Commit-ID: Df2wjNOTVkF
--- a/toolkit/components/extensions/schemas/manifest.json
+++ b/toolkit/components/extensions/schemas/manifest.json
@@ -172,23 +172,18 @@
"onError": "warn"
},
"optional": true
},
"optional_permissions": {
"type": "array",
"items": {
- "choices": [
- { "$ref": "OptionalPermission" },
- {
- "type": "string",
- "deprecated": "Unknown optional permission ${value}"
- }
- ]
+ "$ref": "OptionalPermission",
+ "onError": "warn"
},
"optional": true,
"default": []
},
"web_accessible_resources": {
"type": "array",
"items": { "type": "string" },
--- a/toolkit/components/extensions/test/xpcshell/test_ext_unknown_permissions.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_unknown_permissions.js
@@ -4,27 +4,36 @@ add_task(async function test_unknown_per
let extension = ExtensionTestUtils.loadExtension({
manifest: {
permissions: [
"activeTab",
"fooUnknownPermission",
"http://*/",
"chrome://favicon/",
],
+ optional_permissions: [
+ "chrome://favicon/",
+ "https://example.com/",
+ ],
},
});
let {messages} = await promiseConsoleOutput(
() => extension.startup());
const {WebExtensionPolicy} = Cu.import("resource://gre/modules/Extension.jsm", {});
let policy = WebExtensionPolicy.getByID(extension.id);
Assert.deepEqual(Array.from(policy.permissions).sort(), ["activeTab", "http://*/*"]);
+ Assert.deepEqual(extension.extension.manifest.optional_permissions, ["https://example.com/"]);
+
ok(messages.some(message => /Error processing permissions\.1: Value "fooUnknownPermission" must/.test(message)),
'Got expected error for "fooUnknownPermission"');
ok(messages.some(message => /Error processing permissions\.3: Value "chrome:\/\/favicon\/" must/.test(message)),
'Got expected error for "chrome://favicon/"');
+ ok(messages.some(message => /Error processing optional_permissions\.0: Value "chrome:\/\/favicon\/" must/.test(message)),
+ "Got expected error from optional_permissions");
+
await extension.unload();
});