From 1d72849d995be8f9613a43b34b1618bdc76552a1 Mon Sep 17 00:00:00 2001 From: Simon Kornblith Date: Thu, 30 Jun 2011 22:14:45 +0000 Subject: [PATCH] Don't store translator code in localStorage --- chrome/content/zotero/xpcom/connector/repo.js | 29 +++++++------------ .../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 index 4f93710232..87eeb81d2c 100644 --- 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 index 72796dee94..253d9bb873 100644 --- 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;