Deskripsi
Gunakan chrome.proxy API untuk mengelola setelan proxy Chrome. API ini mengandalkan prototipe ChromeSetting dari API jenis untuk mendapatkan dan menyetel konfigurasi proxy.
Izin
proxyManifes
Anda harus mendeklarasikan izin "proxy" di manifes ekstensi untuk menggunakan API setelan proxy. Contoh:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Objek dan properti
Setelan proxy ditentukan dalam objek proxy.ProxyConfig. Bergantung pada setelan proxy Chrome, setelan tersebut dapat berisi proxy.ProxyRules atau proxy.PacScript.
Mode proxy
Atribut mode objek ProxyConfig menentukan perilaku keseluruhan Chrome terkait penggunaan proxy. Dapat menggunakan nilai berikut:
direct- Dalam mode
direct, semua koneksi dibuat secara langsung, tanpa melibatkan proxy. Mode ini tidak memungkinkan parameter lebih lanjut dalam objekProxyConfig. auto_detect- Dalam mode
auto_detect, konfigurasi proxy ditentukan oleh skrip PAC yang dapat didownload di http://wpad/wpad.dat. Mode ini tidak mengizinkan parameter lebih lanjut dalam objekProxyConfig. pac_script- Dalam mode
pac_script, konfigurasi proxy ditentukan oleh skrip PAC yang diambil dari URL yang ditentukan dalam objekproxy.PacScriptatau diambil secara harfiah dari elemendatayang ditentukan dalam objekproxy.PacScript. Selain itu, mode ini tidak mengizinkan parameter lebih lanjut dalam objekProxyConfig. fixed_servers- Dalam mode
fixed_servers, konfigurasi proxy dikodifikasi dalam objekproxy.ProxyRules. Strukturnya dijelaskan dalam Aturan proxy. Selain itu, modefixed_serverstidak mengizinkan parameter lebih lanjut dalam objekProxyConfig. system- Dalam mode
system, konfigurasi proxy diambil dari sistem operasi. Mode ini tidak mengizinkan parameter lebih lanjut dalam objekProxyConfig. Perhatikan bahwa modesystemberbeda dengan tidak menyetel konfigurasi proxy. Dalam kasus terakhir, Chrome akan kembali ke setelan sistem hanya jika tidak ada opsi command line yang memengaruhi konfigurasi proxy.
Aturan proxy
Objek proxy.ProxyRules dapat berisi atribut singleProxy atau subset
proxyForHttp, proxyForHttps, proxyForFtp, dan fallbackProxy.
Dalam kasus pertama, traffic HTTP, HTTPS, dan FTP di-proxy melalui server proxy yang ditentukan. Traffic lainnya dikirim secara langsung. Dalam kasus terakhir, perilakunya sedikit lebih halus: Jika server proxy dikonfigurasi untuk protokol HTTP, HTTPS, atau FTP, traffic masing-masing akan di-proxy melalui server yang ditentukan. Jika tidak ada server proxy seperti itu yang ditentukan atau traffic menggunakan protokol yang berbeda dari HTTP, HTTPS, atau FTP, fallbackProxy akan digunakan. Jika fallbackProxy tidak ditentukan, traffic akan dikirim
langsung tanpa server proxy.
Objek server proxy
Server proxy dikonfigurasi dalam objek proxy.ProxyServer. Koneksi ke server proxy
(ditentukan oleh atribut host) menggunakan protokol yang ditentukan dalam atribut scheme. Jika tidak ada
scheme yang ditentukan, koneksi proxy akan ditetapkan secara default ke http.
Jika tidak ada port yang ditentukan dalam objek proxy.ProxyServer, port akan berasal dari skema.
Port default-nya adalah:
| Skema | Port |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Daftar pengabaian
Server tertentu dapat dikecualikan dari penggunaan proxy dengan bypassList. Daftar ini mungkin berisi
entri berikut:
[SCHEME://]HOST_PATTERN[:PORT]Mencocokkan semua nama host yang cocok dengan pola
HOST_PATTERN."."di awal diinterpretasikan sebagai"*.".Contoh:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Pola Kecocokan Tidak cocok ".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]Mencocokkan URL yang merupakan literal alamat IP. Secara konseptual, hal ini mirip dengan kasus pertama, tetapi dengan kasus khusus untuk menangani kanonisasi literal IP. Misalnya, pencocokan pada "[0:0:0::1]" sama dengan pencocokan pada "[::1]" karena kanonisasi IPv6 dilakukan secara internal.
Contoh:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSMencocokkan URL apa pun yang berisi literal IP (
IP_LITERAL) dalam rentang yang diberikan. Rentang IP (PREFIX_LENGTH_IN_BITS) ditentukan menggunakan notasi CIDR.Mencocokkan URL apa pun yang berisi literal IP dalam rentang yang diberikan. Rentang IP ditentukan menggunakan notasi CIDR. Contoh:
"192.168.1.1/16", "fefe:13::abc/33"<local>String literal
<local>cocok dengan nama host sederhana. Nama host sederhana adalah nama host yang tidak berisi titik dan bukan literal IP. Misalnya,exampledanlocalhostadalah nama host sederhana, sedangkanexample.com,example., dan[::1]tidak.Contoh:
"<local>"
Contoh
Kode berikut menetapkan proxy SOCKS 5 untuk koneksi HTTP ke semua server, kecuali foobar.com, dan menggunakan koneksi langsung untuk semua protokol lainnya. Setelan ini berlaku untuk jendela reguler dan samaran, karena jendela samaran mewarisi setelan dari jendela reguler. Lihat juga dokumentasi Types API.
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() {}
);
Kode berikut menetapkan skrip PAC kustom.
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() {}
);
Cuplikan berikutnya mengkueri setelan proxy yang saat ini berlaku. Setelan proxy yang efektif dapat ditentukan oleh ekstensi lain atau oleh kebijakan. Lihat dokumentasi Types API untuk mengetahui detailnya.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Perhatikan bahwa objek value yang diteruskan ke set() tidak identik dengan objek value yang diteruskan ke
fungsi callback get(). Elemen terakhir akan berisi elemen rules.proxyForHttp.port.
Jenis
Mode
Enum
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
Objek yang menyimpan informasi konfigurasi otomatis proxy. Tepat satu kolom tidak boleh kosong.
Properti
-
data
string opsional
Skrip PAC.
-
wajib
boolean opsional
Jika benar (true), skrip PAC yang tidak valid akan mencegah stack jaringan melakukan penggantian ke koneksi langsung. Nilai defaultnya adalah false (salah).
-
url
string opsional
URL file PAC yang akan digunakan.
ProxyConfig
Objek yang merangkum konfigurasi proxy lengkap.
Properti
-
mode
'direct' = Jangan pernah menggunakan proxy 'auto_detect' = Deteksi otomatis setelan proxy 'pac_script' = Gunakan skrip PAC yang ditentukan 'fixed_servers' = Tentukan server proxy secara manual 'system' = Gunakan setelan proxy sistem
-
pacScript
PacScript opsional
Skrip konfigurasi otomatis proxy (PAC) untuk konfigurasi ini. Gunakan ini untuk mode 'pac_script'.
-
rules
ProxyRules opsional
Aturan proxy yang menjelaskan konfigurasi ini. Gunakan ini untuk mode 'fixed_servers'.
ProxyRules
Objek yang merangkum kumpulan aturan proxy untuk semua protokol. Gunakan 'singleProxy' atau (subset dari) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp', dan 'fallbackProxy'.
Properti
-
bypassList
string[] opsional
Daftar server yang akan dihubungkan tanpa server proxy.
-
fallbackProxy
ProxyServer opsional
Server proxy yang akan digunakan untuk semuanya atau jika salah satu proxyFor... tertentu tidak ditentukan.
-
proxyForFtp
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan FTP.
-
proxyForHttp
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan HTTP.
-
proxyForHttps
ProxyServer opsional
Server proxy yang akan digunakan untuk permintaan HTTPS.
-
singleProxy
ProxyServer opsional
Server proxy yang akan digunakan untuk semua permintaan per URL (yaitu http, https, dan ftp).
ProxyServer
Objek yang merangkum spesifikasi satu server proxy.
Properti
-
host
string
Nama host atau alamat IP server proxy. Nama host harus dalam ASCII (dalam format Punycode). IDNA belum didukung.
-
port
nomor opsional
Port server proxy. Secara default, port bergantung pada skema.
-
skema
Skema opsional
Skema (protokol) server proxy itu sendiri. Nilai defaultnya adalah 'http'.
Scheme
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
Properti
settings
Setelan proxy yang akan digunakan. Nilai setelan ini adalah objek ProxyConfig.
Jenis
Acara
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Memberi tahu tentang error proxy.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(details: object) => void
-
detail
objek
-
detail
string
Detail tambahan tentang error seperti error runtime JavaScript.
-
error
string
Deskripsi error.
-
fatal
boolean
Jika benar, error bersifat fatal dan transaksi jaringan dibatalkan. Jika tidak, koneksi langsung akan digunakan.
-
-