Bug 1385952, Remove usage of Preferences.jsm from PushService and PushServiceWebsocket in order to load preferences before becoming idle r=mconley

Differential Revision: https://phabricator.services.mozilla.com/D45608

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Emma Malysz 2019-09-27 20:43:48 +00:00
Родитель f9c236531f
Коммит fffa5382c1
2 изменённых файлов: 32 добавлений и 32 удалений

Просмотреть файл

@ -7,9 +7,6 @@
const { AppConstants } = ChromeUtils.import(
"resource://gre/modules/AppConstants.jsm"
);
const { Preferences } = ChromeUtils.import(
"resource://gre/modules/Preferences.jsm"
);
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { clearTimeout, setTimeout } = ChromeUtils.import(
"resource://gre/modules/Timer.jsm"
@ -71,7 +68,7 @@ XPCOMUtils.defineLazyGetter(this, "console", () => {
});
});
const prefs = new Preferences("dom.push.");
const prefs = Services.prefs.getBranch("dom.push.");
const PUSH_SERVICE_UNINIT = 0;
const PUSH_SERVICE_INIT = 1; // No serverURI
@ -105,7 +102,10 @@ const UNINIT_EVENT = 3;
// Returns the backend for the given server URI.
function getServiceForServerURI(uri) {
// Insecure server URLs are allowed for development and testing.
let allowInsecure = prefs.get("testing.allowInsecureServerURL");
let allowInsecure = prefs.getBoolPref(
"testing.allowInsecureServerURL",
false
);
if (AppConstants.MOZ_WIDGET_TOOLKIT == "android") {
if (uri.scheme == "https" || (allowInsecure && uri.scheme == "http")) {
return CONNECTION_PROTOCOLS;
@ -342,21 +342,21 @@ var PushService = {
break;
case "nsPref:changed":
if (aData == "dom.push.serverURL") {
if (aData == "serverURL") {
console.debug(
"observe: dom.push.serverURL changed for websocket",
prefs.get("serverURL")
prefs.getStringPref("serverURL")
);
this._stateChangeProcessEnqueue(_ =>
this._changeServerURL(
prefs.get("serverURL"),
prefs.getStringPref("serverURL"),
CHANGING_SERVICE_EVENT
)
);
} else if (aData == "dom.push.connection.enabled") {
} else if (aData == "connection.enabled") {
this._stateChangeProcessEnqueue(_ =>
this._changeStateConnectionEnabledEvent(
prefs.get("connection.enabled")
prefs.getBoolPref("connection.enabled")
)
);
}
@ -465,7 +465,7 @@ var PushService = {
}
return this._startService(service, uri, options).then(_ =>
this._changeStateConnectionEnabledEvent(
prefs.get("connection.enabled")
prefs.getBoolPref("connection.enabled")
)
);
}
@ -477,7 +477,7 @@ var PushService = {
// The service has not been running - start it.
return this._startService(service, uri, options).then(_ =>
this._changeStateConnectionEnabledEvent(
prefs.get("connection.enabled")
prefs.getBoolPref("connection.enabled")
)
);
}
@ -489,7 +489,7 @@ var PushService = {
.then(_ => this._startService(service, uri, options))
.then(_ =>
this._changeStateConnectionEnabledEvent(
prefs.get("connection.enabled")
prefs.getBoolPref("connection.enabled")
)
);
}
@ -530,7 +530,7 @@ var PushService = {
this._setState(PUSH_SERVICE_ACTIVATING);
prefs.observe("serverURL", this);
prefs.addObserver("serverURL", this);
Services.obs.addObserver(this, "quit-application");
if (options.serverURI) {
@ -547,7 +547,10 @@ var PushService = {
// This is only used for testing. Different tests require connecting to
// slightly different URLs.
await this._stateChangeProcessEnqueue(_ =>
this._changeServerURL(prefs.get("serverURL"), STARTING_SERVICE_EVENT)
this._changeServerURL(
prefs.getStringPref("serverURL"),
STARTING_SERVICE_EVENT
)
);
}
},
@ -567,7 +570,7 @@ var PushService = {
Services.obs.addObserver(this, "network:offline-status-changed");
// Used to monitor if the user wishes to disable Push.
prefs.observe("connection.enabled", this);
prefs.addObserver("connection.enabled", this);
// Prunes expired registrations and notifies dormant service workers.
Services.obs.addObserver(this, "idle-daily");
@ -651,7 +654,7 @@ var PushService = {
return;
}
prefs.ignore("connection.enabled", this);
prefs.removeObserver("connection.enabled", this);
Services.obs.removeObserver(this, "network:offline-status-changed");
Services.obs.removeObserver(this, "clear-origin-attributes-data");
@ -673,7 +676,7 @@ var PushService = {
return;
}
prefs.ignore("serverURL", this);
prefs.removeObserver("serverURL", this);
Services.obs.removeObserver(this, "quit-application");
await this._stateChangeProcessEnqueue(_ => this._shutdownService());
@ -817,7 +820,7 @@ var PushService = {
"receivedPushMessage: quota update timeout missing?"
);
}
}, prefs.get("quotaUpdateDelay"));
}, prefs.getIntPref("quotaUpdateDelay"));
this._updateQuotaTimeouts.add(timeoutID);
}
return this._decryptAndNotifyApp(record, messageID, headers, data);

