1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 23:28:06 +02:00

Improve handling of preferences in Firefox

This commit is contained in:
Jonas Jenwald 2014-01-30 18:09:31 +01:00
parent f46942758f
commit c158894d94
5 changed files with 118 additions and 62 deletions

View file

@ -108,9 +108,10 @@ Preferences.prototype.writeToStorage = function(prefObj) {
FirefoxCom.requestSync('setPreferences', prefObj);
};
Preferences.prototype.readFromStorage = function() {
Preferences.prototype.readFromStorage = function(prefObj) {
var readFromStoragePromise = new Promise(function (resolve) {
var readPrefs = JSON.parse(FirefoxCom.requestSync('getPreferences'));
var readPrefs = JSON.parse(FirefoxCom.requestSync('getPreferences',
prefObj));
resolve(readPrefs);
});
return readFromStoragePromise;

View file

@ -24,12 +24,13 @@ var Preferences = (function PreferencesClosure() {
function Preferences() {
this.prefs = {};
this.isInitializedPromiseResolved = false;
this.initializedPromise = this.readFromStorage().then(function(prefObj) {
this.isInitializedPromiseResolved = true;
if (prefObj) {
this.prefs = prefObj;
}
}.bind(this));
this.initializedPromise = this.readFromStorage(DEFAULT_PREFERENCES).then(
function(prefObj) {
this.isInitializedPromiseResolved = true;
if (prefObj) {
this.prefs = prefObj;
}
}.bind(this));
}
Preferences.prototype = {
@ -37,7 +38,7 @@ var Preferences = (function PreferencesClosure() {
return;
},
readFromStorage: function Preferences_readFromStorage() {
readFromStorage: function Preferences_readFromStorage(prefObj) {
var readFromStoragePromise = Promise.resolve();
return readFromStoragePromise;
},
@ -45,7 +46,7 @@ var Preferences = (function PreferencesClosure() {
reset: function Preferences_reset() {
if (this.isInitializedPromiseResolved) {
this.prefs = {};
this.writeToStorage(this.prefs);
this.writeToStorage(DEFAULT_PREFERENCES);
}
},
@ -70,6 +71,12 @@ var Preferences = (function PreferencesClosure() {
valueType + '\", expected a \"' + defaultType + '\".');
return;
}
} else {
if (valueType === 'number' && (value | 0) !== value) {
console.error('Preferences_set: \'' + value +
'\' must be an \"integer\".');
return;
}
}
this.prefs[name] = value;
this.writeToStorage(this.prefs);
@ -97,13 +104,13 @@ var Preferences = (function PreferencesClosure() {
//#if B2G
//Preferences.prototype.writeToStorage = function(prefObj) {
// asyncStorage.setItem('preferences', JSON.stringify(prefObj));
// asyncStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj));
//};
//
//Preferences.prototype.readFromStorage = function() {
//Preferences.prototype.readFromStorage = function(prefObj) {
// var readFromStoragePromise = new Promise(function (resolve) {
// asyncStorage.getItem('preferences', function(prefString) {
// var readPrefs = JSON.parse(prefString);
// asyncStorage.getItem('pdfjs.preferences', function(prefStr) {
// var readPrefs = JSON.parse(prefStr);
// resolve(readPrefs);
// });
// });
@ -114,14 +121,14 @@ var Preferences = (function PreferencesClosure() {
//#if !(FIREFOX || MOZCENTRAL || B2G)
Preferences.prototype.writeToStorage = function(prefObj) {
if (isLocalStorageEnabled) {
localStorage.setItem('preferences', JSON.stringify(prefObj));
localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj));
}
};
Preferences.prototype.readFromStorage = function() {
Preferences.prototype.readFromStorage = function(prefObj) {
var readFromStoragePromise = new Promise(function (resolve) {
if (isLocalStorageEnabled) {
var readPrefs = JSON.parse(localStorage.getItem('preferences'));
var readPrefs = JSON.parse(localStorage.getItem('pdfjs.preferences'));
resolve(readPrefs);
}
});