connection.js

来自「现在很火的邮件客户端软件thunderbird的源码」· JavaScript 代码 · 共 185 行

JS
185
字号
# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-# ***** BEGIN LICENSE BLOCK *****# Version: MPL 1.1/GPL 2.0/LGPL 2.1## The contents of this file are subject to the Mozilla Public License Version# 1.1 (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at# http://www.mozilla.org/MPL/## Software distributed under the License is distributed on an "AS IS" basis,# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License# for the specific language governing rights and limitations under the# License.## The Original Code is the Thunderbird Preferences System.## The Initial Developer of the Original Code is# Ben Goodger.# Portions created by the Initial Developer are Copyright (C) 2005# the Initial Developer. All Rights Reserved.## Contributor(s):#   Ben Goodger <ben@mozilla.org>#   Scott MacGregor <mscott@mozilla.org>## Alternatively, the contents of this file may be used under the terms of# either the GNU General Public License Version 2 or later (the "GPL"), or# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),# in which case the provisions of the GPL or the LGPL are applicable instead# of those above. If you wish to allow use of your version of this file only# under the terms of either the GPL or the LGPL, and not to allow others to# use your version of this file under the terms of the MPL, indicate your# decision by deleting the provisions above and replace them with the notice# and other provisions required by the GPL or the LGPL. If you do not delete# the provisions above, a recipient may use your version of this file under# the terms of any one of the MPL, the GPL or the LGPL.## ***** END LICENSE BLOCK *****var gConnectionsDialog = {  beforeAccept: function ()  {    var proxyTypePref = document.getElementById("network.proxy.type");    if (proxyTypePref.value == 2) {      this.doAutoconfigURLFixup();      return true;    }    if (proxyTypePref.value != 1)      return true;    var httpProxyURLPref = document.getElementById("network.proxy.http");    var httpProxyPortPref = document.getElementById("network.proxy.http_port");    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    if (shareProxiesPref.value) {      var proxyPrefs = ["ssl", "socks"];      for (var i = 0; i < proxyPrefs.length; ++i) {        var proxyServerURLPref = document.getElementById("network.proxy." + proxyPrefs[i]);        var proxyPortPref = document.getElementById("network.proxy." + proxyPrefs[i] + "_port");        var backupServerURLPref = document.getElementById("network.proxy.backup." + proxyPrefs[i]);        var backupPortPref = document.getElementById("network.proxy.backup." + proxyPrefs[i] + "_port");        backupServerURLPref.value = proxyServerURLPref.value;        backupPortPref.value = proxyPortPref.value;        proxyServerURLPref.value = httpProxyURLPref.value;        proxyPortPref.value = httpProxyPortPref.value;      }    }    return true;  },    proxyTypeChanged: function ()  {    var proxyTypePref = document.getElementById("network.proxy.type");        // Update http    var httpProxyURLPref = document.getElementById("network.proxy.http");    httpProxyURLPref.disabled = proxyTypePref.value != 1;    var httpProxyPortPref = document.getElementById("network.proxy.http_port");    httpProxyPortPref.disabled = proxyTypePref.value != 1;    // Now update the other protocols    this.updateProtocolPrefs();    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    shareProxiesPref.disabled = proxyTypePref.value != 1;        var noProxiesPref = document.getElementById("network.proxy.no_proxies_on");    noProxiesPref.disabled = proxyTypePref.value != 1;        var autoconfigURLPref = document.getElementById("network.proxy.autoconfig_url");    autoconfigURLPref.disabled = proxyTypePref.value != 2;        var disableReloadPref = document.getElementById("pref.advanced.proxies.disable_button.reload");    disableReloadPref.disabled = proxyTypePref.value != 2;  },    readProxyType: function ()  {    this.proxyTypeChanged();    return undefined;  },    updateProtocolPrefs: function ()  {    var proxyTypePref = document.getElementById("network.proxy.type");    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    var proxyPrefs = ["ssl", "socks"];    for (var i = 0; i < proxyPrefs.length; ++i) {      var proxyServerURLPref = document.getElementById("network.proxy." + proxyPrefs[i]);      var proxyPortPref = document.getElementById("network.proxy." + proxyPrefs[i] + "_port");            // Restore previous per-proxy custom settings, if present.       if (!shareProxiesPref.value) {        var backupServerURLPref = document.getElementById("network.proxy.backup." + proxyPrefs[i]);        var backupPortPref = document.getElementById("network.proxy.backup." + proxyPrefs[i] + "_port");        if (backupServerURLPref.hasUserValue) {          proxyServerURLPref.value = backupServerURLPref.value;          backupServerURLPref.reset();        }        if (backupPortPref.hasUserValue) {          proxyPortPref.value = backupPortPref.value;          backupPortPref.reset();        }      }      proxyServerURLPref.updateElements();      proxyPortPref.updateElements();      proxyServerURLPref.disabled = proxyTypePref.value != 1 || shareProxiesPref.value;      proxyPortPref.disabled = proxyServerURLPref.disabled;    }    var socksVersionPref = document.getElementById("network.proxy.socks_version");    socksVersionPref.disabled = proxyTypePref.value != 1 || shareProxiesPref.value;        return undefined;  },    readProxyProtocolPref: function (aProtocol, aIsPort)  {    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    if (shareProxiesPref.value) {      var pref = document.getElementById("network.proxy.http" + (aIsPort ? "_port" : ""));          return pref.value;    }        var backupPref = document.getElementById("network.proxy.backup." + aProtocol + (aIsPort ? "_port" : ""));    return backupPref.hasUserValue ? backupPref.value : undefined;  },  reloadPAC: function ()  {    var autoURL = document.getElementById("networkProxyAutoconfigURL");    var pps = Components.classes["@mozilla.org/network/protocol-proxy-service;1"]                        .getService(Components.interfaces.nsPIProtocolProxyService);    pps.configureFromPAC(autoURL.value);  },    doAutoconfigURLFixup: function ()  {    var autoURL = document.getElementById("networkProxyAutoconfigURL");    var autoURLPref = document.getElementById("network.proxy.autoconfig_url");    var URIFixup = Components.classes["@mozilla.org/docshell/urifixup;1"]                             .getService(Components.interfaces.nsIURIFixup);    try {      autoURLPref.value = autoURL.value = URIFixup.createFixupURI(autoURL.value, 0).spec;    } catch(ex) {}  },    readHTTPProxyServer: function ()  {    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    if (shareProxiesPref.value)      this.updateProtocolPrefs();    return undefined;  },    readHTTPProxyPort: function ()  {    var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings");    if (shareProxiesPref.value)      this.updateProtocolPrefs();    return undefined;  },};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?