summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js
new file mode 100644
index 0000000..681dcd9
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/aom/provider.js
@@ -0,0 +1,52 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+'use strict';
+
+const unload = require("sdk/system/unload").when;
+
+const {AddonManager, AddonManagerPrivate, AddonType} = require("../utils/addonmanager");
+
+var defaultUIPriority = 6001; // this increases when it is used
+
+exports.AddonProvider = function(options) {
+ var types = null;
+
+ // AddonManagerPrivate.AddonType DNE in Gecko (FF) < 6
+ if (AddonType) {
+ types = [new AddonType(
+ options.type, // TODO: RANDOMIZE?
+ null,
+ options.localeKey,
+ AddonManager.VIEW_TYPE_LIST,
+ options.uiPriority || defaultUIPriority++)];
+ }
+
+ var provider = {
+ getAddonByID: function(aId, aCallback) {
+ aCallback(options.getAddonByID(aId));
+ },
+
+ getAddonsByTypes: function(aTypes, aCallback) {
+ if (aTypes && aTypes.indexOf(options.type) < 0) {
+ // not the right type, return nothing
+ aCallback([]);
+ }
+ else {
+ // the right type, return all addons
+ aCallback(options.getAddons());
+ }
+ },
+
+ getInstallsByTypes: function(aTypes, aCallback) {
+ aCallback([]);
+ }
+ };
+ AddonManagerPrivate.registerProvider(provider, types);
+
+ unload(function() {
+ AddonManagerPrivate.unregisterProvider(provider);
+ });
+
+ return this;
+};