chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

Beschrijving

Gebruik de chrome.vpnProvider API om een VPN-client te implementeren.

Rechten

vpnProvider

Beschikbaarheid

Chrome 43 en hoger Alleen ChromeOS

Gebruik

Het gebruikelijke gebruik van vpnProvider is als volgt:

  • Maak VPN-configuraties met de methode createConfig. Een VPN-configuratie is een permanente vermelding die aan de gebruiker wordt getoond in een systeemeigen ChromeOS-UI. De gebruiker kan een VPN-configuratie selecteren in een lijst en verbinding maken of de verbinding verbreken.

  • Voeg listeners toe aan de gebeurtenissen onPlatformMessage, onPacketReceived en onConfigRemoved.

  • Als de gebruiker verbinding maakt met de VPN-configuratie, wordt onPlatformMessage ontvangen met het bericht "connected". De periode tussen de berichten "connected" en "disconnected" noemen we een VPN-sessie. In deze periode is de extensie die het bericht krijgt de eigenaar van de VPN-sessie.

  • Maak verbinding met de VPN-server en start de VPN-client.

  • Stel de parameters van de verbinding in met setParameters.

  • De verbindingsstatus melden als "connected" met notifyConnectionStateChanged.

  • Als de stappen hierboven zonder fouten zijn afgerond, wordt er een virtuele tunnel naar de netwerkstack van ChromeOS gemaakt. IP-pakketten kunnen via de tunnel worden verstuurd met sendPacket en pakketten die afkomstig zijn van het ChromeOS-apparaat, worden ontvangen met de gebeurtenis onPacketReceived.

  • Als de gebruiker de verbinding met de VPN-configuratie verbreekt, wordt onPlatformMessage geactiveerd met het bericht "disconnected".

  • Als de VPN-configuratie niet meer nodig is, kan deze worden verwijderd met destroyConfig.

Typen

Parameters

Eigenschappen

  • adres

    tekenreeks

    IP-adres voor de VPN-interface in CIDR-notatie. IPv4 is op dit moment de enige ondersteunde modus.

  • broadcastAddress

    tekenreeks optioneel

    Broadcast-adres voor de VPN-interface. (standaard: afgeleid van IP-adres en masker)

  • dnsServers

    tekenreeks[]

    Een lijst met IP's voor de DNS-servers.

  • domainSearch

    string[] optioneel

    Een lijst met zoekdomeinen. (standaard: geen zoekdomein)

  • exclusionList

    string[]

    Sluit netwerkverkeer naar de lijst met IP-blokken in CIDR-notatie uit van de tunnel. Dit kan worden gebruikt om verkeer van en naar de VPN-server te omzeilen. Als veel regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende voorvoegsel. Vermeldingen die overeenkomen met hetzelfde CIDR-blok, worden behandeld als dubbele vermeldingen. Dergelijke dubbele vermeldingen in de samengevoegde lijst (exclusionList + inclusionList) worden verwijderd. De exacte dubbele vermelding die wordt verwijderd, is niet gedefinieerd.

  • inclusionList

    tekenreeks[]

    Voeg netwerkverkeer toe aan de lijst met IP-blokken in CIDR-notatie voor de tunnel. Je kunt deze parameter gebruiken om een gesplitste tunnel in te stellen. Standaard wordt er geen verkeer naar de tunnel geleid. Als je de vermelding 0.0.0.0/0 aan deze lijst toevoegt, wordt al het gebruikersverkeer omgeleid naar de tunnel. Als veel regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende voorvoegsel. Items die overeenkomen met hetzelfde CIDR-blok, worden behandeld als duplicaten. Dergelijke duplicaten in de verzamelde lijst (exclusionList + inclusionList) worden verwijderd en het is niet gedefinieerd welk exacte duplicaat wordt verwijderd.

  • mtu

    tekenreeks optioneel

    MTU-instelling voor de VPN-interface. (standaard: 1500 bytes)

  • opnieuw verbinding maken

    tekenreeks optioneel

    Chrome 51+

    Of de VPN-extensie automatisch opnieuw verbinding maakt.

    Als dit waar is, worden de platformberichten linkDown, linkUp, linkChanged, suspend en resume gebruikt om de respectieve gebeurtenissen aan te geven. Als je deze instelling op False zet, verbreekt het systeem de VPN-verbinding geforceerd als de netwerktopologie verandert. De gebruiker moet dan handmatig opnieuw verbinding maken. (standaard: false)

    Deze property is nieuw in Chrome 51. In eerdere versies wordt er een uitzondering gegenereerd. Je kunt try/catch gebruiken om de functie voorwaardelijk aan te zetten op basis van browserondersteuning.

PlatformMessage

De enum wordt door het platform gebruikt om de client op de hoogte te stellen van de VPN-sessiestatus.

Enum

