commit 1f20615582b18fd92f32996f87e08180954eec61 parent 3c552ac62851a450e3801a32cca4ad1310570c3e Author: Simon Kornblith <simon@simonster.com> Date: Mon, 5 Sep 2011 06:31:08 +0000 Various changes to take into account that Zotero.isFx may be true even if a translator is running as a bookmarklet Diffstat:
5 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/chrome/content/zotero/tools/testTranslators/testTranslators.js b/chrome/content/zotero/tools/testTranslators/testTranslators.js @@ -263,7 +263,7 @@ function load(event) { viewerMode = !Zotero; } catch(e) {}; - if(window.chrome || window.safari) { + if(!viewerMode && (window.chrome || window.safari)) { // initialize injection Zotero.initInject(); // make sure that connector is online diff --git a/chrome/content/zotero/xpcom/date.js b/chrome/content/zotero/xpcom/date.js @@ -53,7 +53,7 @@ Zotero.Date = new function(){ this.getMonths = function() { if(_months) return _months; - if(Zotero.isFx) { + if(Zotero.isFx && !Zotero.isBookmarklet) { var src = 'chrome://global/locale/dateFormat.properties'; var localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1']. getService(Components.interfaces.nsILocaleService); diff --git a/chrome/content/zotero/xpcom/debug.js b/chrome/content/zotero/xpcom/debug.js @@ -88,7 +88,7 @@ Zotero.Debug = new function () { if (_console) { var output = 'zotero(' + level + ')' + (_time ? deltaStr : '') + ': ' + message; - if(Zotero.isFx) { + if(Zotero.isFx && !Zotero.isBookmarklet) { dump(output+"\n\n"); } else if(window.console) { window.console.log(output); diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js @@ -218,7 +218,7 @@ Zotero.Translate.Sandbox = { "getTranslatorObject":"r" }; safeTranslator.setSearch = function(arg) { - if(Zotero.isFx4) arg = JSON.parse(JSON.stringify(arg)); + if(Zotero.isFx4 && !Zotero.isBookmarklet) arg = JSON.parse(JSON.stringify(arg)); return translation.setSearch(arg); }; safeTranslator.setDocument = function(arg) { return translation.setDocument(arg) }; @@ -227,7 +227,8 @@ Zotero.Translate.Sandbox = { function(obj, item) { try { if(arg1 == "itemDone") { - if(Zotero.isFx && (translate instanceof Zotero.Translate.Web + if(Zotero.isFx && !Zotero.isBookmarklet + && (translate instanceof Zotero.Translate.Web || translate instanceof Zotero.Translate.Search)) { // necessary to get around object wrappers in Firefox item = translate._sandboxManager.sandbox.Zotero._transferItem(JSON.stringify(item)); @@ -293,7 +294,7 @@ Zotero.Translate.Sandbox = { var haveTranslatorFunction = function(translator) { translation.translator[0] = translator; translation._loadTranslator(translator, function() { - if(Zotero.isFx) { + if(Zotero.isFx && !Zotero.isBookmarklet) { // do same origin check var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"] .getService(Components.interfaces.nsIScriptSecurityManager); @@ -342,7 +343,7 @@ Zotero.Translate.Sandbox = { haveTranslatorFunction(translation.translator[0]); return translation._sandboxManager.sandbox; } else { - if(Zotero.isConnector && !Zotero.isFx && !callback) { + if(Zotero.isConnector && (!Zotero.isFx || Zotero.isBookmarklet) && !callback) { throw new Error("Translator must pass a callback to getTranslatorObject() to "+ "operate in this translation environment."); } @@ -1219,7 +1220,7 @@ Zotero.Translate.Base.prototype = { } } - if(Zotero.isFx) { + if(Zotero.isFx && !Zotero.isBookmarklet) { // workaround for inadvertant attempts to pass E4X back from sandbox src += "Zotero._transferItem = function(itemString) {"+ "var item = JSON.parse(itemString);"+ @@ -1263,7 +1264,7 @@ Zotero.Translate.Base.prototype = { * @param {Integer} level Log level (1-5, higher numbers are higher priority) */ "_debug":function(string, level) { - if(typeof string === "object" && Zotero.isFx36) { + if(typeof string === "object" && Zotero.isFx36 && !Zotero.isBookmarklet) { string = new XPCSafeJSObjectWrapper(string); } @@ -1473,7 +1474,7 @@ Zotero.Translate.Web.prototype.complete = function(returnValue, error) { // Report translation failure if we failed if(oldState == "translate" && errorString && this.translator[0].inRepository && Zotero.Prefs.get("reportTranslationFailure")) { // Don't report failure if in private browsing mode - if(Zotero.isFx && !Zotero.isStandalone) { + if(Zotero.isFx && !Zotero.isBookmarklet && !Zotero.isStandalone) { var pbs = Components.classes["@mozilla.org/privatebrowsing;1"] .getService(Components.interfaces.nsIPrivateBrowsingService); if (pbs.privateBrowsingEnabled) { diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js @@ -221,7 +221,7 @@ Zotero.Utilities = { // If no tags, no need to unescape if(str.indexOf("<") === -1 && str.indexOf("&") === -1) return str; - if(Zotero.isFx) { + if(Zotero.isFx && !Zotero.isBookmarklet) { if(!Zotero.Utilities._nsISUHTML) { Zotero.Utilities._nsISUHTML = Components.classes["@mozilla.org/feed-unescapehtml;1"] .getService(Components.interfaces.nsIScriptableUnescapeHTML);