mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 16:58:38 +09:00
Rename Toolkit's webextensions component directory to better reflect what it is.
This commit is contained in:
parent
6955450f7a
commit
d7d16e7fbb
242 changed files with 4 additions and 2 deletions
|
|
@ -1,109 +0,0 @@
|
|||
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "strBundle", function() {
|
||||
const stringSvc = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
|
||||
return stringSvc.createBundle("chrome://global/locale/extensions.properties");
|
||||
});
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
|
||||
"resource://gre/modules/AddonManager.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "promptService",
|
||||
"@mozilla.org/embedcomp/prompt-service;1",
|
||||
"nsIPromptService");
|
||||
|
||||
function _(key, ...args) {
|
||||
if (args.length) {
|
||||
return strBundle.formatStringFromName(key, args, args.length);
|
||||
}
|
||||
return strBundle.GetStringFromName(key);
|
||||
}
|
||||
|
||||
function installType(addon) {
|
||||
if (addon.temporarilyInstalled) {
|
||||
return "development";
|
||||
} else if (addon.foreignInstall) {
|
||||
return "sideload";
|
||||
} else if (addon.isSystem) {
|
||||
return "other";
|
||||
}
|
||||
return "normal";
|
||||
}
|
||||
|
||||
extensions.registerSchemaAPI("management", "addon_parent", context => {
|
||||
let {extension} = context;
|
||||
return {
|
||||
management: {
|
||||
getSelf: function() {
|
||||
return new Promise((resolve, reject) => AddonManager.getAddonByID(extension.id, addon => {
|
||||
try {
|
||||
let m = extension.manifest;
|
||||
let extInfo = {
|
||||
id: extension.id,
|
||||
name: addon.name,
|
||||
shortName: m.short_name || "",
|
||||
description: addon.description || "",
|
||||
version: addon.version,
|
||||
mayDisable: !!(addon.permissions & AddonManager.PERM_CAN_DISABLE),
|
||||
enabled: addon.isActive,
|
||||
optionsUrl: addon.optionsURL || "",
|
||||
permissions: Array.from(extension.permissions).filter(perm => {
|
||||
return !extension.whiteListedHosts.pat.includes(perm);
|
||||
}),
|
||||
hostPermissions: extension.whiteListedHosts.pat,
|
||||
installType: installType(addon),
|
||||
};
|
||||
if (addon.homepageURL) {
|
||||
extInfo.homepageUrl = addon.homepageURL;
|
||||
}
|
||||
if (addon.updateURL) {
|
||||
extInfo.updateUrl = addon.updateURL;
|
||||
}
|
||||
if (m.icons) {
|
||||
extInfo.icons = Object.keys(m.icons).map(key => {
|
||||
return {size: Number(key), url: m.icons[key]};
|
||||
});
|
||||
}
|
||||
|
||||
resolve(extInfo);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
}));
|
||||
},
|
||||
|
||||
uninstallSelf: function(options) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (options && options.showConfirmDialog) {
|
||||
let message = _("uninstall.confirmation.message", extension.name);
|
||||
if (options.dialogMessage) {
|
||||
message = `${options.dialogMessage}\n${message}`;
|
||||
}
|
||||
let title = _("uninstall.confirmation.title", extension.name);
|
||||
let buttonFlags = promptService.BUTTON_POS_0 * promptService.BUTTON_TITLE_IS_STRING +
|
||||
promptService.BUTTON_POS_1 * promptService.BUTTON_TITLE_IS_STRING;
|
||||
let button0Title = _("uninstall.confirmation.button-0.label");
|
||||
let button1Title = _("uninstall.confirmation.button-1.label");
|
||||
let response = promptService.confirmEx(null, title, message, buttonFlags, button0Title, button1Title, null, null, {value: 0});
|
||||
if (response == 1) {
|
||||
return reject({message: "User cancelled uninstall of extension"});
|
||||
}
|
||||
}
|
||||
AddonManager.getAddonByID(extension.id, addon => {
|
||||
let canUninstall = Boolean(addon.permissions & AddonManager.PERM_CAN_UNINSTALL);
|
||||
if (!canUninstall) {
|
||||
return reject({message: "The add-on cannot be uninstalled"});
|
||||
}
|
||||
try {
|
||||
addon.uninstall();
|
||||
} catch (err) {
|
||||
return reject(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue