From 8963dc7d9754cc83d754f0f774c5c76231e5bd29 Mon Sep 17 00:00:00 2001 From: Simon Kornblith Date: Sun, 1 Jul 2012 15:53:55 -0400 Subject: [PATCH] Update for new wrapping code and complain on attempts to activate E4X --- .../zotero/xpcom/translation/translate.js | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js index e32783434..8d95e702e 100644 --- a/chrome/content/zotero/xpcom/translation/translate.js +++ b/chrome/content/zotero/xpcom/translation/translate.js @@ -2136,7 +2136,7 @@ Zotero.Translate.IO = { /** * @class Translate backend for translating from a string */ -Zotero.Translate.IO.String = function(string, uri, mode) { +Zotero.Translate.IO.String = function(string, uri) { if(string && typeof string === "string") { this.string = string; } else { @@ -2228,17 +2228,13 @@ Zotero.Translate.IO.String.prototype = { }, "_getXML":function() { - if(this._mode == "xml/dom") { - try { - var xml = Zotero.Translate.IO.parseDOMXML(this.string); - } catch(e) { - this._xmlInvalid = true; - throw e; - } - return (Zotero.isFx5 ? Zotero.Translate.SandboxManager.Fx5DOMWrapper(xml) : xml); - } else { - return this.string.replace(/<\?xml[^>]+\?>/, ""); + try { + var xml = Zotero.Translate.IO.parseDOMXML(this.string); + } catch(e) { + this._xmlInvalid = true; + throw e; } + return (Zotero.isFx ? Zotero.Translate.DOMWrapper.wrap(xml) : xml); }, "init":function(newMode, callback) { @@ -2246,8 +2242,10 @@ Zotero.Translate.IO.String.prototype = { this._noCR = undefined; this._mode = newMode; - if(newMode && (Zotero.Translate.IO.rdfDataModes.indexOf(newMode) !== -1 - || newMode.substr(0, 3) === "xml") && this._xmlInvalid) { + if(newMode === "xml/e4x") { + throw "E4X is not supported"; + } else if(newMode && (Zotero.Translate.IO.rdfDataModes.indexOf(newMode) !== -1 + || newMode.substr(0, 3) === "xml/dom") && this._xmlInvalid) { throw "XML known invalid"; } else if(Zotero.Translate.IO.rdfDataModes.indexOf(this._mode) !== -1) { this._initRDF(callback);