Bug 1440022: hook up remote-settings to broadcast messages r=lina

MozReview-Commit-ID: 3TYBqH94rSD

--HG--
extra : rebase_source : 64da9efe122bae6225bdb66e087ef234b8c2ce3c
This commit is contained in:
Ethan Glasser-Camp 2018-05-08 11:53:06 -04:00
parent 6b074ef615
commit 373f29fd9d

View File

@ -2,11 +2,14 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* global __URI__ */
"use strict";
var EXPORTED_SYMBOLS = [
"RemoteSettings",
"jexlFilterFunc"
"jexlFilterFunc",
"remoteSettingsBroadcastHandler",
];
ChromeUtils.import("resource://gre/modules/Services.jsm");
@ -26,6 +29,8 @@ ChromeUtils.defineModuleGetter(this, "ClientEnvironmentBase",
"resource://gre/modules/components-utils/ClientEnvironment.jsm");
ChromeUtils.defineModuleGetter(this, "FilterExpressions",
"resource://gre/modules/components-utils/FilterExpressions.jsm");
ChromeUtils.defineModuleGetter(this, "pushBroadcastService",
"resource://gre/modules/PushBroadcastService.jsm");
const PREF_SETTINGS_SERVER = "services.settings.server";
const PREF_SETTINGS_DEFAULT_BUCKET = "services.settings.default_bucket";
@ -733,7 +738,23 @@ function remoteSettingsFunction() {
Services.obs.notifyObservers(null, "remote-settings-changes-polled");
};
const broadcastID = "remote-settings/monitor_changes";
const currentVersion = Services.prefs.getStringValue(PREF_SETTINGS_LAST_ETAG, "");
const moduleInfo = {
moduleURI: __URI__,
symbolName: "remoteSettingsBroadcastHandler",
};
pushBroadcastService.addListener(broadcastID, currentVersion,
moduleInfo);
return remoteSettings;
}
var RemoteSettings = remoteSettingsFunction();
var remoteSettingsBroadcastHandler = {
async receivedBroadcastMessage(data, broadcastID) {
return RemoteSettings.pollChanges();
}
};