Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

SDK API for registering new resource URIs

View resource.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
/*jshint asi:true globalstrict:true*/
 
'use strict';
 
let { Cc, Ci } = require('chrome')
let ioService = Cc['@mozilla.org/network/io-service;1'].
getService(Ci.nsIIOService)
let 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.get = get
 
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

Usage example: require('resource').set('projectname', data.url('index.html'));

then navigate to "resource://projectname" equals "resource:///index.html"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.