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

Don't explode when trying to list a broken localized pref.

This commit is contained in:
Kris Maglione
2013-04-20 20:53:01 -07:00
parent a9ff4b9083
commit cd8bb6915a
2 changed files with 12 additions and 5 deletions

View File

@@ -1540,6 +1540,12 @@ var DOM = Class("DOM", {
function tag(args, namespaces) {
let _namespaces = namespaces;
// Deal with common error case
if (args == null) {
util.reportError(Error("Unexpected null when processing XML."));
args = ["html:i", {}, "[NULL]"];
}
if (isinstance(args, ["String", "Number", "Boolean", _]))
return doc.createTextNode(args);
if (isXML(args))
@@ -1575,7 +1581,7 @@ var DOM = Class("DOM", {
for (var key in attr) {
if (/^xmlns(?:$|:)/.test(key)) {
if (_namespaces === namespaces)
namespaces = update({}, namespaces);
namespaces = Object.create(namespaces);
namespaces[key.substr(6)] = namespaces[attr[key]] || attr[key];
}}

View File

@@ -111,10 +111,11 @@ var Prefs = Module("prefs", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference])
switch (type) {
case Ci.nsIPrefBranch.PREF_STRING:
let value = this.branch.getComplexValue(name, Ci.nsISupportsString).data;
// try in case it's a localized string (will throw an exception if not)
if (!this.branch.prefIsLocked(name) && !this.branch.prefHasUserValue(name) &&
RegExp("chrome://.+/locale/.+\\.properties").test(value))
value = this.branch.getComplexValue(name, Ci.nsIPrefLocalizedString).data;
try {
if (/^[a-z0-9-]+:/i.test(value))
value = this.branch.getComplexValue(name, Ci.nsIPrefLocalizedString).data;
}
catch (e) {}
return value;
case Ci.nsIPrefBranch.PREF_INT:
return this.branch.getIntPref(name);