3 { classes: Cc, interfaces: Ci, utils: Cu } = Components
5 # Populate the global namespace with console, require, and include
8 Cu.import "resource://gre/modules/Services.jsm", tools
9 baseURI = tools.Services.io.newURI __SCRIPT_URI_SPEC__, null, null
11 include = (src, scope = {}) ->
13 uri = tools.Services.io.newURI "packages/#{ src }.js", null, baseURI
14 tools.Services.scriptloader.loadSubScript uri.spec, scope
16 uri = tools.Services.io.newURI src, null, baseURI
17 tools.Services.scriptloader.loadSubScript uri.spec, scope
34 return modules[src] = scope.exports;
36 Console = require("console").Console
37 global.console = new Console "vimff"
38 global.include = include
39 global.require = require
41 { loadCss, unloadCss } = require 'utils'
42 { createWindowEventTracker } = require 'event-handlers'
44 tracker = createWindowEventTracker()
46 # Firefox will call this method on startup/enabling
47 startup = (data, reason) ->
51 # Firefox will call this method on shutdown/disabling
52 shutdown = (data, reason) ->