gecko-dev/dom/media/tests/mochitest/NetworkPreparationChromeScript.js
2017-01-12 14:16:52 -08:00

47 lines
1.4 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
const { Services } = Cu.import('resource://gre/modules/Services.jsm');
var browser = Services.wm.getMostRecentWindow('navigator:browser');
var connection = browser.navigator.mozMobileConnections[0];
// provide a fake APN and enable data connection.
// enable 3G radio
function enableRadio() {
if (connection.radioState !== 'enabled') {
connection.setRadioEnabled(true);
}
}
// disable 3G radio
function disableRadio() {
if (connection.radioState === 'enabled') {
connection.setRadioEnabled(false);
}
}
addMessageListener('prepare-network', function(message) {
connection.addEventListener('datachange', function onDataChange() {
if (connection.data.connected) {
connection.removeEventListener('datachange', onDataChange);
Services.prefs.setIntPref('network.proxy.type', 2);
sendAsyncMessage('network-ready', true);
}
});
enableRadio();
});
addMessageListener('network-cleanup', function(message) {
connection.addEventListener('datachange', function onDataChange() {
if (!connection.data.connected) {
connection.removeEventListener('datachange', onDataChange);
Services.prefs.setIntPref('network.proxy.type', 2);
sendAsyncMessage('network-disabled', true);
}
});
disableRadio();
});