mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-23 23:32:26 +01:00
Fix live update issues.
This commit is contained in:
21
common/bootstrap.js
vendored
21
common/bootstrap.js
vendored
@@ -29,6 +29,8 @@ const resourceProto = Services.io.getProtocolHandler("resource")
|
|||||||
const categoryManager = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
|
const categoryManager = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
|
||||||
const manager = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
const manager = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||||
|
|
||||||
|
const BOOTSTRAP_JSM = "resource://dactyl/bootstrap.jsm";
|
||||||
|
|
||||||
const BOOTSTRAP_CONTRACT = "@dactyl.googlecode.com/base/bootstrap";
|
const BOOTSTRAP_CONTRACT = "@dactyl.googlecode.com/base/bootstrap";
|
||||||
JSMLoader = JSMLoader || BOOTSTRAP_CONTRACT in Cc && Cc[BOOTSTRAP_CONTRACT].getService().wrappedJSObject.loader;
|
JSMLoader = JSMLoader || BOOTSTRAP_CONTRACT in Cc && Cc[BOOTSTRAP_CONTRACT].getService().wrappedJSObject.loader;
|
||||||
|
|
||||||
@@ -194,16 +196,23 @@ function init() {
|
|||||||
reportError(e);
|
reportError(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSMLoader && JSMLoader.bump !== 4) // Temporary hack
|
if (JSMLoader) {
|
||||||
Services.scriptloader.loadSubScript("resource://dactyl" + suffix + "/bootstrap.jsm",
|
if (Cu.unload) {
|
||||||
Cu.import("resource://dactyl/bootstrap.jsm", global));
|
Cu.unload(BOOTSTRAP_JSM);
|
||||||
|
for (let [name] in Iterator(JSMLoader.globals))
|
||||||
|
Cu.unload(~name.indexOf(":") ? name : "resource://dactyl" + JSMLoader.suffix + "/" + name);
|
||||||
|
}
|
||||||
|
else if (JSMLoader.bump != 5) // Temporary hack
|
||||||
|
Services.scriptloader.loadSubScript("resource://dactyl" + suffix + "/bootstrap.jsm",
|
||||||
|
Cu.import(BOOTSTRAP_JSM, global));
|
||||||
|
}
|
||||||
|
|
||||||
if (!JSMLoader || JSMLoader.bump !== 4)
|
if (!JSMLoader || JSMLoader.bump !== 5 || Cu.unload)
|
||||||
Cu.import("resource://dactyl/bootstrap.jsm", global);
|
Cu.import(BOOTSTRAP_JSM, global);
|
||||||
|
|
||||||
JSMLoader.bootstrap = this;
|
JSMLoader.bootstrap = this;
|
||||||
|
|
||||||
JSMLoader.load("resource://dactyl/bootstrap.jsm", global);
|
JSMLoader.load(BOOTSTRAP_JSM, global);
|
||||||
|
|
||||||
JSMLoader.init(suffix);
|
JSMLoader.init(suffix);
|
||||||
JSMLoader.load("base.jsm", global);
|
JSMLoader.load("base.jsm", global);
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ if (!JSMLoader && "@mozilla.org/fuel/application;1" in Components.classes)
|
|||||||
.getService(Components.interfaces.extIApplication)
|
.getService(Components.interfaces.extIApplication)
|
||||||
.storage.get("dactyl.JSMLoader", null);
|
.storage.get("dactyl.JSMLoader", null);
|
||||||
|
|
||||||
if (JSMLoader && JSMLoader.bump === 4)
|
if (JSMLoader && JSMLoader.bump === 5)
|
||||||
JSMLoader.global = this;
|
JSMLoader.global = this;
|
||||||
else
|
else
|
||||||
JSMLoader = {
|
JSMLoader = {
|
||||||
bump: 4,
|
bump: 5,
|
||||||
|
|
||||||
builtin: Cu.Sandbox(this),
|
builtin: Cu.Sandbox(this),
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ else
|
|||||||
|
|
||||||
manager: Components.manager.QueryInterface(Ci.nsIComponentRegistrar),
|
manager: Components.manager.QueryInterface(Ci.nsIComponentRegistrar),
|
||||||
|
|
||||||
modules: JSMLoader ? JSMLoader.modules : {},
|
modules: JSMLoader && JSMLoader.modules || {},
|
||||||
|
|
||||||
stale: JSMLoader ? JSMLoader.stale : {},
|
stale: JSMLoader ? JSMLoader.stale : {},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user