browser.vpnProvider

Deskripsi

Menggunakan chrome.vpnProvider API untuk menerapkan klien VPN.

Izin

vpnProvider

Ketersediaan

Chrome 43+ browser.* sejak Chrome 148 Khusus ChromeOS

Konsep dan penggunaan

Penggunaan umum browser.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 menghubungkan atau memutuskan koneksi dari VPN tersebut.

  • Tambahkan pemroses ke peristiwa onPlatformMessage, onPacketReceived, dan onConfigRemoved.

  • 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 dianggap memiliki sesi VPN.

  • Mulai koneksi ke server VPN dan mulai klien VPN.

  • Tetapkan Parameter koneksi dengan memanggil setParameters().

  • Beri tahu status koneksi sebagai "connected" dengan memanggil notifyConnectionStateChanged().

  • Setelah langkah-langkah sebelumnya diselesaikan tanpa error, tunnel virtual akan dibuat ke stack jaringan ChromeOS. Paket IP dapat dikirim melalui tunnel dengan memanggil sendPacket() dan paket apa pun yang berasal dari perangkat ChromeOS akan diterima menggunakan pengendali peristiwa onPacketReceived.

  • Saat pengguna memutuskan koneksi dari konfigurasi VPN, onPlatformMessage akan diaktifkan dengan pesan "disconnected".

  • Jika konfigurasi VPN tidak lagi diperlukan, konfigurasi tersebut dapat dihancurkan dengan memanggil destroyConfig().

Jenis

Parameters

Properti

  • alamat

    string

    Alamat IP untuk antarmuka VPN dalam notasi CIDR. Saat ini, IPv4 adalah satu-satunya mode 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: tidak ada domain penelusuran)

  • exclusionList

    string[]

    Kecualikan traffic jaringan ke daftar blok IP dalam notasi CIDR dari tunnel. Hal ini dapat digunakan untuk mengabaikan traffic ke dan dari server VPN. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan pencocokan terpanjang akan menang. Entri yang sesuai dengan blok CIDR yang sama akan diperlakukan sebagai duplikat. Duplikat tersebut dalam daftar yang dikumpulkan (exclusionList + inclusionList) akan dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan.

  • inclusionList

    string[]

    Sertakan traffic jaringan ke daftar blok IP dalam notasi CIDR ke tunnel. Parameter ini dapat digunakan untuk menyiapkan split tunnel. 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 pencocokan terpanjang akan menang. Entri yang sesuai dengan blok CIDR yang sama akan diperlakukan sebagai duplikat. Duplikat tersebut dalam daftar yang dikumpulkan (exclusionList + inclusionList) akan dihapus dan entri duplikat persis yang akan dihapus tidak ditentukan.

  • mtu

    string opsional

    Setelan MTU untuk antarmuka VPN. (default: 1.500 byte)

  • reconnect

    string opsional

    Chrome 51+ browser.* sejak Chrome 148

    Apakah ekstensi VPN menerapkan koneksi ulang otomatis atau tidak.

    Jika benar, pesan platform linkDown, linkUp, linkChanged, suspend, dan resume akan digunakan untuk memberi sinyal peristiwa masing-masing. Jika salah, sistem akan memutuskan koneksi VPN secara paksa jika topologi jaringan berubah, dan pengguna harus menghubungkan kembali secara manual. (default: false)

    Properti ini baru 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 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 tidak aktif.

"linkUp"
Menunjukkan bahwa koneksi jaringan fisik default telah aktif kembali.

"linkChanged"
Menunjukkan bahwa koneksi jaringan fisik default berubah, misalnya, wifi->seluler.

"suspend"
Menunjukkan bahwa OS sedang bersiap untuk ditangguhkan, sehingga VPN harus memutuskan 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 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

"connected"
Menentukan bahwa koneksi VPN berhasil.

"failure"
Menentukan bahwa koneksi VPN telah gagal.

Metode

createConfig()

browser.vpnProvider.createConfig(
  name: string,
)
: Promise<string>

Membuat konfigurasi VPN baru yang tetap ada di beberapa sesi login pengguna.

Parameter

  • nama

    string

    Nama konfigurasi VPN.

Hasil

  • Promise<string>

    Chrome 96+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat konfigurasi dibuat atau ditolak jika terjadi error.

destroyConfig()

browser.vpnProvider.destroyConfig(
  id: string,
)
: Promise<void>

Menghancurkan konfigurasi VPN yang dibuat oleh ekstensi.

Parameter

  • id

    string

    ID konfigurasi VPN yang akan dihancurkan.

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat konfigurasi dihancurkan atau ditolak jika terjadi error.

notifyConnectionStateChanged()

browser.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
)
: Promise<void>

Memberi tahu status sesi VPN ke platform. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat notifikasi selesai atau ditolak jika terjadi error.

sendPacket()

browser.vpnProvider.sendPacket(
  data: ArrayBuffer,
)
: Promise<void>

Mengirim paket IP melalui tunnel yang dibuat untuk sesi VPN. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.

Parameter

  • data

    ArrayBuffer

    Paket IP yang akan dikirim ke platform.

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat paket dikirim atau ditolak jika terjadi error.

setParameters()

browser.vpnProvider.setParameters(
  parameters: Parameters,
)
: 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

  • parameter

    Parameter untuk sesi VPN.

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat parameter ditetapkan atau ditolak jika terjadi error.

Acara

onConfigCreated

browser.vpnProvider.onConfigCreated.addListener(
  callback: function,
)

Dipicu saat konfigurasi dibuat oleh platform untuk ekstensi.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (id: string, name: string, data: object) => void

    • id

      string

    • name

      string

    • data

      objek

onConfigRemoved

browser.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

browser.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

browser.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

onUIEvent

browser.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.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (event: UIEvent, id?: string) => void

    • event
    • id

      string opsional