Skip to content

Instantly share code, notes, and snippets.

@azu
Created January 21, 2014 14:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save azu/8540830 to your computer and use it in GitHub Desktop.
Save azu/8540830 to your computer and use it in GitHub Desktop.
AddonSDKのコードをScratchpad等から使う
var { Loader } = Components.utils.import("resource://gre/modules/commonjs/toolkit/loader.js", {});
var loader = Loader.Loader({
modules: {
"toolkit/loader": Loader
},
paths: {
"devtools": "resource:///modules/devtools/",
"scriptish/": "resource://scriptish/commonjs/",
"pathfinder/": "resource://scriptish/pathfinder/",
"sdk/": "resource://gre/modules/commonjs/sdk/",
"": "resource://gre/modules/commonjs/"
},
rootURI: '',
metadata: {
'permissions': {
'private-browsing': true
}
},
resolve: function(id, base) {
if (id == "chrome" || id.startsWith("@"))
return id;
return Loader.resolve(id, base);
}
});
// fake requirer uri scriptish:// (it's used for relative requires and error messages)
var module = Loader.Module("main", "scriptish://");
var jetpack = Loader.Require(loader, module);
function descriptor(object) {
let value = {};
Object.getOwnPropertyNames(object).forEach(function(name) {
value[name] = Object.getOwnPropertyDescriptor(object, name)
});
return value;
}
var jpGlobals = jetpack('sdk/system/globals');
Object.defineProperties(loader.globals, descriptor(jpGlobals));
// https://bitbucket.org/dnelson/scriptish/src/2a9743e1793674b63096074ac5b59bce7c2968ed/extension/modules/constants.js?at=default
jetpack("sdk/tabs").activeTab.attach({
contentScript: "alert(1);"
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment