chrome.vpnProvider

Beschrijving

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

Toestemmingen

vpnProvider

Beschikbaarheid

Chrome 43+ Alleen voor ChromeOS

Gebruik

Het typische gebruik van vpnProvider is als volgt:

  • Maak VPN-configuraties aan met de createConfig methode. Een VPN-configuratie is een permanente invoer die aan de gebruiker wordt getoond in de native 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 het bericht "connected" . We noemen de periode tussen de berichten "connected" en "disconnected" een VPN-sessie. Gedurende deze periode wordt de extensie die het bericht ontvangt beschouwd als de eigenaar van de VPN-sessie.

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

  • Stel de verbindingsparameters in met behulp van setParameters .

  • Meld de verbindingsstatus als "connected" met behulp van notifyConnectionStateChanged .

  • Als de bovenstaande stappen zonder fouten zijn voltooid, wordt een virtuele tunnel naar de netwerkstack van ChromeOS gecreëerd. IP-pakketten kunnen via de tunnel worden verzonden met behulp van sendPacket en alle pakketten afkomstig van het ChromeOS-apparaat worden ontvangen met behulp van de gebeurtenis 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 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.

  • 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()

Belofte
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: 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.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (id: string) => void

    • id

      snaar

      Een unieke ID voor de aangemaakte configuratie, of undefined bij een fout.

Retourneert

  • Belofte<string>

    Chrome 96+

    Retourneert een Promise die wordt opgelost wanneer de configuratie is aangemaakt of wordt afgewezen als er een fout optreedt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

destroyConfig()

Belofte
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

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

Parameters

  • id

    snaar

    ID van de VPN-configuratie die verwijderd moet worden.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost wanneer de configuratie wordt vernietigd of wordt afgewezen als er een fout optreedt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

notifyConnectionStateChanged()

Belofte
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: 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

  • De VPN-sessiestatus van de VPN-client.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost wanneer de melding is voltooid of wordt afgewezen als er een fout optreedt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

sendPacket()

Belofte
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: 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.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost wanneer het pakket wordt verzonden of wordt afgewezen als er een fout optreedt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

setParameters()

Belofte
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: 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.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 96+

    Retourneert een Promise die wordt opgelost wanneer de parameters zijn ingesteld of wordt afgewezen als er een fout optreedt.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

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