chrome.vpnProvider

Beschrijving

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

Machtigingen

vpnProvider

Beschikbaarheid

Chrome 43+ Alleen ChromeOS

Begrippen en gebruik

Het typische gebruik van chrome.vpnProvider is als volgt:

  • Maak VPN-configuraties aan door createConfig() aan te roepen. Een VPN-configuratie is een permanente invoer die aan de gebruiker wordt getoond in de 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 de melding "connected" . De periode tussen de "connected" en "disconnected" berichten wordt een "VPN-sessie" genoemd. In deze periode wordt de extensie die het bericht ontvangt, beschouwd als eigenaar van de VPN-sessie.

  • Maak verbinding met de VPN-server en start de VPN-client.

  • Stel de parameters van de verbinding in door setParameters() aan te roepen.

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

  • Wanneer de voorgaande stappen zonder fouten zijn voltooid, wordt er een virtuele tunnel naar de netwerkstack van ChromeOS gemaakt. IP-pakketten kunnen via de tunnel worden verzonden door sendPacket() aan te roepen en alle pakketten die afkomstig zijn van het ChromeOS-apparaat, worden ontvangen met de gebeurtenis-handler 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 verwijderd door destroyConfig() aan te roepen.

Typen

Parameters

Eigenschappen

  • adres

    snaar

    IP-adres voor de VPN-interface in CIDR-notatie. IPv4 is momenteel de enige ondersteunde modus.

  • uitzendadres

    string optioneel

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

  • dns-servers

    snaar[]

    Een lijst met IP-adressen van de DNS-servers.

  • domeinZoeken

    string[] optioneel

    Een lijst met zoekdomeinen. (standaard: geen zoekdomein)

  • uitsluitingslijst

    snaar[]

    Sluit netwerkverkeer uit van de lijst met IP-blokken in CIDR-notatie vanuit 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 langste overeenkomende prefix. Items die overeenkomen met hetzelfde CIDR-blok, worden als duplicaten behandeld. Dergelijke duplicaten in de samengevoegde lijst (exclusionList + inclusionList) worden verwijderd en het exacte dubbele item dat wordt verwijderd, is ongedefinieerd.

  • inclusielijst

    snaar[]

    Voeg netwerkverkeer toe aan de lijst met IP-blokken in CIDR-notatie voor 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 regel "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 langste overeenkomende prefix. Vermeldingen die overeenkomen met hetzelfde CIDR-blok worden als duplicaten behandeld. Dergelijke duplicaten in de samengevoegde lijst (exclusionList + inclusionList) worden verwijderd en de exacte duplicaatvermelding die wordt verwijderd, is ongedefinieerd.

  • mtu

    string optioneel

    MTU-instelling voor de VPN-interface. (standaard: 1500 bytes)

  • opnieuw verbinden

    string optioneel

    Chroom 51+

    Of de VPN-extensie automatisch opnieuw verbinden implementeert.

    Indien ingesteld op 'true', worden de platformberichten linkDown , linkUp , linkChanged , suspend en resume gebruikt om de betreffende gebeurtenissen te signaleren. Indien ingesteld op 'false', verbreekt het systeem de VPN-verbinding geforceerd als de netwerktopologie verandert, en moet de gebruiker handmatig opnieuw verbinding maken. (standaard: false)

    Deze eigenschap is nieuw in Chrome 51. In eerdere versies genereert het een uitzondering. try/catch kan worden gebruikt om de functie voorwaardelijk in te schakelen op basis 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-configuratie verbonden is.

"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 error-argument voor onPlatformMessage.

"linkDown"
Geeft aan dat de standaard fysieke netwerkverbinding niet beschikbaar is.

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

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

"opschorten"
Geeft aan dat het besturingssysteem zich voorbereidt op pauzeren, waardoor de VPN de verbinding moet verbreken. Er is geen garantie dat de extensie deze gebeurtenis ontvangt voordat de pauze wordt ingelast.

"cv"
Geeft aan dat het besturingssysteem is hervat en dat de gebruiker opnieuw is ingelogd. In dat geval moet de VPN opnieuw verbinding proberen te maken.

UIEvent

De enum wordt door het platform gebruikt om de gebeurtenis aan te geven die onUIEvent heeft geactiveerd.

Enum

"toonAddDialog"
Verzoekt de VPN-client om het dialoogvenster voor het toevoegen van de configuratie aan de gebruiker te tonen.

"toonConfigureDialog"
Verzoekt 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. Dit helpt om de gebruiker zinvolle berichten te sturen.

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>

Maakt een nieuwe VPN-configuratie die blijft bestaan tijdens meerdere aanmeldsessies van de gebruiker.

Parameters

  • naam

    snaar

    De naam van de VPN-configuratie.

Retourneren

  • Belofte<string>

    Chroom 96+

destroyConfig()

chrome.vpnProvider.destroyConfig(
  id: string,
)
: Promise<void>

Vernietigt een VPN-configuratie die door de extensie is gemaakt.

Parameters

  • id

    snaar

    ID van de VPN-configuratie die moet worden vernietigd.

Retourneren

  • Belofte<leegte>

    Chroom 96+

notifyConnectionStateChanged()

chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
)
: Promise<void>

Geeft de VPN-sessiestatus door aan het platform. Dit is alleen succesvol als de VPN-sessie eigendom is van de extensie.

Parameters

Retourneren

  • Belofte<leegte>

    Chroom 96+

sendPacket()

chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
)
: Promise<void>

Stuurt een IP-pakket via 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.

Retourneren

  • Belofte<leegte>

    Chroom 96+

setParameters()

chrome.vpnProvider.setParameters(
  parameters: Parameters,
)
: Promise<void>

Stelt de parameters voor de VPN-sessie in. Deze moet direct worden aangeroepen nadat "connected" van het platform is ontvangen. Dit werkt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • parameters

    De parameters voor de VPN-sessie.

Retourneren

  • Belofte<leegte>

    Chroom 96+

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 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 door de extensie gemaakte configuratie door het platform wordt verwijderd.

Parameters

  • terugbellen

    functie

    De callback 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

  • terugbellen

    functie

    De callback ziet er als volgt uit:

    (data: ArrayBuffer) => void

    • gegevens

      ArrayBuffer

onPlatformMessage

chrome.vpnProvider.onPlatformMessage.addListener(
  callback: function,
)

Wordt geactiveerd wanneer er een bericht van het platform wordt ontvangen voor een VPN-configuratie die eigendom is van de extensie.

Parameters

  • terugbellen

    functie

    De callback 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 voor de extensie plaatsvindt. UI-gebeurtenissen zijn signalen van het platform die de app laten weten dat er een UI-dialoogvenster aan de gebruiker moet worden getoond.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

    • evenement
    • id

      string optioneel