Просмотреть файл

@ -5,9 +5,6 @@
"use strict";
const { Preferences } = ChromeUtils.import(
"resource://gre/modules/Preferences.jsm"
);
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
@ -60,7 +57,7 @@ const kDELIVERY_REASON_TO_CODE = {
[Ci.nsIPushErrorReporter.DELIVERY_INTERNAL_ERROR]: 303,
};
const prefs = new Preferences("dom.push.");
const prefs = Services.prefs.getBranch("dom.push.");
const EXPORTED_SYMBOLS = ["PushServiceWebSocket"];
@ -255,7 +252,7 @@ var PushServiceWebSocket = {
},
get _UAID() {
return prefs.get("userAgentID");
return prefs.getStringPref("userAgentID");
},
set _UAID(newID) {
@ -268,7 +265,7 @@ var PushServiceWebSocket = {
return;
}
console.debug("New _UAID", newID);
prefs.set("userAgentID", newID);
prefs.setStringPref("userAgentID", newID);
},
_ws: null,
@ -341,7 +338,7 @@ var PushServiceWebSocket = {
this._makeWebSocket = options.makeWebSocket;
}
this._requestTimeout = prefs.get("requestTimeout");
this._requestTimeout = prefs.getIntPref("requestTimeout");
return Promise.resolve();
},
@ -356,7 +353,7 @@ var PushServiceWebSocket = {
console.debug("shutdownWS()");
if (this._currentState == STATE_READY) {
prefs.ignore("userAgentID", this);
prefs.removeObserver("userAgentID", this);
}
this._currentState = STATE_SHUT_DOWN;
@ -421,8 +418,8 @@ var PushServiceWebSocket = {
// Calculate new timeout, but cap it to pingInterval.
let retryTimeout =
prefs.get("retryBaseInterval") * Math.pow(2, this._retryFailCount);
retryTimeout = Math.min(retryTimeout, prefs.get("pingInterval"));
prefs.getIntPref("retryBaseInterval") * Math.pow(2, this._retryFailCount);
retryTimeout = Math.min(retryTimeout, prefs.getIntPref("pingInterval"));
this._retryFailCount++;
@ -473,13 +470,13 @@ var PushServiceWebSocket = {
}
this._pingTimer.init(
this,
prefs.get("pingInterval"),
prefs.getIntPref("pingInterval"),
Ci.nsITimer.TYPE_ONE_SHOT
);
},
_makeWebSocket(uri) {
if (!prefs.get("connection.enabled")) {
if (!prefs.getBoolPref("connection.enabled")) {
console.warn(
"makeWebSocket: connection.enabled is not set to true.",
"Aborting."
@ -609,7 +606,7 @@ var PushServiceWebSocket = {
function finishHandshake() {
this._UAID = reply.uaid;
this._currentState = STATE_READY;
prefs.observe("userAgentID", this);
prefs.addObserver("userAgentID", this);
// Handle broadcasts received in response to the "hello" message.
if (!ObjectUtils.isEmpty(reply.broadcasts)) {