diff options
author | Kris Maglione <maglione.k@gmail.com> | 2011-01-13 18:26:27 -0500 |
---|---|---|
committer | Kris Maglione <maglione.k@gmail.com> | 2011-01-13 18:26:27 -0500 |
commit | f0dbc8f2f029107ec4b89afd36b2e4b80497f189 (patch) | |
tree | 51870ceb5f37625fd6ecf9080b8d905715374ae6 | |
parent | 3e854158905cde79e2827addcd6d2483bb0b8849 (diff) | |
download | pentadactyl-f0dbc8f2f029107ec4b89afd36b2e4b80497f189.tar.gz |
Fix help on FF3, overly long URL chains in context filenames, etc.
-rwxr-xr-x | common/bootstrap.js | 13 | ||||
-rw-r--r-- | common/content/dactyl.js | 2 | ||||
-rw-r--r-- | common/modules/bootstrap.jsm | 17 | ||||
-rw-r--r-- | common/modules/config.jsm | 5 | ||||
-rw-r--r-- | common/modules/overlay.jsm | 4 | ||||
-rw-r--r-- | common/modules/sanitizer.jsm | 2 | ||||
-rw-r--r-- | common/modules/util.jsm | 2 | ||||
-rw-r--r-- | common/process_manifest.awk | 8 |
8 files changed, 23 insertions, 30 deletions
diff --git a/common/bootstrap.js b/common/bootstrap.js index 34fb8802..768b2c5f 100755 --- a/common/bootstrap.js +++ b/common/bootstrap.js @@ -121,14 +121,14 @@ function init() { let result = []; + let suffix = "-"; + let chars = "0123456789abcdefghijklmnopqrstuv"; + for (let n = Date.now(); n; n = Math.round(n / chars.length)) + suffix += "0123456789abcdef"[n % chars.length]; + for each (let line in manifest.split("\n")) { let fields = line.split(/\s+/); switch(fields[0]) { - case "#": - if (fields[1] == "Suffix:") - var suffix = "-" + fields[2]; - break; - case "category": categoryManager.addCategoryEntry(fields[1], fields[2], fields[3], false, true); break; @@ -140,8 +140,9 @@ function init() { break; case "resource": - resources.push(fields[1]); + resources.push(fields[1], fields[1] + suffix); resourceProto.setSubstitution(fields[1], getURI(fields[2])); + resourceProto.setSubstitution(fields[1] + suffix, getURI(fields[2])); } } diff --git a/common/content/dactyl.js b/common/content/dactyl.js index dc8b61a9..79617a61 100644 --- a/common/content/dactyl.js +++ b/common/content/dactyl.js @@ -361,7 +361,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), { * should be loaded. */ loadScript: function (uri, context) { - services.subscriptLoader.loadSubScript(uri, context, File.defaultEncoding); + JSMLoader.loadSubScript(uri, context, File.defaultEncoding); }, userEval: function (str, context, fileName, lineNumber) { diff --git a/common/modules/bootstrap.jsm b/common/modules/bootstrap.jsm index 5609bf68..00758bc0 100644 --- a/common/modules/bootstrap.jsm +++ b/common/modules/bootstrap.jsm @@ -5,7 +5,6 @@ "use strict"; try { -dump("=========== load bootstrap.jsm ===========\n"); if (!JSMLoader || JSMLoader.bump != 1) var JSMLoader = { @@ -16,6 +15,7 @@ if (!JSMLoader || JSMLoader.bump != 1) factories: [], globals: {}, io: Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService), + loader: Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader), manager: Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar), stale: {}, suffix: "", @@ -29,17 +29,13 @@ if (!JSMLoader || JSMLoader.bump != 1) if (url.indexOf(":") === -1) url = "resource://dactyl" + this.suffix + "/" + url; - let stale = this.stale[url]; - if (stale) { - dump("JSMLoader: load " + name + " " + stale + "\n"); - dump("JSMLoader: load " + name + " " + this.getTarget(url) + "\n"); + if (url in this.stale) { + let stale = this.stale[url]; delete this.stale[url]; let global = this.globals[url]; if (stale === this.getTarget(url)) - Components.classes["@mozilla.org/moz/jssubscript-loader;1"] - .getService(Components.interfaces.mozIJSSubScriptLoader) - .loadSubScript(url, global.global || global); + this.loadSubScript(url, global.global || global); } try { @@ -58,6 +54,7 @@ if (!JSMLoader || JSMLoader.bump != 1) throw e; } }, + loadSubScript: function loadSubScript() this.loader.loadSubScript.apply(this.loader, arguments), cleanup: function unregister() { for each (let factory in this.factories.splice(0)) this.manager.unregisterFactory(factory.classID, factory); @@ -94,6 +91,6 @@ Components.classes["@mozilla.org/fuel/application;1"] .storage.set("dactyl.JSMLoader", JSMLoader); JSMLoader.load("base.jsm", this); -dump("exports: " + this.JSMLoader+" " +this.EXPORTED_SYMBOLS + "\n"); -}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) } + diff --git a/common/modules/config.jsm b/common/modules/config.jsm index c7d28aac..77110d9e 100644 --- a/common/modules/config.jsm +++ b/common/modules/config.jsm @@ -81,7 +81,8 @@ var ConfigBase = Class("ConfigBase", { } else { return array(f.leafName - for (f in util.getFile(uri).iterDirectory()) + // Fails on FF3: for (f in util.getFile(uri).iterDirectory()) + for (f in values(util.getFile(uri).readDirectory())) if (f.isDirectory())).array; } }), @@ -636,7 +637,7 @@ var ConfigBase = Class("ConfigBase", { ]]></>) }); -services.subscriptLoader.loadSubScript("resource://dactyl-local-content/config.js", this); +JSMLoader.loadSubScript("resource://dactyl-local-content/config.js", this); config.INIT = update(Object.create(config.INIT), config.INIT, { init: function init(dactyl, modules, window) { diff --git a/common/modules/overlay.jsm b/common/modules/overlay.jsm index a1fa68d5..6ac9972e 100644 --- a/common/modules/overlay.jsm +++ b/common/modules/overlay.jsm @@ -88,7 +88,7 @@ var Overlay = Module("Overlay", { const create = window.Object.create || (function () { window.__dactyl_eval_string = "(function (proto) ({ __proto__: proto }))"; - services.subscriptLoader.loadSubScript(BASE + "eval.js", window); + JSMLoader.loadSubScript(BASE + "eval.js", window); let res = window.__dactyl_eval_result; delete window.__dactyl_eval_string; @@ -110,7 +110,7 @@ var Overlay = Module("Overlay", { load: function load(script) { for (let [i, base] in Iterator(prefix)) { try { - services.subscriptLoader.loadSubScript(base + script + ".js", modules, "UTF-8"); + JSMLoader.loadSubScript(base + script + ".js", modules, "UTF-8"); return; } catch (e) { diff --git a/common/modules/sanitizer.jsm b/common/modules/sanitizer.jsm index d211d288..ebc0b95c 100644 --- a/common/modules/sanitizer.jsm +++ b/common/modules/sanitizer.jsm @@ -21,7 +21,7 @@ defineModule("sanitizer", { }, this); let tmp = {}; -services.subscriptLoader.loadSubScript("chrome://browser/content/sanitize.js", tmp); +JSMLoader.loadSubScript("chrome://browser/content/sanitize.js", tmp); tmp.Sanitizer.prototype.__proto__ = Class.prototype; var Range = Struct("min", "max"); diff --git a/common/modules/util.jsm b/common/modules/util.jsm index eaa817d5..e2f09f7a 100644 --- a/common/modules/util.jsm +++ b/common/modules/util.jsm @@ -24,7 +24,7 @@ default xml namespace = XHTML; memoize(this, "Commands", function () { // FIXME let obj = { Module: Class }; - services.subscriptLoader.loadSubScript("chrome://dactyl/content/commands.js", obj); + JSMLoader.loadSubScript("resource://dactyl-content/commands.js", obj); return obj.Commands; }); diff --git a/common/process_manifest.awk b/common/process_manifest.awk index 9ed61942..8a513932 100644 --- a/common/process_manifest.awk +++ b/common/process_manifest.awk @@ -1,9 +1,7 @@ BEGIN { chrome = "chrome" - if (suffix) { + if (suffix) chrome = suffix - print "# Suffix: " suffix - } } { content = $1 ~ /^(content|skin|locale|resource)$/ } content && $NF ~ /^[a-z]/ { $NF = "/" name "/" $NF } @@ -17,10 +15,6 @@ content { { sub("^\\.\\./common/", "", $NF) print - if (content && suffix && $1 == "resource") { - $2 = $2 "-" suffix - print - } } # vim:se sts=4 sw=4 et ft=awk: |