www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 1d72849d995be8f9613a43b34b1618bdc76552a1
parent 39298312db7a416b8ef59a534291c8e92301389a
Author: Simon Kornblith <simon@simonster.com>
Date:   Thu, 30 Jun 2011 22:14:45 +0000

Don't store translator code in localStorage


Diffstat:
Mchrome/content/zotero/xpcom/connector/repo.js | 29++++++++++-------------------
Mchrome/content/zotero/xpcom/connector/translator.js | 10+++-------
2 files changed, 13 insertions(+), 26 deletions(-)

diff --git a/chrome/content/zotero/xpcom/connector/repo.js b/chrome/content/zotero/xpcom/connector/repo.js @@ -55,16 +55,7 @@ Zotero.Repo = new function() { * @param {Function} callback Callback to pass code when retreived */ this.getTranslatorCode = function(translatorID, callback) { - // we might have code in localstorage - if(!Zotero.isFx) { - var localCode = localStorage[TRANSLATOR_CODE_PREFIX+translatorID]; - if(localCode) { - callback(localCode); - return; - } - } - - // otherwise, try standalone + // try standalone Zotero.Connector.callMethod("getTranslatorCode", {"translatorID":translatorID}, function(result) { if(result) { _haveCode(result, translatorID, callback); @@ -95,8 +86,8 @@ Zotero.Repo = new function() { // repo. if not (because it's from a different source), we won't save it. var lastUpdatedIndex = code.indexOf('"lastUpdated"'); if (lastUpdatedIndex == -1) { - callback(false); Zotero.logError(new Error("Invalid or missing translator metadata JSON object for " + translatorID)); + callback(false); return; } @@ -105,20 +96,20 @@ Zotero.Repo = new function() { var m = infoRe.exec(header); if (!m) { Zotero.logError(new Error("Invalid or missing translator metadata JSON object for " + translatorID)); + callback(false); return; } var metadata = JSON.parse(m[0]); var translator = Zotero.Translators.getWithoutCode(translatorID); - if(metadata.lastUpdated === translator.lastUpdated) { - localStorage["translatorCode-"+translatorID] = code; - } else if(Zotero.Date.sqlToDate(metadata.lastUpdated) > Zotero.Date.sqlToDate(translator.lastUpdated)) { - Zotero.debug("Repo: Retrieved code for "+metadata.label+" newer than stored metadata; updating"); - Zotero.Translators.update([metadata]); - localStorage["translatorCode-"+translatorID] = code; - } else { - Zotero.debug("Repo: Retrieved code for "+metadata.label+" older than stored metadata; not caching"); + if(metadata.lastUpdated !== translator.lastUpdated) { + if(Zotero.Date.sqlToDate(metadata.lastUpdated) > Zotero.Date.sqlToDate(translator.lastUpdated)) { + Zotero.debug("Repo: Retrieved code for "+metadata.label+" newer than stored metadata; updating"); + Zotero.Translators.update([metadata]); + } else { + Zotero.debug("Repo: Retrieved code for "+metadata.label+" older than stored metadata; not caching"); + } } } callback(code); diff --git a/chrome/content/zotero/xpcom/connector/translator.js b/chrome/content/zotero/xpcom/connector/translator.js @@ -230,7 +230,7 @@ Zotero.Translators = new function() { } /** - * Saves all translator data to localStorage + * Saves all translator metadata to localStorage * @param {Object[]} newMetadata Metadata for new translators * @param {Boolean} reset Whether to clear all existing translators and overwrite them with * the specified translators. @@ -244,6 +244,8 @@ Zotero.Translators = new function() { if(!Zotero.isFx) { // clear cached translatorCode Zotero.debug("Translators: Resetting translators"); + // XXX this is only to clear localStorage for people who installed yesterday and + // should disappear soon for(var i in localStorage) { if(i.substr(0, TRANSLATOR_CODE_PREFIX.length) === TRANSLATOR_CODE_PREFIX) { delete localStorage[i]; @@ -270,12 +272,6 @@ Zotero.Translators = new function() { continue; } - if(!Zotero.isFx) { - // if lastUpdated does not match between old and new translator, - // invalidate translator code cache - delete localStorage["translatorCode-"+newTranslator.translatorID]; - } - Zotero.debug("Translators: Updating "+newTranslator.label); oldTranslator.init(newTranslator); hasChanged = true;