Beschrijving
Gebruik de chrome.vpnProvider
API om een VPN-client te implementeren.
Machtigingen
vpnProvider
Beschikbaarheid
Gebruik
Typisch gebruik van vpnProvider is als volgt:
Maak VPN-configuraties met behulp van de
createConfig
methode. Een VPN-configuratie is een permanente invoer die aan de gebruiker wordt getoond in een native ChromeOS-gebruikersinterface. De gebruiker kan een VPN-configuratie uit een lijst selecteren en er verbinding mee maken of de verbinding verbreken.Voeg luisteraars toe aan de gebeurtenissen
onPlatformMessage
,onPacketReceived
enonConfigRemoved
.Wanneer 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 wordt gezegd dat de extensie die het bericht ontvangt eigenaar is van de VPN-sessie.Breng de verbinding met de VPN-server tot stand en start de VPN-client.
Stel de parameters van de verbinding in met
setParameters
.Meld de verbindingsstatus als
"connected"
met behulp vannotifyConnectionStateChanged
.Wanneer de bovenstaande stappen zonder fouten zijn voltooid, wordt er een virtuele tunnel gemaakt naar de netwerkstack van ChromeOS. IP-pakketten kunnen via de tunnel worden verzonden met behulp van
sendPacket
en alle pakketten die afkomstig zijn van het ChromeOS-apparaat worden ontvangen met behulp van de gebeurtenisonPacketReceived
.Wanneer de gebruiker de verbinding met de VPN-configuratie verbreekt, wordt
onPlatformMessage
geactiveerd met het bericht"disconnected"
.Als de VPN-configuratie niet langer nodig is, kan deze worden vernietigd met behulp van
destroyConfig
.
Soorten
Parameters
Eigenschappen
- adres
snaar
IP-adres voor de VPN-interface in CIDR-notatie. IPv4 is momenteel de enige ondersteunde modus.
- uitzendingAdres
tekenreeks optioneel
Broadcast-adres voor de VPN-interface. (standaard: afgeleid van IP-adres en masker)
- dnsServers
snaar[]
Een lijst met IP's voor de DNS-servers.
- domeinZoeken
tekenreeks[] optioneel
Een lijst met zoekdomeinen. (standaard: geen zoekdomein)
- uitsluitingslijst
snaar[]
Sluit netwerkverkeer uit naar de lijst met IP-blokken in CIDR-notatie van de tunnel. Dit kan worden gebruikt om verkeer van en naar de VPN-server te omzeilen. Wanneer veel regels overeenkomen met een bestemming, wint de regel met het langst overeenkomende voorvoegsel. Invoeren die overeenkomen met hetzelfde CIDR-blok worden als duplicaten behandeld. Dergelijke duplicaten in de verzamelde lijst (exclusionList + includingcludeList) worden geëlimineerd en de exacte dubbele invoer die wordt geëlimineerd, is niet gedefinieerd.
- inclusieLijst
snaar[]
Voeg netwerkverkeer toe aan de lijst met IP-blokken in CIDR-notatie naar de tunnel. Deze parameter kan worden gebruikt om een gesplitste tunnel in te stellen. Standaard wordt er geen verkeer naar de tunnel geleid. Door de vermelding "0.0.0.0/0" aan deze lijst toe te voegen, wordt al het gebruikersverkeer omgeleid naar de tunnel. Wanneer veel regels overeenkomen met een bestemming, wint de regel met het langst overeenkomende voorvoegsel. Invoeren die overeenkomen met hetzelfde CIDR-blok worden als duplicaten behandeld. Dergelijke duplicaten in de verzamelde lijst (exclusionList + includingcludeList) worden geëlimineerd en de exacte dubbele invoer die wordt geëlimineerd, is niet gedefinieerd.
- mtu
tekenreeks optioneel
MTU-instelling voor de VPN-interface. (standaard: 1500 bytes)
- opnieuw verbinden
tekenreeks optioneel
Chroom 51+Of de VPN-extensie wel of niet automatisch opnieuw verbinden implementeert.
Als dit waar is, worden de platformberichten
linkDown
,linkUp
,linkChanged
,suspend
enresume
gebruikt om de respectieve gebeurtenissen te signaleren. Als dit niet waar is, zal het systeem de VPN met geweld verbreken als de netwerktopologie verandert, en moet de gebruiker handmatig opnieuw verbinding maken. (standaard: onwaar)Deze eigenschap is nieuw in Chrome 51; het genereert een uitzondering in eerdere versies. try/catch kan worden gebruikt om de functie voorwaardelijk in te schakelen 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
"aangesloten" "losgekoppeld" "fout" "linkDown" "linkUp" "linkGewijzigd" "opschorten" "cv"
Geeft aan dat de VPN-configuratie is verbonden.
Geeft aan dat de VPN-configuratie is verbroken.
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.
Geeft aan dat de standaard fysieke netwerkverbinding niet beschikbaar is.
Geeft aan dat er een back-up is van de standaard fysieke netwerkverbinding.
Geeft aan dat de standaard fysieke netwerkverbinding is gewijzigd, bijvoorbeeld wifi->mobiel.
Geeft aan dat het besturingssysteem zich voorbereidt op opschorting, dus de VPN moet de verbinding verbreken. Het is niet gegarandeerd dat de verlenging deze gebeurtenis ontvangt voordat deze wordt opgeschort.
Geeft aan dat het besturingssysteem is hervat en dat de gebruiker opnieuw heeft ingelogd, dus de VPN moet proberen opnieuw verbinding te maken.
UIEvent
De enum wordt door het platform gebruikt om de gebeurtenis aan te geven die onUIEvent
heeft geactiveerd.
Enum
"toonToevoegenDialoog" "showConfigureDialoog"
Verzoekt dat de VPN-client het dialoogvenster voor het toevoegen van configuratie aan de gebruiker toont.
Verzoekt dat de VPN-client het dialoogvenster met configuratie-instellingen aan de gebruiker toont.
VpnConnectionState
De enum wordt door de VPN-client gebruikt om het platform over de huidige status te informeren. Dit helpt om betekenisvolle berichten aan de gebruiker te geven.
Enum
"aangesloten" "mislukking"
Geeft aan dat de VPN-verbinding succesvol was.
Geeft aan dat de VPN-verbinding is mislukt.
Methoden
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
Creëert een nieuwe VPN-configuratie die gedurende meerdere inlogsessies van de gebruiker blijft bestaan.
Parameters
- naam
snaar
De naam van de VPN-configuratie.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(id: string) => void
- Identiteitskaart
snaar
Een unieke ID voor de gemaakte configuratie, of
undefined
bij falen.
Retouren
Beloof<tekenreeks>
Chroom 96+Beloften worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
Vernietigt een VPN-configuratie die door de extensie is gemaakt.
Parameters
- Identiteitskaart
snaar
ID van de VPN-configuratie die moet worden vernietigd.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 96+Beloften worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
Geeft de status van de VPN-sessie door aan het platform. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.
Parameters
- staat
De VPN-sessiestatus van de VPN-client.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 96+Beloften worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
Stuurt een IP-pakket door de tunnel die voor de VPN-sessie is gemaakt. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.
Parameters
- gegevens
ArrayBuffer
Het IP-pakket dat naar het platform moet worden verzonden.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 96+Beloften worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
Stelt de parameters in voor de VPN-sessie. 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.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 96+Beloften worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
Evenementen
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Wordt geactiveerd wanneer er door het platform een configuratie voor de extensie wordt gemaakt.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(id: string, name: string, data: object) => void
- Identiteitskaart
snaar
- naam
snaar
- gegevens
voorwerp
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Wordt geactiveerd wanneer een configuratie die door de extensie is gemaakt, door het platform wordt verwijderd.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(id: string) => void
- Identiteitskaart
snaar
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Wordt geactiveerd wanneer een IP-pakket wordt ontvangen via de tunnel voor de VPN-sessie die eigendom is van de extensie.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(data: ArrayBuffer) => void
- gegevens
ArrayBuffer
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Wordt geactiveerd wanneer er een bericht wordt ontvangen van het platform voor een VPN-configuratie die eigendom is van de extensie.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(id: string, message: PlatformMessage, error: string) => void
- Identiteitskaart
snaar
- bericht
- fout
snaar
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Wordt geactiveerd wanneer er een UI-gebeurtenis is voor de extensie. UI-gebeurtenissen zijn signalen van het platform die aan de app aangeven dat er een UI-dialoog aan de gebruiker moet worden getoond.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(event: UIEvent, id?: string) => void
- evenement
- Identiteitskaart
tekenreeks optioneel