chrome.vpnProvider

Beschrijving

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

Machtigingen

vpnProvider

Beschikbaarheid

Chrome 43+ Alleen ChromeOS

Concepten en gebruik

Typisch gebruik van chrome.vpnProvider is als volgt:

  • Maak VPN-configuraties door createConfig() aan te roepen. Een VPN-configuratie is een permanente vermelding die aan de gebruiker wordt getoond in een 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 en onConfigRemoved .

  • Wanneer de gebruiker verbinding maakt met de VPN-configuratie, wordt onPlatformMessage ontvangen met het bericht "connected" . De periode tussen de berichten "connected" en "disconnected" wordt een "VPN-sessie" genoemd. In deze periode wordt gezegd dat het toestel dat 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 door setParameters() aan te roepen.

  • Geef de verbindingsstatus op als "connected" door notifyConnectionStateChanged() aan te roepen.

  • Wanneer de voorgaande stappen zonder fouten zijn voltooid, wordt er een virtuele tunnel gemaakt naar de netwerkstack van ChromeOS. IP-pakketten kunnen door de tunnel worden verzonden door sendPacket() aan te roepen. Alle pakketten die afkomstig zijn van het ChromeOS-apparaat worden ontvangen met behulp van de gebeurtenishandler onPacketReceived .

  • 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 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.

  • uitzendingAdres

    tekenreeks optioneel

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

  • dnsServers

    snaar[]

    Een lijst met IP-adressen 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 en resume 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"
Geeft aan dat de VPN-configuratie is verbonden.

"losgekoppeld"
Geeft aan dat de VPN-configuratie is verbroken.

"fout"
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 beschikbaar is.

"linkUp"
Geeft aan dat er een back-up is van de standaard fysieke netwerkverbinding.

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

"opschorten"
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.

"cv"
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"
Verzoekt dat de VPN-client het dialoogvenster voor het toevoegen van configuratie aan de gebruiker toont.

"showConfigureDialoog"
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 op de hoogte te stellen van de huidige status. Dit helpt om betekenisvolle berichten aan de gebruiker te geven.

Enum

"aangesloten"
Geeft aan dat de VPN-verbinding succesvol was.

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

Methoden

createConfig()

Belofte
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 ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

destroyConfig()

Belofte
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 ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

notifyConnectionStateChanged()

Belofte
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

  • 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 ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

sendPacket()

Belofte
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 ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

setParameters()

Belofte
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 ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

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

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