зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
f9c236531f
Коммит
fffa5382c1
|
@ -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)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче