Merge pull request #4705 from Snuffleupagus/ViewHistory-refactor-read
Refactor how the database is read in ViewHistory
This commit is contained in:
commit
6a800eb206
@ -547,13 +547,20 @@ if (typeof PDFJS === 'undefined') {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
window.localStorage = {
|
// When the generic viewer is used in Firefox the following code will fail
|
||||||
data: Object.create(null),
|
// when the preference 'network.cookie.lifetimePolicy' is set to 1,
|
||||||
getItem: function (key) {
|
// see Mozilla bug 365772.
|
||||||
return this.data[key];
|
try {
|
||||||
},
|
window.localStorage = {
|
||||||
setItem: function (key, value) {
|
data: Object.create(null),
|
||||||
this.data[key] = value;
|
getItem: function (key) {
|
||||||
}
|
return this.data[key];
|
||||||
};
|
},
|
||||||
|
setItem: function (key, value) {
|
||||||
|
this.data[key] = value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} catch (e) {
|
||||||
|
console.log('Unable to create polyfill for localStorage');
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
@ -31,40 +31,12 @@
|
|||||||
var ViewHistory = (function ViewHistoryClosure() {
|
var ViewHistory = (function ViewHistoryClosure() {
|
||||||
function ViewHistory(fingerprint) {
|
function ViewHistory(fingerprint) {
|
||||||
this.fingerprint = fingerprint;
|
this.fingerprint = fingerprint;
|
||||||
var initializedPromiseResolve;
|
|
||||||
this.isInitializedPromiseResolved = false;
|
this.isInitializedPromiseResolved = false;
|
||||||
this.initializedPromise = new Promise(function (resolve) {
|
this.initializedPromise =
|
||||||
initializedPromiseResolve = resolve;
|
this._readFromStorage().then(function (databaseStr) {
|
||||||
});
|
|
||||||
|
|
||||||
var resolvePromise = (function ViewHistoryResolvePromise(db) {
|
|
||||||
this.isInitializedPromiseResolved = true;
|
this.isInitializedPromiseResolved = true;
|
||||||
this.initialize(db || '{}');
|
|
||||||
initializedPromiseResolve();
|
|
||||||
}).bind(this);
|
|
||||||
|
|
||||||
//#if B2G
|
var database = JSON.parse(databaseStr || '{}');
|
||||||
// asyncStorage.getItem('database', resolvePromise);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
//#if FIREFOX || MOZCENTRAL
|
|
||||||
// var sessionHistory;
|
|
||||||
// try {
|
|
||||||
// // Workaround for security error when the preference
|
|
||||||
// // network.cookie.lifetimePolicy is set to 1, see Mozilla Bug 365772.
|
|
||||||
// sessionHistory = sessionStorage.getItem('pdfjsHistory');
|
|
||||||
// } catch (ex) {}
|
|
||||||
// resolvePromise(sessionHistory);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
//#if !(FIREFOX || MOZCENTRAL || B2G)
|
|
||||||
resolvePromise(localStorage.getItem('database'));
|
|
||||||
//#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewHistory.prototype = {
|
|
||||||
initialize: function ViewHistory_initialize(database) {
|
|
||||||
database = JSON.parse(database);
|
|
||||||
if (!('files' in database)) {
|
if (!('files' in database)) {
|
||||||
database.files = [];
|
database.files = [];
|
||||||
}
|
}
|
||||||
@ -84,25 +56,44 @@ var ViewHistory = (function ViewHistoryClosure() {
|
|||||||
}
|
}
|
||||||
this.file = database.files[index];
|
this.file = database.files[index];
|
||||||
this.database = database;
|
this.database = database;
|
||||||
},
|
}.bind(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewHistory.prototype = {
|
||||||
_writeToStorage: function ViewHistory_writeToStorage() {
|
_writeToStorage: function ViewHistory_writeToStorage() {
|
||||||
var databaseStr = JSON.stringify(this.database);
|
return new Promise(function (resolve) {
|
||||||
|
var databaseStr = JSON.stringify(this.database);
|
||||||
|
|
||||||
//#if B2G
|
//#if B2G
|
||||||
// asyncStorage.setItem('database', databaseStr);
|
// asyncStorage.setItem('database', databaseStr, resolve);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
//#if FIREFOX || MOZCENTRAL
|
//#if FIREFOX || MOZCENTRAL
|
||||||
// try {
|
|
||||||
// // See comment in try-catch block above.
|
|
||||||
// sessionStorage.setItem('pdfjsHistory', databaseStr);
|
// sessionStorage.setItem('pdfjsHistory', databaseStr);
|
||||||
// } catch (ex) {}
|
// resolve();
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
//#if !(FIREFOX || MOZCENTRAL || B2G)
|
//#if !(FIREFOX || MOZCENTRAL || B2G)
|
||||||
localStorage.setItem('database', databaseStr);
|
localStorage.setItem('database', databaseStr);
|
||||||
|
resolve();
|
||||||
//#endif
|
//#endif
|
||||||
|
}.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
_readFromStorage: function ViewHistory_readFromStorage() {
|
||||||
|
return new Promise(function (resolve) {
|
||||||
|
//#if B2G
|
||||||
|
// asyncStorage.getItem('database', resolve);
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
//#if FIREFOX || MOZCENTRAL
|
||||||
|
// resolve(sessionStorage.getItem('pdfjsHistory'));
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
//#if !(FIREFOX || MOZCENTRAL || B2G)
|
||||||
|
resolve(localStorage.getItem('database'));
|
||||||
|
//#endif
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
set: function ViewHistory_set(name, val) {
|
set: function ViewHistory_set(name, val) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user