Deskripsi
Gunakan chrome.vpnProvider
API untuk mengimplementasikan klien VPN.
Izin
vpnProvider
Ketersediaan
Konsep dan penggunaan
Penggunaan standar chrome.vpnProvider
adalah sebagai berikut:
Buat konfigurasi VPN dengan memanggil
createConfig()
. Konfigurasi VPN adalah entri persisten yang ditampilkan kepada pengguna di UI ChromeOS. Pengguna dapat memilih konfigurasi VPN dari daftar dan menghubungkannya atau memutuskan koneksinya.Tambahkan pemroses ke peristiwa
onPlatformMessage
,onPacketReceived
, danonConfigRemoved
.Saat pengguna terhubung ke konfigurasi VPN,
onPlatformMessage
akan diterima dengan pesan"connected"
. Periode antara pesan"connected"
dan"disconnected"
disebut "sesi VPN". Dalam jangka waktu ini, ekstensi yang menerima pesan dikatakan memiliki sesi VPN.Mulai koneksi ke server VPN dan mulai klien VPN.
Setel Parameter koneksi dengan memanggil
setParameters()
.Beri tahu status koneksi sebagai
"connected"
dengan memanggilnotifyConnectionStateChanged()
.Jika langkah-langkah sebelumnya diselesaikan tanpa error, tunnel virtual akan dibuat ke stack jaringan ChromeOS. Paket IP dapat dikirim melalui tunnel dengan memanggil
sendPacket()
dan setiap paket yang berasal dari perangkat ChromeOS akan diterima menggunakan pengendali peristiwaonPacketReceived
.Saat pengguna memutuskan sambungan dari konfigurasi VPN,
onPlatformMessage
akan diaktifkan dengan pesan"disconnected"
.Jika konfigurasi VPN tidak lagi diperlukan, konfigurasi tersebut dapat dihapus dengan memanggil
destroyConfig()
.
Jenis
Parameters
Properti
-
alamat
string
Alamat IP untuk antarmuka VPN dalam notasi CIDR. Saat ini hanya IPv4 yang didukung.
-
broadcastAddress
string opsional
Alamat broadcast untuk antarmuka VPN. (default: disimpulkan dari alamat IP dan mask)
-
dnsServers
string[]
Daftar IP untuk server DNS.
-
domainSearch
string[] opsional
Daftar domain penelusuran. (default: tanpa domain penelusuran)
-
exclusionList
string[]
Mengecualikan traffic jaringan ke daftar blok IP dalam notasi CIDR dari tunnel. VPN ini dapat digunakan untuk mengabaikan traffic ke dan dari server VPN. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan yang cocok paling lama akan menang. Entri yang sesuai dengan blok CIDR yang sama akan diperlakukan sebagai duplikat. Duplikat dalam daftar yang dibuat (exclusionList + includeList) tersebut dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan.
-
inclusionList
string[]
Menyertakan traffic jaringan ke daftar blok IP dalam notasi CIDR ke tunnel. Parameter ini dapat digunakan untuk menyiapkan tunnel pemisahan. Secara default, tidak ada traffic yang diarahkan ke tunnel. Menambahkan entri "0.0.0.0/0" ke daftar ini akan membuat semua traffic pengguna dialihkan ke tunnel. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan yang cocok paling lama akan menang. Entri yang sesuai dengan blok CIDR yang sama akan diperlakukan sebagai duplikat. Duplikat dalam daftar yang dibuat (exclusionList + includeList) tersebut dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan.
-
mtu
string opsional
Setelan MTU untuk antarmuka VPN. (default: 1.500 byte)
-
hubungkan kembali
string opsional
Chrome 51+Apakah ekstensi VPN mengimplementasikan koneksi ulang otomatis atau tidak.
Jika true (benar), pesan platform
linkDown
,linkUp
,linkChanged
,suspend
, danresume
akan digunakan untuk menandakan peristiwa masing-masing. Jika salah (false), sistem akan memutuskan sambungan VPN secara paksa jika topologi jaringan berubah, dan pengguna harus menghubungkan kembali secara manual. (default: salah)Properti ini baru di Chrome 51 dan akan menghasilkan pengecualian di versi sebelumnya. try/catch dapat digunakan untuk mengaktifkan fitur secara bersyarat berdasarkan dukungan browser.
PlatformMessage
Enum digunakan oleh platform untuk memberi tahu klien tentang status sesi VPN.
Enum
"terhubung"
Menunjukkan bahwa konfigurasi VPN telah terhubung.
"terputus"
Menunjukkan bahwa konfigurasi VPN terputus.
"error"
Menunjukkan bahwa terjadi error dalam koneksi VPN, misalnya waktu tunggu habis. Deskripsi error diberikan sebagai argumen error untuk onPlatformMessage.
"linkDown"
Menunjukkan bahwa koneksi jaringan fisik default sedang tidak aktif.
"linkUp"
Menunjukkan bahwa koneksi jaringan fisik default sedang dicadangkan.
"linkChanged"
Menunjukkan bahwa koneksi jaringan fisik default berubah, misalnya wifi->mobile.
"suspend"
Menunjukkan bahwa OS sedang bersiap untuk ditangguhkan, sehingga VPN harus menghentikan koneksinya. Ekstensi tidak dijamin menerima peristiwa ini sebelum penangguhan.
"resume"
Menunjukkan bahwa OS telah dilanjutkan dan pengguna telah login kembali, jadi VPN harus mencoba menghubungkan kembali.
UIEvent
Enum 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 digunakan oleh klien VPN untuk memberi tahu platform tentang statusnya saat ini. Hal ini membantu memberikan pesan yang bermakna kepada pengguna.
Enum
"terhubung"
Menentukan bahwa koneksi VPN berhasil.
"failure"
Menentukan bahwa koneksi VPN gagal.
Metode
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
Membuat konfigurasi VPN baru yang tetap ada di beberapa sesi login pengguna.
Parameter
-
name
string
Nama konfigurasi VPN.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(id: string) => void
-
id
string
ID unik untuk konfigurasi yang dibuat, atau
undefined
jika gagal.
-
Hasil
-
Promise<string>
Chrome 96 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
Menghancurkan konfigurasi VPN yang dibuat oleh ekstensi.
Parameter
-
id
string
ID konfigurasi VPN yang akan dihancurkan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 96 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
Memberi tahu status sesi VPN ke platform. Opsi ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
-
state
Status sesi VPN klien VPN.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 96 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
Mengirim paket IP melalui tunnel yang dibuat untuk sesi VPN. Opsi ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
-
data
ArrayBuffer
Paket IP yang akan dikirim ke platform.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 96 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
Menetapkan parameter untuk sesi VPN. Metode ini harus segera dipanggil setelah "connected"
diterima dari platform. Opsi ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.
Parameter
-
parameter
Parameter untuk sesi VPN.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 96 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
Acara
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Dipicu saat konfigurasi dibuat oleh platform untuk ekstensi tersebut.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, name: string, data: object) => void
-
id
string
-
name
string
-
data
objek
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Dipicu saat konfigurasi yang dibuat oleh ekstensi dihapus oleh platform.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string) => void
-
id
string
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Dipicu saat paket IP diterima melalui tunnel untuk sesi VPN yang dimiliki oleh ekstensi.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(data: ArrayBuffer) => void
-
data
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Dipicu saat pesan diterima dari platform untuk konfigurasi VPN yang dimiliki oleh ekstensi.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(id: string, message: PlatformMessage, error: string) => void
-
id
string
-
pesan
-
error
string
-
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.