"connected"
Geeft aan dat de VPN-configuratie is verbonden.

Verbinding verbroken
Geeft aan dat de VPN-configuratie is verbroken.

"error"
Geeft aan dat er een fout is opgetreden in de VPN-verbinding, bijvoorbeeld een time-out. Een beschrijving van de fout wordt gegeven als het foutargument voor onPlatformMessage.

"linkDown"
Geeft aan dat de standaard fysieke netwerkverbinding niet werkt.

linkUp
Geeft aan dat de fysieke standaardnetwerkverbinding weer actief is.

"linkChanged"
Geeft aan dat de standaard fysieke netwerkverbinding is gewijzigd, bijvoorbeeld wifi->mobiel.

"suspend"
Geeft aan dat het OS zich voorbereidt op opschorting, dus het VPN moet de verbinding verbreken. Het is niet gegarandeerd dat de extensie deze gebeurtenis krijgt voordat deze wordt opgeschort.

'resume'
Geeft aan dat het OS is hervat en dat de gebruiker opnieuw is ingelogd. Het VPN moet dus opnieuw verbinding proberen te maken.

UIEvent

De enum wordt door het platform gebruikt om de gebeurtenis aan te geven die onUIEvent heeft geactiveerd.

Enum

"showAddDialog"
Vraagt de VPN-client om het dialoogvenster voor het toevoegen van een configuratie aan de gebruiker te tonen.

"showConfigureDialog"
Vraagt de VPN-client om het dialoogvenster met configuratie-instellingen aan de gebruiker te tonen.

VpnConnectionState

De enum wordt door de VPN-client gebruikt om het platform te informeren over de huidige status. Zo kun je de gebruiker nuttige berichten sturen.

Enum

connected
Geeft aan dat de VPN-verbinding is geslaagd.

"failure"
Geeft aan dat de VPN-verbinding is mislukt.

Methoden

createConfig()

Promise
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: Promise<string>

Maakt een nieuwe VPN-configuratie die blijft bestaan tijdens meerdere inlogsessies van de gebruiker.

Parameters

  • name

    tekenreeks

    De naam van de VPN-configuratie.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (id: string) => void

    • id

      tekenreeks

      Een unieke ID voor de gemaakte configuratie of undefined bij een fout.

Retourzendingen

  • Promise<string>

    Chrome 96+

    Retourneert een Promise die wordt opgelost als de configuratie is gemaakt of wordt geweigerd als er een fout is.

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

destroyConfig()

Belofte
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

Verwijdert een VPN-configuratie die door de extensie is gemaakt.

Parameters

  • id

    tekenreeks

    ID van de VPN-configuratie die moet worden verwijderd.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost als de configuratie wordt vernietigd of wordt afgewezen als er een fout is.

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

notifyConnectionStateChanged()

Promise
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: Promise<void>

Hiermee wordt de VPN-sessiestatus aan het platform gemeld. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • De VPN-sessiestatus van de VPN-client.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost als de melding is afgerond of wordt geweigerd als er een fout is.

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

sendPacket()

Belofte
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: Promise<void>

Stuurt een IP-pakket via de tunnel die is gemaakt voor de VPN-sessie. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • gegevens

    ArrayBuffer

    Het IP-pakket dat naar het platform moet worden gestuurd.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost als het pakket is verstuurd of wordt afgewezen als er een fout is.

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

setParameters()

Promise
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: Promise<void>

Stelt de parameters voor de VPN-sessie in. Dit moet onmiddellijk worden aangeroepen nadat "connected" is ontvangen van het platform. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • parameters

    De parameters voor de VPN-sessie.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost als de parameters zijn ingesteld of wordt afgewezen als er een fout is.

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

Evenementen

onConfigCreated

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

Wordt geactiveerd als het platform een configuratie maakt voor de extensie.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

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

    • id

      tekenreeks

    • name

      tekenreeks

    • gegevens

      object

onConfigRemoved

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

Wordt geactiveerd als een configuratie die door de extensie is gemaakt, door het platform wordt verwijderd.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

    (id: string) => void

    • id

      tekenreeks

onPacketReceived

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

Wordt geactiveerd als er een IP-pakket wordt ontvangen via de tunnel voor de VPN-sessie die eigendom is van de extensie.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

    (data: ArrayBuffer) => void

    • gegevens

      ArrayBuffer

onPlatformMessage

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

Wordt geactiveerd als er een bericht van het platform wordt ontvangen voor een VPN-configuratie die eigendom is van de extensie.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

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

onUIEvent

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

Wordt geactiveerd als er een UI-gebeurtenis is voor de extensie. UI-gebeurtenissen zijn signalen van het platform die aan de app aangeven dat er een UI-dialoogvenster aan de gebruiker moet worden getoond.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

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

    • gebeurtenis
    • id

      tekenreeks optioneel