NetworkPreparationChromeScript.js (1306B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 var browser = Services.wm.getMostRecentWindow("navigator:browser"); 5 var connection = browser.navigator.mozMobileConnections[0]; 6 7 // provide a fake APN and enable data connection. 8 // enable 3G radio 9 function enableRadio() { 10 if (connection.radioState !== "enabled") { 11 connection.setRadioEnabled(true); 12 } 13 } 14 15 // disable 3G radio 16 function disableRadio() { 17 if (connection.radioState === "enabled") { 18 connection.setRadioEnabled(false); 19 } 20 } 21 22 addMessageListener("prepare-network", function (message) { 23 connection.addEventListener("datachange", function onDataChange() { 24 if (connection.data.connected) { 25 connection.removeEventListener("datachange", onDataChange); 26 Services.prefs.setIntPref("network.proxy.type", 2); 27 sendAsyncMessage("network-ready", true); 28 } 29 }); 30 31 enableRadio(); 32 }); 33 34 addMessageListener("network-cleanup", function (message) { 35 connection.addEventListener("datachange", function onDataChange() { 36 if (!connection.data.connected) { 37 connection.removeEventListener("datachange", onDataChange); 38 Services.prefs.setIntPref("network.proxy.type", 2); 39 sendAsyncMessage("network-disabled", true); 40 } 41 }); 42 disableRadio(); 43 });