Deskripsi
Gunakan API chrome.vpnProvider untuk menerapkan klien VPN.
Izin
vpnProviderKetersediaan
Penggunaan
Penggunaan umum vpnProvider adalah sebagai berikut:
- Buat konfigurasi VPN menggunakan metode - createConfig. Konfigurasi VPN adalah entri persisten yang ditampilkan kepada pengguna di UI ChromeOS bawaan. Pengguna dapat memilih konfigurasi VPN dari daftar dan terhubung ke atau memutuskan sambungan dari konfigurasi tersebut.
- Tambahkan pemroses ke peristiwa - onPlatformMessage,- onPacketReceived, dan- onConfigRemoved.
- Saat pengguna terhubung ke konfigurasi VPN, - onPlatformMessageakan diterima dengan pesan- "connected". Kami menyebut periode antara pesan- "connected"dan- "disconnected"sebagai sesi VPN. Dalam jangka waktu ini, ekstensi yang menerima pesan dikatakan memiliki sesi VPN.
- Mulai koneksi ke server VPN dan mulai klien VPN. 
- Tetapkan Parameter koneksi menggunakan - setParameters.
- Memberi tahu status koneksi sebagai - "connected"menggunakan- notifyConnectionStateChanged.
- Jika langkah-langkah di atas selesai tanpa error, tunnel virtual akan dibuat ke stack jaringan ChromeOS. Paket IP dapat dikirim melalui tunnel menggunakan - sendPacketdan paket apa pun yang berasal dari perangkat ChromeOS akan diterima menggunakan peristiwa- onPacketReceived.
- Saat pengguna memutuskan sambungan dari konfigurasi VPN, - onPlatformMessageakan diaktifkan dengan pesan- "disconnected".
- Jika konfigurasi VPN tidak lagi diperlukan, konfigurasi tersebut dapat dihapus menggunakan - destroyConfig.
Jenis
Parameters
Properti
- 
    alamatstring Alamat IP untuk antarmuka VPN dalam notasi CIDR. Saat ini, hanya IPv4 yang didukung. 
- 
    broadcastAddressstring opsional Alamat siaran untuk antarmuka VPN. (default: disimpulkan dari alamat IP dan mask) 
- 
    dnsServersstring[] Daftar IP untuk server DNS. 
- 
    domainSearchstring[] opsional Daftar domain penelusuran. (default: tidak ada domain penelusuran) 
- 
    exclusionListstring[] Mengecualikan traffic jaringan ke daftar blok IP dalam notasi CIDR dari tunnel. Hal ini dapat digunakan untuk melewati traffic ke dan dari server VPN. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan yang cocok terpanjang akan menang. Entri yang sesuai dengan blok CIDR yang sama dianggap sebagai duplikat. Duplikat tersebut dalam daftar yang dikumpulkan (exclusionList + inclusionList) akan dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan. 
- 
    inclusionListstring[] Sertakan traffic jaringan ke daftar blok IP dalam notasi CIDR ke tunnel. Parameter ini dapat digunakan untuk menyiapkan tunnel terpisah. Secara default, tidak ada traffic yang diarahkan ke tunnel. Menambahkan entri "0.0.0.0/0" ke daftar ini akan mengalihkan semua traffic pengguna ke tunnel. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan yang cocok terpanjang akan menang. Entri yang sesuai dengan blok CIDR yang sama dianggap sebagai duplikat. Duplikat tersebut dalam daftar yang dikumpulkan (exclusionList + inclusionList) akan dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan. 
- 
    mtustring opsional Setelan MTU untuk antarmuka VPN. (default: 1.500 byte) 
- 
    hubungkan kembalistring opsional Chrome 51+Apakah ekstensi VPN menerapkan koneksi ulang otomatis atau tidak. Jika benar, pesan platform linkDown,linkUp,linkChanged,suspend, danresumeakan digunakan untuk menandakan peristiwa masing-masing. Jika salah (false), sistem akan memutuskan koneksi VPN secara paksa jika topologi jaringan berubah, dan pengguna harus menghubungkan kembali secara manual. (default: false)Properti ini baru ada di Chrome 51; properti ini akan menghasilkan pengecualian di versi sebelumnya. try/catch dapat digunakan untuk mengaktifkan fitur secara bersyarat berdasarkan dukungan browser. 
PlatformMessage
Enum ini digunakan oleh platform untuk memberi tahu klien tentang status sesi VPN.
Enum
"connected" 
 Menunjukkan bahwa konfigurasi VPN terhubung.
"disconnected" 
 Menunjukkan bahwa konfigurasi VPN terputus.
"error" 
 Menunjukkan bahwa terjadi error dalam koneksi VPN, misalnya waktu tunggu habis. Deskripsi error diberikan sebagai argumen error ke onPlatformMessage.
"linkDown" 
 Menunjukkan bahwa koneksi jaringan fisik default sedang tidak aktif.
"linkUp" 
 Menunjukkan bahwa koneksi jaringan fisik default sudah aktif kembali.
"linkChanged" 
 Menunjukkan bahwa koneksi jaringan fisik default berubah, misalnya, Wi-Fi -> seluler.
"suspend" 
 Menunjukkan bahwa OS sedang bersiap untuk menangguhkan, sehingga VPN harus menghentikan koneksinya. Ekstensi tidak dijamin akan menerima peristiwa ini sebelum ditangguhkan.
"resume" 
 Menunjukkan bahwa OS telah dilanjutkan dan pengguna telah login kembali, sehingga VPN harus mencoba terhubung kembali.
UIEvent
Enum ini digunakan oleh platform untuk menunjukkan peristiwa yang memicu onUIEvent.
Enum
"showAddDialog" 
 Meminta klien VPN menampilkan kotak dialog tambahkan konfigurasi kepada pengguna.
"showConfigureDialog" 
 Meminta klien VPN menampilkan kotak dialog setelan konfigurasi kepada pengguna.
VpnConnectionState
Enum ini digunakan oleh klien VPN untuk memberi tahu platform tentang statusnya saat ini. Hal ini membantu memberikan pesan yang bermakna kepada pengguna.
Enum
"connected" 
 Menentukan bahwa koneksi VPN berhasil.
"failure" 
 Menentukan bahwa koneksi VPN telah gagal.
Metode
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
Membuat konfigurasi VPN baru yang tetap ada di beberapa sesi login pengguna.
Parameter
- 
    namastring Nama konfigurasi VPN. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(id: string) => void - 
    idstring ID unik untuk konfigurasi yang dibuat, atau undefinedjika gagal.
 
- 
    
Hasil
- 
            Promise<string> Chrome 96+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Menghapus konfigurasi VPN yang dibuat oleh ekstensi.
Parameter
- 
    idstring ID konfigurasi VPN yang akan dihapus. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 96+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
Memberi tahu status sesi VPN ke platform. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
- 
    dengan status tersembunyi akhirStatus sesi VPN klien VPN. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 96+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
Mengirim paket IP melalui tunnel yang dibuat untuk sesi VPN. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
- 
    dataArrayBuffer Paket IP yang akan dikirim ke platform. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 96+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
Menetapkan parameter untuk sesi VPN. Metode ini harus dipanggil segera setelah "connected" diterima dari platform. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
- 
    parameterParameter untuk sesi VPN. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 96+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
Acara
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Dipicu saat konfigurasi dibuat oleh platform untuk ekstensi.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(id: string, name: string, data: object) => void - 
    idstring 
- 
    namestring 
- 
    dataobjek 
 
- 
    
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Dipicu saat konfigurasi yang dibuat oleh ekstensi dihapus oleh platform.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(id: string) => void - 
    idstring 
 
- 
    
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Dipicu saat paket IP diterima melalui tunnel untuk sesi VPN yang dimiliki oleh ekstensi.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(data: ArrayBuffer) => void - 
    dataArrayBuffer 
 
- 
    
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Dipicu saat pesan diterima dari platform untuk konfigurasi VPN yang dimiliki oleh ekstensi.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(id: string, message: PlatformMessage, error: string) => void - 
    idstring 
- 
    pesan
- 
    errorstring 
 
- 
    
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Dipicu saat ada peristiwa UI untuk ekstensi. Peristiwa UI adalah sinyal dari platform yang menunjukkan kepada aplikasi bahwa dialog UI perlu ditampilkan kepada pengguna.