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:
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;