1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
5 const { Services } = Cu.import('resource://gre/modules/Services.jsm');
7 var browser = Services.wm.getMostRecentWindow('navigator:browser');
8 var connection = browser.navigator.mozMobileConnections[0];
10 // provide a fake APN and enable data connection.
11 function enableDataConnection() {
12 let setLock = browser.navigator.mozSettings.createLock();
14 'ril.data.enabled': true,
15 'ril.data.apnSettings': [
17 {'carrier':'T-Mobile US',
18 'apn':'epc.tmobile.com',
19 'mmsc':'http://mms.msg.eng.t-mobile.com/mms/wapenc',
20 'types':['default','supl','mms']}
27 function enableRadio() {
28 if (connection.radioState !== 'enabled') {
29 connection.setRadioEnabled(true);
34 function disableRadio() {
35 if (connection.radioState === 'enabled') {
36 connection.setRadioEnabled(false);
40 addMessageListener('prepare-network', function(message) {
41 connection.addEventListener('datachange', function onDataChange() {
42 if (connection.data.connected) {
43 connection.removeEventListener('datachange', onDataChange);
44 Services.prefs.setIntPref('network.proxy.type', 2);
45 sendAsyncMessage('network-ready', true);
50 enableDataConnection();
53 addMessageListener('network-cleanup', function(message) {
54 connection.addEventListener('datachange', function onDataChange() {
55 if (!connection.data.connected) {
56 connection.removeEventListener('datachange', onDataChange);
57 Services.prefs.setIntPref('network.proxy.type', 2);
58 sendAsyncMessage('network-disabled', true);