chrome.proxy

Açıklama

Chrome'un proxy ayarlarını yönetmek için chrome.proxy API'yi kullanın. Bu API, proxy yapılandırmasını almak ve ayarlamak için API türündeki ChromeSetting prototipini kullanır.

İzinler

proxy

Proxy ayarları API'sini kullanmak için uzantı manifestinde "proxy" iznini beyan etmeniz gerekir. Örneğin:

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

Kavramlar ve kullanım

Proxy ayarları bir proxy.ProxyConfig nesnesinde tanımlanır. Chrome'un proxy ayarlarına bağlı olarak ayarlar proxy.ProxyRules veya proxy.PacScript içerebilir.

Proxy modları

Bir ProxyConfig nesnesinin mode özelliği, Chrome'un proxy kullanımıyla ilgili genel davranışını belirler. Aşağıdaki değerleri alabilir:

direct
direct modunda tüm bağlantılar herhangi bir proxy kullanılmadan doğrudan oluşturulur. Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez.
auto_detect
auto_detect modunda proxy yapılandırması, http://wpad/wpad.dat adresinden indirilebilen bir PAC komut dosyası tarafından belirlenir. Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez.
pac_script
pac_script modunda proxy yapılandırması, proxy.PacScript nesnesinde belirtilen URL'den veya tam anlamıyla proxy.PacScript nesnesinde belirtilen data öğesinden alınan bir PAC komut dosyası tarafından belirlenir. Bunun yanı sıra, bu mod ProxyConfig nesnesinde başka parametrelere izin vermez.
fixed_servers
fixed_servers modunda proxy yapılandırması bir proxy.ProxyRules nesnesinde kodlanır. Yapısı Proxy kuralları bölümünde açıklanmıştır. Bunun yanı sıra fixed_servers modu, ProxyConfig nesnesinde başka parametreye izin vermez.
system
system modunda proxy yapılandırması işletim sisteminden alınır. Bu mod, ProxyConfig nesnesinde başka parametrelere izin vermez. system modunun proxy yapılandırması yok ayarlamaktan farklı olduğunu unutmayın. İkinci durumda, proxy yapılandırmasını hiçbir komut satırı seçeneği etkilemiyorsa Chrome sistem ayarlarına geri döner.

Proxy kuralları

proxy.ProxyRules nesnesi, bir singleProxy özelliğini veya proxyForHttp, proxyForHttps, proxyForFtp ve fallbackProxy öğelerinin bir alt kümesini içerebilir.

İlk örnekte HTTP, HTTPS ve FTP trafiğine, proxy sunucu üzerinden proxy uygulanır. Diğer trafik doğrudan gönderilir. İkinci durumda davranış biraz daha belirsizdir: Bir proxy sunucusu HTTP, HTTPS veya FTP protokolü için yapılandırılmışsa ilgili trafik, belirtilen sunucu üzerinden proxy sunucu üzerinden kullanılır. Böyle bir proxy sunucu belirtilmemişse veya trafik HTTP, HTTPS ya da FTP dışında bir protokol kullanıyorsa fallbackProxy kullanılır. fallbackProxy belirtilmezse trafik, proxy sunucu olmadan doğrudan gönderilir.

Proxy sunucu nesneleri

proxy.ProxyServer nesnesinde bir proxy sunucu yapılandırılır. Proxy sunucu bağlantısı (host özelliği tarafından tanımlanır), scheme özelliğinde tanımlanan protokolü kullanır. scheme belirtilmezse proxy bağlantısı varsayılan olarak http değerine ayarlanır.

proxy.ProxyServer nesnesinde port tanımlanmamışsa bağlantı noktası şemadan türetilir. Varsayılan bağlantı noktaları şunlardır:

ŞemaBağlantı noktası
http80
https443
socks41080
socks51080

Atlama listesi

Tek tek sunucular, bypassList ile proxy kullanımı dışında tutulabilir. Bu liste aşağıdaki girişleri içerebilir:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN kalıbıyla eşleşen tüm ana makine adlarını eşleştir. Baştaki ".", "*." olarak yorumlanır.

Örnekler: "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".

KalıpŞununla eşleşiyor:Eşleşmez
".foobar.com""www.foobar.com""foobar.com"
"*.foobar.com""www.foobar.com""foobar.com"
"foobar.com""foobar.com""www.foobar.com"
"*foobar.com""foobar.com", "www.foobar.com" "foofoobar.com"
[SCHEME://]IP_LITERAL[:PORT]

IP adresi değişmez değeri olan URL'leri eşleştirin. Kavram olarak bu, ilk duruma benzer ancak IP değişmez standartlaştırmayı işlemek için özel durumlar vardır. Örneğin, IPv6 standartlaştırma dahili olarak yapıldığından "[0:0:0::1]" üzerindeki eşleştirme, "[::1]" üzerindeki eşleşmeyle aynıdır.

Örnekler: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

Verilen aralıkta IP sabit değeri (IP_LITERAL) içeren herhangi bir URL'yi eşleştirin. IP aralığı (PREFIX_LENGTH_IN_BITS), CIDR gösterimi kullanılarak belirtilir.

Verilen aralıkta IP değişmez değerini içeren herhangi bir URL'yi eşleştirin. IP aralığı, CIDR gösterimi kullanılarak belirtilir. Örnekler: "192.168.1.1/16", "fefe:13::abc/33"

<local>

<local> dizesi, basit ana makine adlarıyla eşleşir. Basit bir ana makine adı, nokta içermeyen ve IP değişmez değeri olan bir addır. Örneğin, example ve localhost basit ana makine adlarıdır. example.com, example. ve [::1] ise basit ana makine adları değildir.

Örnek: "<local>"

Örnekler

Aşağıdaki kod, foobar.com dışındaki tüm sunuculara yapılan HTTP bağlantıları için bir SOCKS 5 proxy'si ayarlar ve diğer tüm protokoller için doğrudan bağlantılar kullanır. Gizli pencereler, ayarları normal pencerelerden devraldığından, ayarlar normal ve gizli pencerelere uygulanır. Types API belgelerine de bakın.

var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "socks5",
      host: "1.2.3.4"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);

Aşağıdaki kod, özel bir PAC komut dosyası ayarlar.

var config = {
  mode: "pac_script",
  pacScript: {
    data: "function FindProxyForURL(url, host) {\n" +
          "  if (host == 'foobar.com')\n" +
          "    return 'PROXY blackhole:80';\n" +
          "  return 'DIRECT';\n" +
          "}"
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);

Sonraki snippet, geçerli etkin proxy ayarlarını sorgular. Etkin proxy ayarları başka bir uzantı veya bir politika tarafından belirlenebilir. Ayrıntılı bilgi için Types API belgelerine bakın.

chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);

set() nesnesine iletilen value nesnesinin, get() öğesinin geri çağırma işlevine geçirilen value nesnesiyle aynı olmadığını unutmayın. İkinci kural, bir rules.proxyForHttp.port öğesi içerir.

Türler

Mode

Chrome 54 ve sonraki sürümler

Enum

"direct"

"auto_detect"

"pac_script"

"fixed_servers"

"system"

PacScript

Proxy otomatik yapılandırma bilgilerini içeren bir nesne. Alanlardan tam olarak biri boş bırakılamaz.

Özellikler

  • veri

    string isteğe bağlı

    PAC komut dosyası.

  • zorunlu

    boole isteğe bağlı

    Değer true ise geçersiz bir PAC komut dosyası, ağ yığınının doğrudan bağlantılara dönmesini engeller. Varsayılan olarak false değerine ayarlanır.

  • url

    string isteğe bağlı

    Kullanılacak PAC dosyasının URL'si.

ProxyConfig

Tam proxy yapılandırmasını içeren bir nesne.

Özellikler

  • mod

    'direct' = Hiçbir zaman proxy kullanma 'auto_detect' = Proxy ayarlarını otomatik olarak algıla 'pac_script' = Belirtilen PAC komut dosyasını kullan 'fixed_servers' = Proxy sunucularını el ile belirle 'system' = Sistem proxy ayarlarını kullan

  • pacScript

    PacScript isteğe bağlı

    Bu yapılandırma için proxy otomatik yapılandırma (PAC) komut dosyası. Bunu "pac_script" modu için kullanın.

  • kurallar

    ProxyRules isteğe bağlı

    Bu yapılandırmayı açıklayan proxy kuralları. Bunu "fixed_servers" modu için kullanın.

ProxyRules

Tüm protokoller için proxy kuralları grubunu kapsülleyen bir nesne. "singleProxy" veya "proxyForHttps", "proxyForHttps", "proxyForFtp" ve "fallbackProxy" alt gruplarından birini kullanın.

Özellikler

  • bypassList

    string[] isteğe bağlı

    Proxy sunucu olmadan bağlanılacak sunucuların listesi.

  • fallbackProxy

    ProxyServer isteğe bağlı

    Başka her şey için kullanılacak proxy sunucusu veya belirli proxyFor... değeri belirtilmemişse.

  • proxyForFtp

    ProxyServer isteğe bağlı

    FTP istekleri için kullanılacak proxy sunucudur.

  • proxyForHttp

    ProxyServer isteğe bağlı

    HTTP istekleri için kullanılacak proxy sunucusu.

  • proxyForHttps

    ProxyServer isteğe bağlı

    HTTPS istekleri için kullanılacak proxy sunucusu.

  • singleProxy

    ProxyServer isteğe bağlı

    Tüm URL başına istekler (yani http, https ve ftp) için kullanılacak proxy sunucudur.

ProxyServer

Tek bir proxy sunucunun spesifikasyonunu kapsayan bir nesne.

Özellikler

  • düzenleyen

    dize

    Proxy sunucunun ana makine adı veya IP adresi. Ana bilgisayar adları ASCII (Punnycode biçiminde) olmalıdır. IDNA henüz desteklenmemektedir.

  • bağlantı noktası

    numara isteğe bağlı

    Proxy sunucunun bağlantı noktası. Varsayılan olarak, şemaya bağlı bir bağlantı noktası kullanılır.

  • şema

    Şema isteğe bağlı

    Proxy sunucunun kendisinin şeması (protokol). Varsayılan olarak "http" kullanılır.

Scheme

Chrome 54 ve sonraki sürümler

Enum

"http"

"https"

"quic"

"çoraplar4"

"çoraplar5"

Özellikler

settings

Kullanılacak proxy ayarları. Bu ayarın değeri bir ProxyConfig nesnesidir.

Etkinlikler

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

Proxy hataları hakkında bilgilendirir.

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (details: object)=>void

    • ayrıntılar

      nesne

      • ayrıntılar

        dize

        Hatayla ilgili, JavaScript çalışma zamanı hatası gibi ek ayrıntılar.

      • hata

        dize

        Hata açıklaması.

      • fatal

        boolean

        Değer true ise, hata kritiktir ve ağ işlemi iptal edilmiştir. Aksi takdirde, bunun yerine doğrudan bağlantı kullanılır.