1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-21 00:28:00 +01:00

Fix loading components after XPI update.

This commit is contained in:
Kris Maglione
2011-01-13 19:59:21 -05:00
parent e2b89a6af3
commit 967a213019
3 changed files with 16 additions and 9 deletions

6
common/bootstrap.js vendored
View File

@@ -63,8 +63,8 @@ function startup(data, reason) {
AddonManager.getAddonByID(addon.id, function (a) { addon = a; }); AddonManager.getAddonByID(addon.id, function (a) { addon = a; });
// Temporary hack. // Temporary hack.
if (basePath.isDirectory() && false && JSMLoader.bump == null) if (basePath.isDirectory() && JSMLoader.bump == null)
JSMLoader.bump = 1; JSMLoader.bump = 2;
if (basePath.isDirectory()) if (basePath.isDirectory())
getURI = function getURI(path) { getURI = function getURI(path) {
@@ -100,6 +100,8 @@ FactoryProxy.prototype = {
dump("dactyl: bootstrap: create module: " + this.contractID + "\n"); dump("dactyl: bootstrap: create module: " + this.contractID + "\n");
Object.defineProperty(this, "module", { value: {}, enumerable: true }); Object.defineProperty(this, "module", { value: {}, enumerable: true });
dump("get module " + this.url + "\n");
dump(" " + (JSMLoader.stale[this.url]) + "\n");
JSMLoader.load(this.url, this.module); JSMLoader.load(this.url, this.module);
return this.module; return this.module;
}, },

View File

@@ -8,9 +8,9 @@ let is_bootstrap = 1;
try { try {
if (!JSMLoader || JSMLoader.bump != 1) if (!JSMLoader || JSMLoader.bump != 2)
var JSMLoader = { var JSMLoader = {
bump: 1, bump: 2,
builtin: Components.utils.Sandbox(this), builtin: Components.utils.Sandbox(this),
canonical: {}, canonical: {},
factories: [], factories: [],
@@ -32,13 +32,15 @@ if (!JSMLoader || JSMLoader.bump != 1)
let url = name; let url = name;
if (url.indexOf(":") === -1) if (url.indexOf(":") === -1)
url = "resource://dactyl" + this.suffix + "/" + url; url = "resource://dactyl" + this.suffix + "/" + url;
let targetURL = this.getTarget(url);
if (name in this.stale) { let stale = this.stale[name] || this.stale[targetURL];
let stale = this.stale[name]; if (stale) {
delete this.stale[name]; delete this.stale[name];
delete this.stale[targetURL];
let global = this.globals[name]; let global = this.globals[name];
if (stale === this.getTarget(url)) if (stale === targetURL)
this.loadSubScript(url, global.global || global); this.loadSubScript(url, global.global || global);
} }
@@ -65,7 +67,9 @@ if (!JSMLoader || JSMLoader.bump != 1)
}, },
purge: function purge() { purge: function purge() {
for (let [url, global] in Iterator(this.globals)) { for (let [url, global] in Iterator(this.globals)) {
this.stale[url] = this.getTarget(url); let target = this.getTarget(url);
this.stale[url] = target;
this.stale[target] = target;
for each (let prop in Object.getOwnPropertyNames(global)) for each (let prop in Object.getOwnPropertyNames(global))
try { try {

View File

@@ -9,8 +9,9 @@
try { try {
Components.utils.import("resource://dactyl/bootstrap.jsm"); Components.utils.import("resource://dactyl/bootstrap.jsm");
let frag=1;
defineModule("util", { defineModule("util", {
exports: ["FailedAssertion", "Math", "NS", "Point", "Util", "XBL", "XHTML", "XUL", "util"], exports: ["frag", "FailedAssertion", "Math", "NS", "Point", "Util", "XBL", "XHTML", "XUL", "util"],
require: ["services"], require: ["services"],
use: ["config", "highlight", "storage", "template"] use: ["config", "highlight", "storage", "template"]
}, this); }, this);