chrome.vpnProvider

Beschrijving

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

Toestemmingen

vpnProvider

Beschikbaarheid

Chrome 43+ Alleen voor ChromeOS

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 , onPacketReceived en onConfigRemoved .

  • Wanneer de gebruiker verbinding maakt met de VPN-configuratie, ontvangt hij onPlatformMessage met 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" door notifyConnectionStateChanged() 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 gebeurtenisafhandelaar onPacketReceived .

  • Wanneer de gebruiker de VPN-verbinding verbreekt, wordt onPlatformMessage geactiveerd 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 , suspend en resume gebruikt 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"
Geeft aan dat de VPN-verbinding tot stand is gebracht.

"losgekoppeld"
Geeft aan dat de VPN-verbinding 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 als argument meegegeven aan onPlatformMessage.

"linkDown"
Geeft aan dat de standaard fysieke netwerkverbinding verbroken is.

"linkUp"
Geeft aan dat de standaard fysieke netwerkverbinding weer operationeel is.

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

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

"cv"
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"
Verzoek aan de VPN-client om het dialoogvenster voor het toevoegen van configuratiegegevens aan de gebruiker te tonen.

"showConfigureDialog"
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"
Geeft aan dat de VPN-verbinding succesvol was.

"mislukking"
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

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 callback parameter 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 callback parameter 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 callback parameter 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 callback parameter ziet er als volgt uit:

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

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 callback parameter ziet er als volgt uit:

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