From 34e9e554893f0a4dfb887cec83031924422c7214 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Tue, 6 Sep 2011 10:04:38 -0400 Subject: [PATCH] Fix NEWS munging broken by charset corruption after moving to modules. --- common/content/events.js | 2 +- common/modules/addons.jsm | 6 ++++-- common/modules/dom.jsm | 3 ++- common/modules/help.jsm | 4 ++-- common/modules/util.jsm | 11 +++++------ 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/common/content/events.js b/common/content/events.js index 04137c85..722952de 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -1318,7 +1318,7 @@ var Events = Module("events", { else for (let event in values(duringFeed)) try { - this.dispatch(event.originalTarget, event, event); + DOM.Event.dispatch(event.originalTarget, event, event); } catch (e) { util.reportError(e); diff --git a/common/modules/addons.jsm b/common/modules/addons.jsm index 4c3b77b5..94320779 100644 --- a/common/modules/addons.jsm +++ b/common/modules/addons.jsm @@ -117,7 +117,7 @@ var actions = { }); }, get filter() { - let ids = Set(keys(JSON.parse(prefs.get("extensions.bootstrappedAddons", "{}")))); + let ids = XPIProvider.bootstrappedAddons; return function ({ item }) !item.userDisabled && Set.has(ids, item.id); }, perm: "disable" @@ -492,8 +492,10 @@ var Addons = Module("addons", { } }); -if (!services.has("extensionManager")) +if (!services.has("extensionManager")) { Components.utils.import("resource://gre/modules/AddonManager.jsm"); + var { XPIProvider } = Components.utils.import("resource://gre/modules/XPIProvider.jsm", {}); +} else var AddonManager = { PERM_CAN_UNINSTALL: 1, diff --git a/common/modules/dom.jsm b/common/modules/dom.jsm index 3e4f4ff9..ef72c02c 100644 --- a/common/modules/dom.jsm +++ b/common/modules/dom.jsm @@ -84,6 +84,7 @@ var DOM = Class("DOM", { ["", { href: { get: function (elem) elem.href || elem.getAttribute("href") }, src: { get: function (elem) elem.src || elem.getAttribute("src") }, + checked: { get: function (elem) elem.checked, set: function (elem, val) elem.checked = val }, collapsed: BooleanAttribute("collapsed"), disabled: BooleanAttribute("disabled"), hidden: BooleanAttribute("hidden"), @@ -209,7 +210,7 @@ var DOM = Class("DOM", { if (isObject(tmp) && "length" in tmp) for (let j = 0; j < tmp.length; j++) res[res.length++] = tmp[j]; - else if (tmp !== undefined) + else if (tmp != null) res[res.length++] = tmp; } diff --git a/common/modules/help.jsm b/common/modules/help.jsm index d6eee271..c5e0b8f9 100644 --- a/common/modules/help.jsm +++ b/common/modules/help.jsm @@ -250,7 +250,7 @@ var Help = Module("Help", { { mimeType: "text/plain;charset=UTF-8" }) .responseText; - let re = util.regexp( \s* # .*\n) | ^ (?P \s*) @@ -266,7 +266,7 @@ var Help = Module("Help", { ) | (?: ^ [^\S\n]* \n) + - ]]>, "gmxy"); + ]]>), "gmxy"); let betas = util.regexp(/\[(b\d)\]/, "gx"); diff --git a/common/modules/util.jsm b/common/modules/util.jsm index 4a194819..72a40bd2 100644 --- a/common/modules/util.jsm +++ b/common/modules/util.jsm @@ -422,8 +422,9 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), * @returns [string] The resulting strings. */ debrace: function debrace(pattern) { + let res = []; + if (isArray(pattern)) { - let res = []; let rec = function rec(acc) { let vals; @@ -454,6 +455,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), res.push(pattern.substr(end)); return res.map(function (s) util.dequote(s, dequote)); } + let patterns = []; let substrings = split(pattern, /((?:[^\\{]|\\.)*)\{((?:[^\\}]|\\.)*)\}/gy, function (match) { @@ -461,7 +463,6 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), null, ",{}")); }, "{}"); - let res = []; function rec(acc) { if (acc.length == patterns.length) res.push(array(substrings).zip(acc).flatten().join("")); @@ -1153,10 +1154,6 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), error = Error(error); Cu.reportError(error); - try { - services.console.logStringMessage(error.stack || Error().stack); - } - catch (e) {} try { this.errorCount++; @@ -1166,6 +1163,8 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), stack: <>{util.stackLines(String(error.stack || Error().stack)).join("\n").replace(/^/mg, "\t")} }); + services.console.logStringMessage(obj.stack); + this.errors.push([new Date, obj + "\n" + obj.stack]); this.errors = this.errors.slice(-this.maxErrors); this.errors.toString = function () [k + "\n" + v for ([k, v] in array.iterValues(this))].join("\n\n");