aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.12/lib/sdk/self.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/self.js')
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/self.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/self.js b/tools/addon-sdk-1.12/lib/sdk/self.js
new file mode 100644
index 0000000..f9fca1e
--- /dev/null
+++ b/tools/addon-sdk-1.12/lib/sdk/self.js
@@ -0,0 +1,36 @@
+/* vim:st=2:sts=2:sw=2:
+ * 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 { CC } = require('chrome');
+const { id, name, prefixURI, rootURI,
+ version, loadReason } = require('@loader/options');
+
+const { readURISync } = require('./net/url');
+
+const addonDataURI = prefixURI + name + '/data/';
+
+function uri(path) {
+ return addonDataURI + (path || '');
+}
+
+
+// Some XPCOM APIs require valid URIs as an argument for certain operations
+// (see `nsILoginManager` for example). This property represents add-on
+// associated unique URI string that can be used for that.
+exports.uri = 'addon:' + id;
+exports.id = id;
+exports.name = name;
+exports.loadReason = loadReason;
+exports.version = version;
+// If `rootURI` is jar:file://...!/ than add-on is packed.
+exports.packed = rootURI.indexOf('jar:') === 0
+exports.data = Object.freeze({
+ url: uri,
+ load: function read(path) {
+ return readURISync(uri(path));
+ }
+});