Beschrijving
Gebruik de chrome.vpnProvider API om een VPN-client te implementeren.
Toestemmingen
vpnProviderBeschikbaarheid
Concepten en gebruik
Het typische gebruik van chrome.vpnProvider is als volgt:
Maak VPN-configuraties aan door de functie
createConfig()aan te roepen. Een VPN-configuratie is een permanente vermelding die aan de gebruiker wordt getoond in de ChromeOS-interface. 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,onPacketReceivedenonConfigRemoved.Wanneer de gebruiker verbinding maakt met de VPN-configuratie, ontvangt hij
onPlatformMessagemet de melding"connected". De periode tussen de berichten"connected"en"disconnected"wordt een "VPN-sessie" genoemd. Gedurende deze periode is het toestel dat het bericht ontvangt de eigenaar van de VPN-sessie.Maak verbinding met de VPN-server en start de VPN-client.
Stel de parameters van de verbinding in door de functie
setParameters()aan te roepen.Geef de verbindingsstatus door als
"connected"doornotifyConnectionStateChanged()aan te roepen.Als de voorgaande stappen zonder fouten zijn voltooid, wordt een virtuele tunnel naar de netwerkstack van ChromeOS gecreëerd. IP-pakketten kunnen via de tunnel worden verzonden door de functie
sendPacket()aan te roepen, en alle pakketten afkomstig van het ChromeOS-apparaat worden ontvangen via de gebeurtenisafhandelaaronPacketReceived.Wanneer de gebruiker de VPN-verbinding verbreekt, wordt
onPlatformMessagegeactiveerd met het bericht"disconnected".Als de VPN-configuratie niet langer nodig is, kan deze worden verwijderd door
destroyConfig()aan te roepen.
Soorten
Parameters
Eigenschappen
- adres
snaar
IP-adres voor de VPN-interface in CIDR-notatie. IPv4 is momenteel de enige ondersteunde modus.
- broadcastAddress
string optioneel
Broadcastadres voor de VPN-interface. (standaard: afgeleid van IP-adres en subnetmasker)
- dnsServers
snaar[]
Een lijst met IP-adressen van de DNS-servers.
- domeinZoeken
string[] optioneel
Een lijst met zoekdomeinen. (standaard: geen zoekdomein)
- uitsluitingslijst
snaar[]
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. Wanneer meerdere regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende voorvoegsel. Vermeldingen die overeenkomen met hetzelfde CIDR-blok worden als duplicaten beschouwd. Dergelijke duplicaten in de samengevoegde lijst (uitsluitingslijst + inclusielijst) worden verwijderd en de exacte duplicaatvermelding die wordt verwijderd, is niet gedefinieerd.
- inclusielijst
snaar[]
Voeg netwerkverkeer toe aan de lijst met IP-blokken in CIDR-notatie voor de tunnel. Deze parameter kan worden gebruikt om een splittunnel 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 naar de tunnel omgeleid. Wanneer meerdere regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende voorvoegsel. Vermeldingen die overeenkomen met hetzelfde CIDR-blok worden als duplicaten beschouwd. Dergelijke duplicaten in de samengevoegde lijst (uitsluitingslijst + inclusielijst) worden verwijderd en de exacte duplicaatvermelding die wordt verwijderd, is niet gedefinieerd.
- mtu
string optioneel
MTU-instelling voor de VPN-interface. (standaard: 1500 bytes)
- opnieuw verbinding maken
string optioneel
Chrome 51+Of de VPN-extensie al dan niet automatische herverbinding ondersteunt.
Indien waar, worden de platformberichten
linkDown,linkUp,linkChanged,suspendenresumegebruikt om de betreffende gebeurtenissen aan te geven. Indien onwaar, zal het systeem de VPN-verbinding geforceerd verbreken als de netwerktopologie verandert, en moet de gebruiker handmatig opnieuw verbinding maken. (standaard: onwaar)Deze eigenschap is nieuw in Chrome 51; in eerdere versies zal deze een uitzondering genereren. Met try/catch kan de functie voorwaardelijk worden ingeschakeld, afhankelijk van de browserondersteuning.
PlatformMessage
De enum wordt door het platform gebruikt om de client op de hoogte te stellen van de status van de VPN-sessie.
Enum
"aangesloten" "losgekoppeld" "fout" "linkDown" "linkUp" "linkChanged" "opschorten" "cv"
Geeft aan dat de VPN-verbinding tot stand is gebracht.
Geeft aan dat de VPN-verbinding is verbroken.
Geeft aan dat er een fout is opgetreden in de VPN-verbinding, bijvoorbeeld een time-out. Een beschrijving van de fout wordt als argument meegegeven aan onPlatformMessage.
Geeft aan dat de standaard fysieke netwerkverbinding verbroken is.
Geeft aan dat de standaard fysieke netwerkverbinding weer operationeel is.
Geeft aan dat de standaard fysieke netwerkverbinding is gewijzigd, bijvoorbeeld van wifi naar mobiel.
Geeft aan dat het besturingssysteem zich voorbereidt op de slaapstand, waardoor de VPN-verbinding verbroken moet worden. Het is niet gegarandeerd dat de extensie deze melding ontvangt voordat de slaapstand wordt opgeheven.
Dit geeft aan dat het besturingssysteem is hervat en de gebruiker opnieuw is ingelogd, dus de VPN zou moeten proberen opnieuw verbinding te maken.
UIEvent
De enum wordt door het platform gebruikt om aan te geven welke gebeurtenis onUIEvent heeft geactiveerd.
Enum
"showAddDialog" "showConfigureDialog"
Verzoek aan de VPN-client om het dialoogvenster voor het toevoegen van configuratiegegevens aan de gebruiker te tonen.
Verzoek aan de VPN-client om het configuratiedialoogvenster aan de gebruiker te tonen.
VpnConnectionState
De enum wordt door de VPN-client gebruikt om het platform te informeren over de huidige status. Dit helpt om zinvolle berichten aan de gebruiker te tonen.
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,
): Promise<string>
Hiermee wordt een nieuwe VPN-configuratie aangemaakt die behouden blijft gedurende meerdere inlogsessies van de gebruiker.
Parameters
- naam
snaar
De naam van de VPN-configuratie.
Retourneert
Belofte<string>
Chrome 96+Retourneert een Promise die wordt opgelost wanneer de configuratie is aangemaakt of wordt afgewezen als er een fout optreedt.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
): Promise<void>
Vernietigt een VPN-configuratie die door de extensie is aangemaakt.
Parameters
- id
snaar
ID van de VPN-configuratie die verwijderd moet worden.
Retourneert
Promise<void>
Chrome 96+Retourneert een Promise die wordt opgelost wanneer de configuratie wordt vernietigd of wordt afgewezen als er een fout optreedt.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
): Promise<void>
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.
Retourneert
Promise<void>
Chrome 96+Retourneert een Promise die wordt opgelost wanneer de melding is voltooid of wordt afgewezen als er een fout optreedt.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
): Promise<void>
Verzendt een IP-pakket via de tunnel die is aangemaakt 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 verzonden.
Retourneert
Promise<void>
Chrome 96+Retourneert een Promise die wordt opgelost wanneer het pakket wordt verzonden of wordt afgewezen als er een fout optreedt.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
): Promise<void>
Stelt de parameters voor de VPN-sessie in. Deze functie moet direct worden aangeroepen nadat het platform "connected" tot stand heeft gebracht. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.
Parameters
- parameters
De parameters voor de VPN-sessie.
Retourneert
Promise<void>
Chrome 96+Retourneert een Promise die wordt opgelost wanneer de parameters zijn ingesteld of wordt afgewezen als er een fout optreedt.
Evenementen
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Wordt geactiveerd wanneer het platform een configuratie voor de extensie aanmaakt.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(id: string, name: string, data: object) => void
- id
snaar
- naam
snaar
- gegevens
voorwerp
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Wordt geactiveerd wanneer een configuratie die door de extensie is aangemaakt, door het platform wordt verwijderd.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(id: string) => void
- id
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
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(data: ArrayBuffer) => void
- gegevens
ArrayBuffer
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Wordt geactiveerd wanneer een bericht van het platform wordt ontvangen voor een VPN-configuratie die eigendom is van de extensie.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(id: string, message: PlatformMessage, error: string) => void
- id
snaar
- bericht
- fout
snaar
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Deze functie wordt geactiveerd wanneer er een UI-gebeurtenis voor de extensie is. UI-gebeurtenissen zijn signalen van het platform die aan de app aangeven dat er een UI-dialoogvenster aan de gebruiker moet worden getoond.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(event: UIEvent, id?: string) => void
- evenement
- id
string optioneel