chrome.vpnProvider

Deskripsi

Gunakan chrome.vpnProvider API untuk mengimplementasikan klien VPN.

Izin

vpnProvider

Ketersediaan

Chrome 43 dan yang lebih baru Khusus ChromeOS

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 native. Pengguna dapat memilih konfigurasi VPN dari daftar dan menghubungkannya atau memutuskan sambungannya.

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

  • Saat pengguna terhubung ke konfigurasi VPN, onPlatformMessage akan diterima dengan pesan "connected". Kami menyebut periode antara pesan "connected" dan "disconnected" sebagai sesi VPN. Dalam jangka waktu ini, ekstensi yang menerima pesan dianggap sebagai pemilik sesi VPN.

  • Mulai koneksi ke server VPN dan jalankan klien VPN.

  • Tetapkan Parameter koneksi menggunakan setParameters.

  • Beri tahu status koneksi sebagai "connected" menggunakan notifyConnectionStateChanged.

  • Jika langkah-langkah di atas diselesaikan tanpa error, tunnel virtual akan dibuat ke stack jaringan ChromeOS. Paket IP dapat dikirim melalui tunnel menggunakan sendPacket dan paket apa pun yang berasal dari perangkat ChromeOS akan diterima menggunakan peristiwa onPacketReceived.

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

  • Jika tidak lagi diperlukan, konfigurasi VPN dapat dihancurkan menggunakan destroyConfig.

Jenis

Parameters

Properti

  • alamat

    string

    Alamat IP untuk antarmuka VPN dalam notasi CIDR. Saat ini, satu-satunya mode yang didukung adalah IPv4.

  • broadcastAddress

    string opsional

    Alamat siaran untuk antarmuka VPN. (default: disimpulkan dari alamat IP dan mask)

  • dnsServers

    {i>string<i}[]

    Daftar IP untuk server DNS.

  • domainSearch

    string[] opsional

    Daftar domain penelusuran. (default: tidak ada domain penelusuran)

  • exclusionList

    {i>string<i}[]

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

  • inclusionList

    {i>string<i}[]

    Menyertakan 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 membuat semua lalu lintas pengguna dialihkan ke terowongan. Jika banyak aturan cocok dengan tujuan, aturan dengan awalan pencocokan terpanjang yang akan menang. Entri yang sesuai dengan blok CIDR yang sama akan diperlakukan sebagai duplikat. Duplikat tersebut dalam daftar yang disusun (exclusionList + inclusiveList) dihapus dan entri duplikat yang tepat yang akan dihapus tidak ditentukan.

  • mtu

    string opsional

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

  • sambungkan kembali

    string opsional

    Chrome 51 dan yang lebih baru

    Apakah ekstensi VPN mengimplementasikan koneksi ulang otomatis atau tidak.

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

    Properti ini baru di Chrome 51; perintah itu akan menghasilkan pengecualian pada versi sebelumnya. coba/tangkap 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 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 ke onPlatformMessage.

&quot;linkDown&quot;
Menunjukkan bahwa koneksi jaringan fisik default sedang tidak aktif.

&quot;linkUp&quot;
Menunjukkan bahwa koneksi jaringan fisik default sudah dicadangkan.

&quot;linkChanged&quot;
Menunjukkan bahwa koneksi jaringan fisik default berubah, misalnya wifi->mobile.

"penangguhan"
Menunjukkan bahwa OS bersiap untuk ditangguhkan, sehingga VPN akan berhenti terhubung. Ekstensi tidak dijamin akan menerima peristiwa ini sebelum penangguhan.

"lanjutkan"
Menunjukkan bahwa OS telah dilanjutkan dan pengguna telah login kembali, sehingga VPN harus mencoba untuk terhubung kembali.

UIEvent

Enum digunakan oleh platform untuk menunjukkan peristiwa yang memicu onUIEvent.

Enum

&quot;showAddDialog&quot;
Meminta klien VPN menampilkan kotak dialog tambahkan konfigurasi kepada pengguna.

&quot;showConfigureDialog&quot;
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()

Janji
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)

Membuat konfigurasi VPN baru yang bertahan di beberapa sesi login pengguna.

Parameter

  • nama

    string

    Nama konfigurasi VPN.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (id: string) => void

    • id

      string

      ID unik untuk konfigurasi yang dibuat, atau undefined jika gagal.

Hasil

  • Promise<string>

    Chrome 96 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

destroyConfig()

Janji
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 ini:

    () => void

Hasil

  • Janji<void>

    Chrome 96 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

notifyConnectionStateChanged()

Janji
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)

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

Parameter

  • dengan status tersembunyi akhir

    Status sesi VPN klien VPN.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 96 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

sendPacket()

Janji
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)

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.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 96 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

setParameters()

Janji
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)

Menetapkan parameter untuk sesi VPN. Ini harus segera dipanggil setelah "connected" diterima dari platform. Tindakan ini hanya akan berhasil jika sesi VPN dimiliki oleh ekstensi.

Parameter

  • parameter

    Parameter untuk sesi VPN.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 96 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

Acara

onConfigCreated

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

Dipicu saat konfigurasi dibuat oleh platform untuk ekstensi.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

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

    • id

      string

    • nama

      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 ini:

    (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 ini:

    (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 ini:

    (id: string, message: PlatformMessage, error: string) => void

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.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

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

    • peristiwa
    • id

      string opsional