зеркало из https://github.com/mozilla/pjs.git
75 строки
2.7 KiB
JavaScript
75 строки
2.7 KiB
JavaScript
function Startup()
|
|
{
|
|
DoEnabling();
|
|
}
|
|
|
|
function DoEnabling()
|
|
{
|
|
var i;
|
|
var ftp = document.getElementById("networkProxyFTP");
|
|
var ftpPort = document.getElementById("networkProxyFTP_Port");
|
|
var gopher = document.getElementById("networkProxyGopher");
|
|
var gopherPort = document.getElementById("networkProxyGopher_Port");
|
|
var http = document.getElementById("networkProxyHTTP");
|
|
var httpPort = document.getElementById("networkProxyHTTP_Port");
|
|
var socks = document.getElementById("networkProxySOCKS");
|
|
var socksPort = document.getElementById("networkProxySOCKS_Port");
|
|
var socksVersion = document.getElementById("networkProxySOCKSVersion");
|
|
var socksVersion4 = document.getElementById("networkProxySOCKSVersion4");
|
|
var socksVersion5 = document.getElementById("networkProxySOCKSVersion5");
|
|
var ssl = document.getElementById("networkProxySSL");
|
|
var sslPort = document.getElementById("networkProxySSL_Port");
|
|
var noProxy = document.getElementById("networkProxyNone");
|
|
var autoURL = document.getElementById("networkProxyAutoconfigURL");
|
|
var autoReload = document.getElementById("autoReload");
|
|
|
|
// convenience arrays
|
|
var manual = [ftp, ftpPort, gopher, gopherPort, http, httpPort, socks, socksPort, socksVersion, socksVersion4, socksVersion5, ssl, sslPort, noProxy];
|
|
var auto = [autoURL, autoReload];
|
|
|
|
// radio buttons
|
|
var radiogroup = document.getElementById("networkProxyType");
|
|
|
|
var prefstring;
|
|
switch ( radiogroup.value ) {
|
|
case "0":
|
|
for (i = 0; i < manual.length; i++)
|
|
manual[i].setAttribute( "disabled", "true" );
|
|
for (i = 0; i < auto.length; i++)
|
|
auto[i].setAttribute( "disabled", "true" );
|
|
break;
|
|
case "1":
|
|
for (i = 0; i < auto.length; i++)
|
|
auto[i].setAttribute( "disabled", "true" );
|
|
if (!radiogroup.disabled)
|
|
for (i = 0; i < manual.length; i++) {
|
|
prefstring = manual[i].getAttribute( "prefstring" );
|
|
if (!parent.hPrefWindow.getPrefIsLocked(prefstring))
|
|
manual[i].removeAttribute( "disabled" );
|
|
}
|
|
break;
|
|
case "2":
|
|
default:
|
|
for (i = 0; i < manual.length; i++)
|
|
manual[i].setAttribute( "disabled", "true" );
|
|
if (!radiogroup.disabled)
|
|
for (i = 0; i < auto.length; i++) {
|
|
prefstring = manual[i].getAttribute( "prefstring" );
|
|
if (!parent.hPrefWindow.getPrefIsLocked(prefstring))
|
|
auto[i].removeAttribute( "disabled" );
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
const nsIProtocolProxyService = Components.interfaces.nsIProtocolProxyService;
|
|
const kPROTPROX_CID = '{e9b301c0-e0e4-11D3-a1a8-0050041caf44}';
|
|
|
|
function ReloadPAC() {
|
|
var autoURL = document.getElementById("networkProxyAutoconfigURL");
|
|
var pps = Components.classesByID[kPROTPROX_CID]
|
|
.getService(nsIProtocolProxyService);
|
|
pps.configureFromPAC(autoURL.value);
|
|
}
|
|
|