Bug 1269294 - Prevent add-on install from add-ons manager if xpinstall disabled and locked. r=aswan

MozReview-Commit-ID: 7Mtk5eFdyP

--HG--
extra : rebase_source : d8ae8491fbe3f5a62965d8c807cbafa2694c49e4
This commit is contained in:
Michael Kaply 2018-03-05 10:53:43 -06:00
Родитель ff4a47d56e
Коммит d5b10c0516
1 изменённых файлов: 14 добавлений и 6 удалений

Просмотреть файл

@ -38,13 +38,14 @@ XPCOMUtils.defineLazyPreferenceGetter(this, "WEBEXT_PERMISSION_PROMPTS",
"extensions.webextPermissionPrompts", false); "extensions.webextPermissionPrompts", false);
XPCOMUtils.defineLazyPreferenceGetter(this, "ALLOW_NON_MPC", XPCOMUtils.defineLazyPreferenceGetter(this, "ALLOW_NON_MPC",
"extensions.allow-non-mpc-extensions", true); "extensions.allow-non-mpc-extensions", true);
XPCOMUtils.defineLazyPreferenceGetter(this, "XPINSTALL_ENABLED",
"xpinstall.enabled", true);
XPCOMUtils.defineLazyPreferenceGetter(this, "SUPPORT_URL", "app.support.baseURL", XPCOMUtils.defineLazyPreferenceGetter(this, "SUPPORT_URL", "app.support.baseURL",
"", null, val => Services.urlFormatter.formatURL(val)); "", null, val => Services.urlFormatter.formatURL(val));
const PREF_DISCOVERURL = "extensions.webservice.discoverURL"; const PREF_DISCOVERURL = "extensions.webservice.discoverURL";
const PREF_DISCOVER_ENABLED = "extensions.getAddons.showPane"; const PREF_DISCOVER_ENABLED = "extensions.getAddons.showPane";
const PREF_XPI_ENABLED = "xpinstall.enabled";
const PREF_GETADDONS_CACHE_ENABLED = "extensions.getAddons.cache.enabled"; const PREF_GETADDONS_CACHE_ENABLED = "extensions.getAddons.cache.enabled";
const PREF_GETADDONS_CACHE_ID_ENABLED = "extensions.%ID%.getAddons.cache.enabled"; const PREF_GETADDONS_CACHE_ID_ENABLED = "extensions.%ID%.getAddons.cache.enabled";
const PREF_UI_TYPE_HIDDEN = "extensions.ui.%TYPE%.hidden"; const PREF_UI_TYPE_HIDDEN = "extensions.ui.%TYPE%.hidden";
@ -164,6 +165,10 @@ function initialize(event) {
Services.obs.addObserver(sendEMPong, "EM-ping"); Services.obs.addObserver(sendEMPong, "EM-ping");
Services.obs.notifyObservers(window, "EM-loaded"); Services.obs.notifyObservers(window, "EM-loaded");
if (!XPINSTALL_ENABLED) {
document.getElementById("cmd_installFromFile").hidden = true;
}
// If the initial view has already been selected (by a call to loadView from // If the initial view has already been selected (by a call to loadView from
// the above notifications) then bail out now // the above notifications) then bail out now
if (gViewController.initialViewSelected) if (gViewController.initialViewSelected)
@ -270,10 +275,9 @@ function isDiscoverEnabled() {
return false; return false;
} catch (e) {} } catch (e) {}
try { if (!XPINSTALL_ENABLED) {
if (!Services.prefs.getBoolPref(PREF_XPI_ENABLED)) return false;
return false; }
} catch (e) {}
return true; return true;
} }
@ -1315,7 +1319,7 @@ var gViewController = {
cmd_installFromFile: { cmd_installFromFile: {
isEnabled() { isEnabled() {
return true; return XPINSTALL_ENABLED;
}, },
doCommand() { doCommand() {
const nsIFilePicker = Ci.nsIFilePicker; const nsIFilePicker = Ci.nsIFilePicker;
@ -3620,6 +3624,10 @@ var gUpdatesView = {
var gDragDrop = { var gDragDrop = {
onDragOver(aEvent) { onDragOver(aEvent) {
if (!XPINSTALL_ENABLED) {
aEvent.dataTransfer.effectAllowed = "none";
return;
}
var types = aEvent.dataTransfer.types; var types = aEvent.dataTransfer.types;
if (types.includes("text/uri-list") || if (types.includes("text/uri-list") ||
types.includes("text/x-moz-url") || types.includes("text/x-moz-url") ||