mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 14:27:59 +01:00
Fix some bootstrap issues on upgrade.
This commit is contained in:
8
common/bootstrap.js
vendored
8
common/bootstrap.js
vendored
@@ -134,12 +134,12 @@ function init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof JSMLoader === "undefined")
|
dump("JSMLoader " + (typeof JSMLoader !== "undefined" && JSMLoader.bump) + "\n");
|
||||||
|
if (typeof JSMLoader === "undefined" || JSMLoader.bump != 2)
|
||||||
Cu.import("resource://dactyl/bootstrap.jsm", global);
|
Cu.import("resource://dactyl/bootstrap.jsm", global);
|
||||||
|
|
||||||
if (suffix)
|
JSMLoader.init(suffix);
|
||||||
JSMLoader.suffix = suffix;
|
JSMLoader.load("base.jsm", global);
|
||||||
JSMLoader.load("resource://dactyl/bootstrap.jsm", global);
|
|
||||||
|
|
||||||
for each (let component in components)
|
for each (let component in components)
|
||||||
component.register();
|
component.register();
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ function Dactyl() {
|
|||||||
this.pages = {};
|
this.pages = {};
|
||||||
|
|
||||||
Cu.import("resource://dactyl/bootstrap.jsm");
|
Cu.import("resource://dactyl/bootstrap.jsm");
|
||||||
|
JSMLoader.init();
|
||||||
|
JSMLoader.load("base.jsm", global);
|
||||||
require(global, "config");
|
require(global, "config");
|
||||||
require(global, "services");
|
require(global, "services");
|
||||||
require(global, "util");
|
require(global, "util");
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ function require(obj, name, from) {
|
|||||||
JSMLoader.load(name + ".jsm", obj);
|
JSMLoader.load(name + ".jsm", obj);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
defineModule.dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n");
|
defineModule.dump("loading " + String.quote(name + ".jsm") + "\n");
|
||||||
if (loaded.util)
|
if (loaded.util)
|
||||||
util.reportError(e);
|
util.reportError(e);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
// given in the LICENSE.txt file included with this file.
|
// given in the LICENSE.txt file included with this file.
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
let is_bootstrap = 1;
|
dump(" ======================= bootstrap.jsm " + (typeof JSMLoader) + " ======================= \n");
|
||||||
|
|
||||||
|
var EXPORTED_SYMBOLS = ["JSMLoader"];
|
||||||
|
let global = this;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -20,6 +23,18 @@ if (!JSMLoader || JSMLoader.bump != 2)
|
|||||||
manager: Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar),
|
manager: Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar),
|
||||||
stale: {},
|
stale: {},
|
||||||
suffix: "",
|
suffix: "",
|
||||||
|
init: function init(suffix) {
|
||||||
|
this.suffix = suffix || "";
|
||||||
|
|
||||||
|
Components.classes["@mozilla.org/fuel/application;1"]
|
||||||
|
.getService(Components.interfaces.fuelIApplication)
|
||||||
|
.storage.set("dactyl.JSMLoader", this);
|
||||||
|
|
||||||
|
let base = JSMLoader.load("base.jsm", global);
|
||||||
|
global.EXPORTED_SYMBOLS = base.EXPORTED_SYMBOLS;
|
||||||
|
global.JSMLoader = this;
|
||||||
|
base.JSMLoader = this;
|
||||||
|
},
|
||||||
getTarget: function getTarget(url) {
|
getTarget: function getTarget(url) {
|
||||||
if (url.indexOf(":") === -1)
|
if (url.indexOf(":") === -1)
|
||||||
url = "resource://dactyl" + this.suffix + "/" + url;
|
url = "resource://dactyl" + this.suffix + "/" + url;
|
||||||
@@ -46,13 +61,6 @@ if (!JSMLoader || JSMLoader.bump != 2)
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
let global = Components.utils.import(url, target);
|
let global = Components.utils.import(url, target);
|
||||||
|
|
||||||
if (name == "base.jsm" && target.is_bootstrap) {
|
|
||||||
target.EXPORTED_SYMBOLS = global.EXPORTED_SYMBOLS;
|
|
||||||
global.JSMLoader = this;
|
|
||||||
target.JSMLoader = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.globals[name] = global;
|
return this.globals[name] = global;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
@@ -94,11 +102,5 @@ if (!JSMLoader || JSMLoader.bump != 2)
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Components.classes["@mozilla.org/fuel/application;1"]
|
|
||||||
.getService(Components.interfaces.fuelIApplication)
|
|
||||||
.storage.set("dactyl.JSMLoader", JSMLoader);
|
|
||||||
|
|
||||||
JSMLoader.load("base.jsm", this);
|
|
||||||
|
|
||||||
}catch(e){ dump(e + "\n" + (e.stack || Error().stack)); Components.utils.reportError(e) }
|
}catch(e){ dump(e + "\n" + (e.stack || Error().stack)); Components.utils.reportError(e) }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user