Rename the ViewHistory localStorage (and sessionStorage) key from database to pdfjs.history, and migrate existing data on read (issue 7760)

For consistency, I also renamed the `FIREFOX/MOZCENTRAL` sessionStorage key, but given that sessionStorage is a lot less permanent than localStorage it didn't seem necessary to migrate any existing values.

Fixes 7760.
This commit is contained in:
Jonas Jenwald 2016-10-28 17:04:15 +02:00
parent 8a1ed8ab1f
commit 0af42f1ca7

View File

@ -75,9 +75,9 @@ var ViewHistory = (function ViewHistoryClosure() {
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL')) { PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
sessionStorage.setItem('pdfjsHistory', databaseStr); sessionStorage.setItem('pdfjs.history', databaseStr);
} else { } else {
localStorage.setItem('database', databaseStr); localStorage.setItem('pdfjs.history', databaseStr);
} }
resolve(); resolve();
}.bind(this)); }.bind(this));
@ -87,9 +87,28 @@ var ViewHistory = (function ViewHistoryClosure() {
return new Promise(function (resolve) { return new Promise(function (resolve) {
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL')) { PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
resolve(sessionStorage.getItem('pdfjsHistory')); resolve(sessionStorage.getItem('pdfjs.history'));
} else { } else {
resolve(localStorage.getItem('database')); var value = localStorage.getItem('pdfjs.history');
// TODO: Remove this key-name conversion after a suitable time-frame.
// Note that we only remove the old 'database' entry if it looks like
// it was created by PDF.js. to avoid removing someone else's data.
if (!value) {
var databaseStr = localStorage.getItem('database');
if (databaseStr) {
try {
var database = JSON.parse(databaseStr);
if (typeof database.files[0].fingerprint === 'string') {
localStorage.setItem('pdfjs.history', databaseStr);
localStorage.removeItem('database');
value = databaseStr;
}
} catch (ex) { }
}
}
resolve(value);
} }
}); });
}, },