Modify {get, set}Preferences in PdfStreamConverter.jsm to support async

This commit is contained in:
Jonas Jenwald 2014-03-26 19:38:56 +01:00
parent c920372ff2
commit 4c9c43f82b
2 changed files with 15 additions and 8 deletions

View File

@ -452,7 +452,7 @@ ChromeActions.prototype = {
getChromeWindow(this.domWindow).gFindBar getChromeWindow(this.domWindow).gFindBar
.updateControlState(result, findPrevious); .updateControlState(result, findPrevious);
}, },
setPreferences: function(prefs) { setPreferences: function(prefs, sendResponse) {
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.'); var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.');
var numberOfPrefs = 0; var numberOfPrefs = 0;
var prefValue, prefName; var prefValue, prefName;
@ -483,8 +483,11 @@ ChromeActions.prototype = {
break; break;
} }
} }
if (sendResponse) {
sendResponse(true);
}
}, },
getPreferences: function(prefs) { getPreferences: function(prefs, sendResponse) {
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.'); var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.');
var currentPrefs = {}, numberOfPrefs = 0; var currentPrefs = {}, numberOfPrefs = 0;
var prefValue, prefName; var prefValue, prefName;
@ -510,8 +513,12 @@ ChromeActions.prototype = {
break; break;
} }
} }
if (sendResponse) {
sendResponse(JSON.stringify(currentPrefs));
} else {
return JSON.stringify(currentPrefs); return JSON.stringify(currentPrefs);
} }
}
}; };
var RangedChromeActions = (function RangedChromeActionsClosure() { var RangedChromeActions = (function RangedChromeActionsClosure() {

View File

@ -106,15 +106,15 @@ var DownloadManager = (function DownloadManagerClosure() {
Preferences._writeToStorage = function (prefObj) { Preferences._writeToStorage = function (prefObj) {
return new Promise(function (resolve) { return new Promise(function (resolve) {
FirefoxCom.requestSync('setPreferences', prefObj); FirefoxCom.request('setPreferences', prefObj, resolve);
resolve();
}); });
}; };
Preferences._readFromStorage = function (prefObj) { Preferences._readFromStorage = function (prefObj) {
return new Promise(function (resolve) { return new Promise(function (resolve) {
var readPrefs = JSON.parse(FirefoxCom.requestSync('getPreferences', FirefoxCom.request('getPreferences', prefObj, function (prefStr) {
prefObj)); var readPrefs = JSON.parse(prefStr);
resolve(readPrefs); resolve(readPrefs);
}); });
});
}; };