Browse Source

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

Jonas Jenwald 11 years ago
parent
commit
4c9c43f82b
  1. 11
      extensions/firefox/content/PdfStreamConverter.jsm
  2. 8
      web/firefoxcom.js

11
extensions/firefox/content/PdfStreamConverter.jsm

@ -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() {

8
web/firefoxcom.js

@ -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);
}); });
});
}; };

Loading…
Cancel
Save