Теперь для WebExtension API стало возможно прокси-запросы DNS. Поскольку в Nightly появилась ошибка 1381290, прокси-скрипт может возвращать массив объектов вместо строки. В предложении объекты обладают следующими свойствами:
- |тип| -- строка, одна из http|https|socks5|socks4|socks|direct|ignore|. обратите внимание, что socks — это синоним socks5. игнорировать означает, что Firefox должен обрабатывать этот URI через свои глобальные настройки прокси (которые могут быть wpad, pac, system, direct/none или прокси-сервер) или другие установленные дополнения.
- |хост| -- нить
- |порт| -- целое число от 1 до 65536 (TCP/IP не позволяет использовать порты за пределами этого диапазона)
- |имя пользователя| -- необязательная строка
- |пароль| -- необязательная строка
- |прокси-DNS| -- необязательное логическое значение. по умолчанию ложь. если true, TRANSPARENT_PROXY_RESOLVES_HOST устанавливается как флаг в nsIProxyInfo.flags, чтобы прокси-сервер использовался для разрешения определенных DNS-запросов.
- |отказоустойчивость| -- необязательное целое число. по умолчанию 1. Количество секунд до истечения времени ожидания и попытки следующего прокси-сервера в отказоустойчивом массиве.
- |отказоустойчивость| -- необязательный массив объектов с такими же свойствами. ноль для завершения. по умолчанию ноль (без аварийного переключения, что, по моему опыту, является желаемым случаем в 99% случаев).
Например:
{
type: "socks",
host: "foo.com",
port: 1080,
proxyDNS: true,
failoverTimeout: 1,
failover: {
type: "socks",
host: "bar.com",
port: 1080,
proxyDNS: true,
failoverTimeout: 0,
failover: null
}
}
Но в самом патче я не вижу в этом массиве опции «отказоустойчивость»:
+ for (let prop of ["type", "host", "port", "username", "password", "proxyDNS", "failoverTimeout"]) {
+ this[prop](proxyData);
+ }
И «отказоустойчивый» сервер, похоже, определяется следующим образом:
+ let failoverProxy = proxyDataList.length > 0 ? this.createProxyInfoFromData(proxyDataList, defaultProxyInfo) : defaultProxyInfo;
Связанная информация:
person
xy deng
schedule
08.09.2017