Skip to content
Snippets Groups Projects
network-settings.js 75.76 KiB
// Copyright (c) 2020, The Tor Project, Inc.
// See LICENSE for licensing information.
//
// vim: set sw=2 sts=2 ts=8 et syntax=javascript:

// TODO: if clean start and "Unable to read Tor settings" error is displayed, we should not bootstrap Tor or start the browser.

const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
const Cr = Components.results;

Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
                          "resource://torlauncher/modules/tl-util.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherLogger",
                          "resource://torlauncher/modules/tl-logger.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherBridgeDB",
                          "resource://torlauncher/modules/tl-bridgedb.jsm");

const kPrefPromptForLocale = "extensions.torlauncher.prompt_for_locale";
const kPrefLocale = "intl.locale.requested";
const kPrefMatchOSLocale = "intl.locale.matchOS";

// The recommended type is listed first in the dropdown menu.
const kPrefDefaultBridgeRecommendedType =
                   "extensions.torlauncher.default_bridge_recommended_type";
const kPrefDefaultBridgeType = "extensions.torlauncher.default_bridge_type";

// The type of bridges to request from BridgeDB via Moat.
const kPrefBridgeDBType = "extensions.torlauncher.bridgedb_bridge_type";

// The bridges that we receive from BridgeDB via Moat are stored as
// extensions.torlauncher.bridgedb_bridge.0,
// extensions.torlauncher.bridgedb_bridge.1, and so on.
const kPrefBranchBridgeDBBridge = "extensions.torlauncher.bridgedb_bridge.";

const kSupportURL = "support.torproject.org/#connectingtotor";

const kTorProcessReadyTopic = "TorProcessIsReady";
const kTorProcessExitedTopic = "TorProcessExited";
const kTorProcessDidNotStartTopic = "TorProcessDidNotStart";
const kTorShowProgressPanelTopic = "TorShowProgressPanel";
const kTorBootstrapStatusTopic = "TorBootstrapStatus";
const kTorBootstrapErrorTopic = "TorBootstrapError";
const kTorLogHasWarnOrErrTopic = "TorLogHasWarnOrErr";

const kWizardFirstPageID = "first";
const kWizardDiscardSettingsPageID = "discardSettings";
const kWizardProgressPageID = "progress";                 // wizard
const kNetworkSettingsProgressPanelID = "progressPanel";  // non wizard

const kLocaleList = "localeList";
const kUseProxyCheckbox = "useProxy";
const kProxyTypeMenulist = "proxyType";
const kProxyAddr = "proxyAddr";
const kProxyPort = "proxyPort";
const kProxyUsername = "proxyUsername";
const kProxyPassword = "proxyPassword";
const kUseFirewallPortsCheckbox = "useFirewallPorts";
const kFirewallAllowedPorts = "firewallAllowedPorts";
const kUseBridgesCheckbox = "useBridges";
const kDefaultBridgesRadio = "bridgeRadioDefault";
const kDefaultBridgeTypeMenuList = "defaultBridgeType";
const kBridgeDBBridgesRadio = "bridgeRadioBridgeDB";
const kBridgeDBContainer = "bridgeDBContainer";
const kBridgeDBRequestButton = "bridgeDBRequestButton";
const kBridgeDBResult = "bridgeDBResult";
const kCustomBridgesRadio = "bridgeRadioCustom";