tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });