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 ChromeSetting türündeki API'nin ChromeSetting prototipine dayanır.

İzinler

proxy

Manifest

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

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

Nesneler ve özellikler

Proxy ayarları, proxy.ProxyConfig nesnesinde tanımlanır. Chrome'un proxy ayarlarına bağlı olarak, ayarlarda proxy.ProxyRules veya proxy.PacScript bulunabilir.

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 doğrudan oluşturulur ve herhangi bir proxy kullanılmaz. Bu mod, ProxyConfig nesnesinde başka parametrelere 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 alınan veya proxy.PacScript nesnesinde belirtilen data öğesinden olduğu gibi alınan bir PAC komut dosyası tarafından belirlenir. Bunun dışında, bu modda ProxyConfig nesnesine başka parametre eklenemez.
fixed_servers
fixed_servers modunda proxy yapılandırması bir proxy.ProxyRules nesnesinde kodlanır. Yapısı Proxy kuralları başlıklı makalede açıklanmıştır. Bunun dışında, fixed_servers modu ProxyConfig nesnesinde başka parametrelere izin vermez.
system
modunda, proxy yapılandırması işletim sisteminden alınır.system Bu mod, ProxyConfig nesnesinde başka parametreye izin vermez. system modunun, proxy yapılandırması ayarlamaktan farklı olduğunu unutmayın. İkinci durumda Chrome, yalnızca komut satırı seçenekleri proxy yapılandırmasını etkilemiyorsa sistem ayarlarına geri döner.

Proxy kuralları

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

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

Proxy sunucu nesneleri

Proxy sunucusu, proxy.ProxyServer nesnesinde yapılandırılır. Proxy sunucuya bağlantı (host özelliğiyle tanımlanır) scheme özelliğinde tanımlanan protokolü kullanır. scheme belirtilmezse proxy bağlantısı varsayılan olarak http olur.

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

İstisna listesi

Belirli sunucular, bypassList ile proxy oluşturulmanın dışında tutulabilir. Bu listede aşağıdaki girişler yer alabilir:

[SCHEME://]HOST_PATTERN[:PORT]

HOST_PATTERN düzeniyle eşleşen tüm ana makine adlarını eşleştirin. Baştaki ".", "*." olarak yorumlanır.

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

KalıpEşleşmelerEş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ğerleri olan URL'lerle eşleşir. Bu, kavramsal olarak ilk duruma benzer ancak IP değişmez değerinin standartlaştırılmasıyla ilgili özel durumlar vardır. Örneğin, IPv6 standartlaştırması dahili olarak yapıldığından "[0:0:0::1]" ile eşleşme, "[::1]" ile eşleşmeyle aynıdır.

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

IP_LITERAL/PREFIX_LENGTH_IN_BITS

Belirtilen aralıkta (IP_LITERAL) IP değişmezi içeren herhangi bir URL ile eşleşir. IP aralığı (PREFIX_LENGTH_IN_BITS), CIDR gösterimi kullanılarak belirtilir.

Belirtilen aralıkta IP değişmez değeri içeren tüm URL'lerle eşleşir. IP aralığı, CIDR gösterimi kullanılarak belirtilir. Örnekler: "192.168.1.1/16", "fefe:13::abc/33"

<local>

<local> değişmez dizesi, basit ana makine adlarıyla eşleşir. Basit ana makine adı, nokta içermeyen ve IP değişmezi olmayan 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, tüm sunuculara yönelik HTTP bağlantıları için foobar.com hariç bir SOCKS 5 proxy'si ayarlar ve diğer tüm protokoller için doğrudan bağlantıları kullanır. Ayarlar, normal pencerelerden ayarları devralan gizli pencereler için de geçerlidir. Lütfen Types API belgelerine de göz atı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() {}
);

Aşağıdaki snippet, şu anda etkin olan proxy ayarlarını sorgular. Geçerli proxy ayarları başka bir uzantı veya politika tarafından belirlenebilir. Ayrıntılar için Types API belgelerine bakın.

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

value öğesinin set() öğesine iletilen value öğesiyle aynı olmadığını unutmayın.get() İkincisi rules.proxyForHttp.port öğesini içerir.

Türler

Mode

Chrome 54 veya daha yeni bir sürüm

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ş olmamalıdır.

Özellikler

  • veri

    dize isteğe bağlı

    PAC komut dosyası.

  • zorunlu

    boolean isteğe bağlı

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

  • url

    dize isteğe bağlı

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

ProxyConfig

Tam bir proxy yapılandırmasını kapsayan 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ı manuel olarak belirt "system" = Sistem proxy ayarlarını kullan

  • pacScript

    PacScript isteğe bağlı

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

  • kurallar

    ProxyRules isteğe bağlı

    Bu yapılandırmayı açıklayan proxy kuralları. Bu, "fixed_servers" modu için kullanılır.

ProxyRules

Tüm protokoller için proxy kuralları grubunu kapsayan bir nesne. "singleProxy" veya "proxyForHttp", "proxyForHttps", "proxyForFtp" ve "fallbackProxy" öğelerinin (bir alt kümesi) kullanın.

Özellikler

  • bypassList

    string[] isteğe bağlı

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

  • fallbackProxy

    ProxyServer isteğe bağlı

    Diğer her şey için veya belirli proxyFor... seçeneklerinden herhangi biri belirtilmemişse kullanılacak proxy sunucusu.

  • proxyForFtp

    ProxyServer isteğe bağlı

    FTP istekleri için kullanılacak proxy sunucusu.

  • proxyForHttp

    ProxyServer isteğe bağlı

    HTTP istekleri için kullanılacak proxy sunucu.

  • proxyForHttps

    ProxyServer isteğe bağlı

    HTTPS istekleri için kullanılacak proxy sunucu.

  • singleProxy

    ProxyServer isteğe bağlı

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

ProxyServer

Tek bir proxy sunucusunun spesifikasyonunu kapsayan bir nesne.

Özellikler

  • düzenleyen

    dize

    Proxy sunucusunun ana makine adı veya IP adresi. Ana makine adları ASCII biçiminde (Punycode biçiminde) olmalıdır. IDNA henüz desteklenmiyor.

  • bağlantı noktası

    number isteğe bağlı

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

  • şema

    Şema isteğe bağlıdır.

    Proxy sunucunun şeması (protokolü). Varsayılan olarak "http" değerine ayarlanır.

Scheme

Chrome 54 veya daha yeni bir sürüm

Enum

"http"

"https"

"quic"

"socks4"

"socks5"

Ö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 bildirim gönderir.

Parametreler

  • callback

    işlev

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

    (details: object) => void

    • ayrıntılar

      nesne

      • ayrıntılar

        dize

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

      • hata

        dize

        Hata açıklaması.

      • fatal

        boolean

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