зеркало из https://github.com/mozilla/gecko-dev.git
bug 1282977 handle developer in manifest r=kmag
MozReview-Commit-ID: BsGflddsodd --HG-- extra : rebase_source : 829a633f0e2d11d2f6f48e233bf91079ecb84b87
This commit is contained in:
Родитель
ca5051d9c8
Коммит
69bfe48899
|
@ -58,7 +58,7 @@
|
|||
"preprocess": "localize"
|
||||
},
|
||||
|
||||
"creator": {
|
||||
"author": {
|
||||
"type": "string",
|
||||
"optional": true,
|
||||
"preprocess": "localize"
|
||||
|
@ -180,7 +180,25 @@
|
|||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"optional": true
|
||||
},
|
||||
|
||||
"developer": {
|
||||
"type": "object",
|
||||
"optional": true,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"optional": true,
|
||||
"preprocess": "localize"
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"optional": true,
|
||||
"preprocess": "localize"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
"additionalProperties": { "$ref": "UnrecognizedProperty" }
|
||||
|
|
|
@ -976,11 +976,24 @@ var loadManifestFromWebManifest = Task.async(function*(aUri) {
|
|||
// localization placeholders still in place.
|
||||
let rawManifest = extension.rawManifest;
|
||||
|
||||
let creator = rawManifest.author;
|
||||
let homepageURL = rawManifest.homepage_url;
|
||||
|
||||
// Allow developer to override creator and homepage_url.
|
||||
if (rawManifest.developer) {
|
||||
if (rawManifest.developer.name) {
|
||||
creator = rawManifest.developer.name;
|
||||
}
|
||||
if (rawManifest.developer.url) {
|
||||
homepageURL = rawManifest.developer.url;
|
||||
}
|
||||
}
|
||||
|
||||
let result = {
|
||||
name: extension.localize(rawManifest.name, aLocale),
|
||||
description: extension.localize(rawManifest.description, aLocale),
|
||||
creator: extension.localize(rawManifest.creator, aLocale),
|
||||
homepageURL: extension.localize(rawManifest.homepage_url, aLocale),
|
||||
creator: extension.localize(creator, aLocale),
|
||||
homepageURL: extension.localize(homepageURL, aLocale),
|
||||
|
||||
developers: null,
|
||||
translators: null,
|
||||
|
|
|
@ -19,11 +19,11 @@ const { GlobalManager, Management } = Components.utils.import("resource://gre/mo
|
|||
function promiseAddonStartup() {
|
||||
return new Promise(resolve => {
|
||||
let listener = (evt, extension) => {
|
||||
Management.off("startup", listener);
|
||||
Management.off("ready", listener);
|
||||
resolve(extension);
|
||||
};
|
||||
|
||||
Management.on("startup", listener);
|
||||
Management.on("ready", listener);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -353,3 +353,52 @@ add_task(function* test_experiments_api() {
|
|||
|
||||
addon.uninstall();
|
||||
});
|
||||
|
||||
add_task(function* developerShouldOverride() {
|
||||
let addon = yield promiseInstallWebExtension({
|
||||
manifest: {
|
||||
default_locale: "en",
|
||||
developer: {
|
||||
name: "__MSG_name__",
|
||||
url: "__MSG_url__"
|
||||
},
|
||||
author: "Will be overridden by developer",
|
||||
homepage_url: "https://will.be.overridden",
|
||||
},
|
||||
files: {
|
||||
"_locales/en/messages.json": `{
|
||||
"name": {
|
||||
"message": "en name"
|
||||
},
|
||||
"url": {
|
||||
"message": "https://example.net/en"
|
||||
}
|
||||
}`
|
||||
}
|
||||
});
|
||||
|
||||
addon = yield promiseAddonByID(addon.id);
|
||||
equal(addon.creator, "en name");
|
||||
equal(addon.homepageURL, "https://example.net/en");
|
||||
addon.uninstall();
|
||||
});
|
||||
|
||||
add_task(function* developerEmpty() {
|
||||
for (let developer of [{}, null, {name: null, url: null}]) {
|
||||
let addon = yield promiseInstallWebExtension({
|
||||
manifest: {
|
||||
author: "Some author",
|
||||
developer: developer,
|
||||
homepage_url: "https://example.net",
|
||||
manifest_version: 2,
|
||||
name: "Web Extension Name",
|
||||
version: "1.0",
|
||||
}
|
||||
});
|
||||
|
||||
addon = yield promiseAddonByID(addon.id);
|
||||
equal(addon.creator, "Some author");
|
||||
equal(addon.homepageURL, "https://example.net");
|
||||
addon.uninstall();
|
||||
}
|
||||
});
|
Загрузка…
Ссылка в новой задаче