summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js
new file mode 100644
index 0000000..81a4061
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scheme/resource.js
@@ -0,0 +1,43 @@
+/*jshint asi:true globalstrict:true*/
+'use strict';
+
+const { Cc, Ci } = require('chrome')
+const ioService = Cc['@mozilla.org/network/io-service;1'].
+ getService(Ci.nsIIOService);
+const resourceHandler = ioService.getProtocolHandler('resource').
+ QueryInterface(Ci.nsIResProtocolHandler)
+
+function get(root) {
+ /**
+ Gets the substitution for the `root` key.
+ **/
+ try {
+ return resourceHandler.getSubstitution(root).spec;
+ }
+ catch (error) {}
+ return null;
+}
+exports.get = get;
+
+function has(root) {
+ /**
+ Returns `true` if the substitution exists and `false` otherwise.
+ **/
+ return resourceHandler.hasSubstitution(root);
+}
+exports.has = has;
+
+function set(root, uri) {
+ /**
+ Sets the substitution for the root key:
+
+ resource://root/path ==> baseURI.resolve(path)
+
+ A `null` `uri` removes substitution. A root key should
+ always be lowercase. However, this may not be enforced.
+ **/
+ uri = !uri ? null :
+ uri instanceof Ci.nsIURI ? uri : ioService.newURI(uri, null, null);
+ resourceHandler.setSubstitution(root, uri);
+}
+exports.set = set;