Skip to content

Commit 8d43a8a

Browse files
committed
feat: way to not load first party deprecated extensions
1 parent 97ca88c commit 8d43a8a

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

src/extensibility/ExtensionManagerViewModel.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ define(function (require, exports, module) {
2626

2727
var _ = require("thirdparty/lodash");
2828

29-
var ExtensionManager = require("extensibility/ExtensionManager"),
30-
registry_utils = require("extensibility/registry_utils"),
31-
EventDispatcher = require("utils/EventDispatcher"),
32-
Strings = require("strings"),
33-
PreferencesManager = require("preferences/PreferencesManager");
29+
const ExtensionManager = require("extensibility/ExtensionManager"),
30+
registry_utils = require("extensibility/registry_utils"),
31+
EventDispatcher = require("utils/EventDispatcher"),
32+
Strings = require("strings"),
33+
PreferencesManager = require("preferences/PreferencesManager"),
34+
DefaultExtensions = JSON.parse(require("text!extensions/default/DefaultExtensions.json")),
35+
dontLoadExtensionIDs = new Set(DefaultExtensions.dontLoadExtensions.extensionIDs);
3436

3537
/**
3638
* @private
@@ -307,6 +309,9 @@ define(function (require, exports, module) {
307309
return entry.registryInfo && entry.registryInfo.metadata.theme;
308310

309311
})
312+
.filter(function (entry) {
313+
return !dontLoadExtensionIDs.has(entry.registryInfo.metadata.name);
314+
})
310315
.map(function (entry) {
311316
return entry.registryInfo.metadata.name;
312317
});
@@ -555,6 +560,9 @@ define(function (require, exports, module) {
555560
.filter(function (key) {
556561
return self.extensions[key].installInfo &&
557562
self.extensions[key].installInfo.locationType === ExtensionManager.LOCATION_DEFAULT;
563+
})
564+
.filter(function (key) {
565+
return !dontLoadExtensionIDs.has(key);
558566
});
559567
this._sortFullSet();
560568
this._setInitialFilter();

src/utils/ExtensionLoader.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ define(function (require, exports, module) {
5757
DefaultExtensions = JSON.parse(require("text!extensions/default/DefaultExtensions.json"));
5858

5959
const desktopOnlyExtensions = DefaultExtensions.desktopOnly;
60+
const dontLoadExtensionIDs = new Set(DefaultExtensions.dontLoadExtensions.extensionIDs);
6061
const DefaultExtensionsList = Phoenix.isNativeApp ?
6162
[...DefaultExtensions.defaultExtensionsList, ...desktopOnlyExtensions]:
6263
DefaultExtensions.defaultExtensionsList;
@@ -420,6 +421,11 @@ define(function (require, exports, module) {
420421
if (metadata && metadata.theme) {
421422
return;
422423
}
424+
if (dontLoadExtensionIDs.has(metadata.name)) {
425+
logger.leaveTrail("skipping extension in dontLoadExtensions list: " + metadata.name);
426+
console.warn("skipping extension in dontLoadExtensions list: " + metadata.name);
427+
return new $.Deferred().reject("disabled").promise();
428+
}
423429

424430
if (!metadata.disabled) {
425431
return loadExtensionModule(name, config, entryPoint, metadata);

0 commit comments

Comments
 (0)