refresh date: 2026-09-25 robots: noindex
Beschrijving
Gebruik de chrome.vpnProvider API om een VPN-client te implementeren.
Rechten
vpnProviderBeschikbaarheid
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,onPacketReceivedenonConfigRemoved.Als de gebruiker verbinding maakt met de VPN-configuratie, wordt
onPlatformMessageontvangen 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"metnotifyConnectionStateChanged.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
sendPacketen pakketten die afkomstig zijn van het ChromeOS-apparaat, worden ontvangen met de gebeurtenisonPacketReceived.Als de gebruiker de verbinding met de VPN-configuratie verbreekt, wordt
onPlatformMessagegeactiveerd 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,suspendenresumegebruikt 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()
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
callbackziet er zo uit:(id: string) => void
-
id
tekenreeks
Een unieke ID voor de gemaakte configuratie of
undefinedbij 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()
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
callbackziet 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()
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
-
status
De VPN-sessiestatus van de VPN-client.
-
callback
functie optioneel
De parameter
callbackziet 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()
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
callbackziet 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()
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
callbackziet 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
callbackziet 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
callbackziet 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
callbackziet 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
callbackziet er zo uit:(id: string, message: PlatformMessage, error: string) => void
-
id
tekenreeks
-
bericht
-
fout
tekenreeks
-
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.