mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 820617 - Add a hook to make NetworkManager not manage offline status and use it in Marionette for B2G CI. r=jgriffin
This commit is contained in:
parent
e70f90dc76
commit
41571aeead
@ -591,6 +591,13 @@ pref("browser.prompt.allowNative", false);
|
||||
// a restart is required to enable a new value.
|
||||
pref("network.activity.blipIntervalMilliseconds", 250);
|
||||
|
||||
// By default we want the NetworkManager service to manage Gecko's offline
|
||||
// status for us according to the state of Wifi/cellular data connections.
|
||||
// In some environments, such as the emulator or hardware with other network
|
||||
// connectivity, this is not desireable, however, in which case this pref
|
||||
// can be flipped to false.
|
||||
pref("network.gonk.manage-offline-status", true);
|
||||
|
||||
pref("jsloader.reuseGlobal", true);
|
||||
|
||||
// Enable font inflation for browser tab content.
|
||||
|
@ -27,7 +27,9 @@ const TOPIC_INTERFACE_REGISTERED = "network-interface-registered";
|
||||
const TOPIC_INTERFACE_UNREGISTERED = "network-interface-unregistered";
|
||||
const TOPIC_DEFAULT_ROUTE_CHANGED = "network-default-route-changed";
|
||||
const TOPIC_MOZSETTINGS_CHANGED = "mozsettings-changed";
|
||||
const TOPIC_PREF_CHANGED = "nsPref:changed";
|
||||
const TOPIC_XPCOM_SHUTDOWN = "xpcom-shutdown";
|
||||
const PREF_MANAGE_OFFLINE_STATUS = "network.gonk.manage-offline-status";
|
||||
|
||||
// TODO, get USB RNDIS interface name automatically.(see Bug 776212)
|
||||
const DEFAULT_USB_INTERFACE_NAME = "rndis0";
|
||||
@ -109,9 +111,7 @@ function NetworkManager() {
|
||||
|
||||
debug("Starting worker.");
|
||||
this.worker = new ChromeWorker("resource://gre/modules/net_worker.js");
|
||||
this.worker.onmessage = function onmessage(event) {
|
||||
this.handleWorkerMessage(event);
|
||||
}.bind(this);
|
||||
this.worker.onmessage = this.handleWorkerMessage.bind(this);
|
||||
this.worker.onerror = function onerror(event) {
|
||||
debug("Received error from worker: " + event.filename +
|
||||
":" + event.lineno + ": " + event.message + "\n");
|
||||
@ -122,6 +122,14 @@ function NetworkManager() {
|
||||
// Callbacks to invoke when a reply arrives from the net_worker.
|
||||
this.controlCallbacks = Object.create(null);
|
||||
|
||||
try {
|
||||
this._manageOfflineStatus =
|
||||
Services.prefs.getBoolPref(PREF_MANAGE_OFFLINE_STATUS);
|
||||
} catch(ex) {
|
||||
// Ignore.
|
||||
}
|
||||
Services.prefs.addObserver(PREF_MANAGE_OFFLINE_STATUS, this, false);
|
||||
|
||||
// Default values for internal and external interfaces.
|
||||
this._tetheringInterface = Object.create(null);
|
||||
this._tetheringInterface[TETHERING_TYPE_USB] = {externalInterface: DEFAULT_3G_INTERFACE_NAME,
|
||||
@ -224,6 +232,11 @@ NetworkManager.prototype = {
|
||||
let setting = JSON.parse(data);
|
||||
this.handle(setting.key, setting.value);
|
||||
break;
|
||||
case TOPIC_PREF_CHANGED:
|
||||
this._manageOfflineStatus =
|
||||
Services.prefs.getBoolPref(PREF_MANAGE_OFFLINE_STATUS);
|
||||
debug(PREF_MANAGE_OFFLINE_STATUS + " has changed to " + this._manageOfflineStatus);
|
||||
break;
|
||||
case TOPIC_XPCOM_SHUTDOWN:
|
||||
Services.obs.removeObserver(this, TOPIC_XPCOM_SHUTDOWN);
|
||||
Services.obs.removeObserver(this, TOPIC_MOZSETTINGS_CHANGED);
|
||||
@ -279,6 +292,8 @@ NetworkManager.prototype = {
|
||||
debug("Network '" + network.name + "' unregistered.");
|
||||
},
|
||||
|
||||
_manageOfflineStatus: true,
|
||||
|
||||
networkInterfaces: null,
|
||||
|
||||
_preferredNetworkType: DEFAULT_PREFERRED_NETWORK_TYPE,
|
||||
@ -342,13 +357,13 @@ NetworkManager.prototype = {
|
||||
},
|
||||
|
||||
handleWorkerMessage: function handleWorkerMessage(e) {
|
||||
debug("NetworkManager received message from worker: " + JSON.stringify(e.data));
|
||||
let response = e.data;
|
||||
let id = response.id;
|
||||
let callback = this.controlCallbacks[id];
|
||||
if (callback) {
|
||||
callback.call(this, response);
|
||||
}
|
||||
debug("NetworkManager received message from worker: " + JSON.stringify(e));
|
||||
},
|
||||
|
||||
/**
|
||||
@ -405,7 +420,10 @@ NetworkManager.prototype = {
|
||||
}
|
||||
this.setDefaultRouteAndDNS(oldActive);
|
||||
}
|
||||
|
||||
if (this._manageOfflineStatus) {
|
||||
Services.io.offline = !this.active;
|
||||
}
|
||||
},
|
||||
|
||||
setDefaultRouteAndDNS: function setDefaultRouteAndDNS(oldInterface) {
|
||||
|
@ -41,6 +41,10 @@ Cu.import("resource://gre/modules/services-common/log4moz.js");
|
||||
let logger = Log4Moz.repository.getLogger("Marionette");
|
||||
logger.info('marionette-actors.js loaded');
|
||||
|
||||
Services.prefs.setBoolPref("network.gonk.manage-offline-status", false);
|
||||
Services.io.manageOfflineStatus = false;
|
||||
Services.io.offline = false;
|
||||
|
||||
// This is used to prevent newSession from returning before the telephony
|
||||
// API's are ready; see bug 792647. This assumes that marionette-actors.js
|
||||
// will be loaded before the 'system-message-listener-ready' message
|
||||
|
@ -60,8 +60,6 @@ let checkTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
|
||||
* If the actor returns an ID, we start the listeners. Otherwise, nothing happens.
|
||||
*/
|
||||
function registerSelf() {
|
||||
Services.io.manageOfflineStatus = false;
|
||||
Services.io.offline = false;
|
||||
let msg = {value: winUtil.outerWindowID, href: content.location.href};
|
||||
let register = sendSyncMessage("Marionette:register", msg);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user