chrome.vpnProvider

Beschreibung

Verwenden Sie die chrome.vpnProvider API, um einen VPN-Client zu implementieren.

Berechtigungen

vpnProvider

Verfügbarkeit

Chrome 43 und höher Nur ChromeOS

Konzepte und Verwendung

chrome.vpnProvider wird in der Regel so verwendet:

  • Erstellen Sie VPN-Konfigurationen, indem Sie createConfig() aufrufen. Eine VPN-Konfiguration ist ein dauerhafter Eintrag, der dem Nutzer in einer ChromeOS-Benutzeroberfläche angezeigt wird. Der Nutzer kann eine VPN-Konfiguration aus einer Liste auswählen und eine Verbindung herstellen oder trennen.

  • Fügen Sie Listener für die Ereignisse onPlatformMessage, onPacketReceived und onConfigRemoved hinzu.

  • Wenn sich der Nutzer mit der VPN-Konfiguration verbindet, wird onPlatformMessage mit der Meldung "connected" empfangen. Der Zeitraum zwischen den Nachrichten "connected" und "disconnected" wird als „VPN-Sitzung“ bezeichnet. In diesem Zeitraum gehört die VPN-Sitzung der Erweiterung, die die Nachricht empfängt.

  • Stellen Sie eine Verbindung zum VPN-Server her und starten Sie den VPN-Client.

  • Legen Sie die Parameter der Verbindung fest, indem Sie setParameters() aufrufen.

  • Benachrichtigen Sie den Verbindungsstatus als "connected", indem Sie notifyConnectionStateChanged() aufrufen.

  • Wenn die vorherigen Schritte fehlerfrei abgeschlossen wurden, wird ein virtueller Tunnel zum Netzwerk-Stack von ChromeOS erstellt. IP-Pakete können durch Aufrufen von sendPacket() über den Tunnel gesendet werden. Alle Pakete, die vom ChromeOS-Gerät stammen, werden über den Ereignishandler onPacketReceived empfangen.

  • Wenn der Nutzer die Verbindung zur VPN-Konfiguration trennt, wird onPlatformMessage mit der Meldung "disconnected" ausgelöst.

  • Wenn die VPN-Konfiguration nicht mehr erforderlich ist, kann sie durch Aufrufen von destroyConfig() zerstört werden.

Typen

Parameters

Attribute

  • Adresse

    String

    IP-Adresse für die VPN-Schnittstelle in CIDR-Notation. Derzeit wird nur IPv4 unterstützt.

  • broadcastAddress

    String optional

    Broadcast-Adresse für die VPN-Schnittstelle. (Standard: wird aus IP-Adresse und Maske abgeleitet)

  • dnsServers

    String[]

    Eine Liste der IP-Adressen für die DNS-Server.

  • domainSearch

    string[] optional

    Eine Liste mit Suchdomains. (Standardwert: keine Suchdomain)

  • exclusionList

    String[]

    Schließen Sie Netzwerk-Traffic zur Liste der IP-Blöcke in CIDR-Notation aus dem Tunnel aus. Damit kann der Traffic zum und vom VPN-Server umgangen werden. Wenn viele Regeln mit einem Ziel übereinstimmen, wird die Regel mit dem längsten übereinstimmenden Präfix angewendet. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate in der zusammengeführten Liste (exclusionList + inclusionList) werden entfernt. Es ist nicht definiert, welcher der doppelten Einträge entfernt wird.

  • inclusionList

    String[]

    Fügen Sie der Liste der IP-Blöcke in CIDR-Notation für den Tunnel Netzwerk-Traffic hinzu. Mit diesem Parameter kann ein Split-Tunnel eingerichtet werden. Standardmäßig wird kein Traffic an den Tunnel weitergeleitet. Wenn Sie der Liste den Eintrag „0.0.0.0/0“ hinzufügen, wird der gesamte Nutzertraffic zum Tunnel umgeleitet. Wenn viele Regeln mit einem Ziel übereinstimmen, wird die Regel mit dem längsten übereinstimmenden Präfix angewendet. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate in der zusammengeführten Liste (exclusionList + inclusionList) werden entfernt. Es ist nicht definiert, welcher der doppelten Einträge entfernt wird.

  • mtu

    String optional

    MTU-Einstellung für die VPN-Schnittstelle. (Standard: 1.500 Byte)

  • erneut verbinden

    String optional

    Chrome 51 und höher

    Gibt an, ob die VPN-Erweiterung die automatische Wiederverbindung implementiert.

    Wenn „true“, werden die Plattformnachrichten linkDown, linkUp, linkChanged, suspend und resume verwendet, um die entsprechenden Ereignisse zu signalisieren. Wenn der Wert „false“ ist, wird die VPN-Verbindung vom System getrennt, wenn sich die Netzwerktopologie ändert. Der Nutzer muss die Verbindung dann manuell wiederherstellen. (Standardwert: false)

    Diese Eigenschaft ist neu in Chrome 51. In früheren Versionen wird eine Ausnahme generiert. Mit try/catch kann die Funktion basierend auf der Browserunterstützung bedingt aktiviert werden.

PlatformMessage

Das Enum wird von der Plattform verwendet, um den Client über den VPN-Sitzungsstatus zu informieren.

Enum

Verbunden
Gibt an, dass die VPN-Konfiguration verbunden ist.

„disconnected“
Gibt an, dass die VPN-Konfiguration getrennt wurde.

„error“
Gibt an, dass ein Fehler in der VPN-Verbindung aufgetreten ist, z. B. ein Zeitüberschreitungsfehler. Eine Beschreibung des Fehlers wird als Fehlerargument an onPlatformMessage übergeben.

„linkDown“
Gibt an, dass die physische Standardnetzwerkverbindung nicht aktiv ist.

„linkUp“
Gibt an, dass die physische Standardnetzwerkverbindung wieder aktiv ist.

„linkChanged“
Gibt an, dass sich die standardmäßige physische Netzwerkverbindung geändert hat, z.B. von WLAN zu Mobilfunk.

„suspend“
Gibt an, dass das Betriebssystem sich auf das Anhalten vorbereitet. Die VPN-Verbindung sollte also getrennt werden. Es ist nicht garantiert, dass die Erweiterung dieses Ereignis vor der Sperrung empfängt.

„resume“
Gibt an, dass das Betriebssystem fortgesetzt wurde und der Nutzer sich wieder angemeldet hat. Das VPN sollte also versuchen, die Verbindung wiederherzustellen.

UIEvent

Das Enum wird von der Plattform verwendet, um das Ereignis anzugeben, das onUIEvent ausgelöst hat.

Enum

showAddDialog
Fordert den VPN-Client auf, dem Nutzer das Dialogfeld zum Hinzufügen einer Konfiguration anzuzeigen.

showConfigureDialog
Fordert den VPN-Client auf, dem Nutzer das Dialogfeld mit den Konfigurationseinstellungen anzuzeigen.

VpnConnectionState

Die Aufzählung wird vom VPN-Client verwendet, um die Plattform über den aktuellen Status zu informieren. So können dem Nutzer relevante Informationen präsentiert werden.

Enum

„connected“
Gibt an, dass die VPN-Verbindung erfolgreich war.

„failure“
Gibt an, dass die VPN-Verbindung fehlgeschlagen ist.

Methoden

createConfig()

chrome.vpnProvider.createConfig(
  name: string,
)
: Promise<string>

Erstellt eine neue VPN-Konfiguration, die über mehrere Anmeldesitzungen des Nutzers hinweg bestehen bleibt.

Parameter

  • name

    String

    Der Name der VPN-Konfiguration.

Ausgabe

  • Promise<string>

    Chrome 96 und höher

destroyConfig()

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

Löscht eine von der Erweiterung erstellte VPN-Konfiguration.

Parameter

  • id

    String

    ID der zu löschenden VPN-Konfiguration.

Ausgabe

  • Promise<void>

    Chrome 96 und höher

notifyConnectionStateChanged()

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

Benachrichtigt die Plattform über den VPN-Sitzungsstatus. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

Ausgabe

  • Promise<void>

    Chrome 96 und höher

sendPacket()

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

Sendet ein IP-Paket über den für die VPN-Sitzung erstellten Tunnel. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

  • Daten

    ArrayBuffer

    Das IP-Paket, das an die Plattform gesendet werden soll.

Ausgabe

  • Promise<void>

    Chrome 96 und höher

setParameters()

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

Legt die Parameter für die VPN-Sitzung fest. Diese Funktion sollte unmittelbar nach dem Empfang von "connected" von der Plattform aufgerufen werden. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

  • Parameter

    Die Parameter für die VPN-Sitzung.

Ausgabe

  • Promise<void>

    Chrome 96 und höher

Ereignisse

onConfigCreated

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

Wird ausgelöst, wenn eine Konfiguration von der Plattform für die Erweiterung erstellt wird.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (id: string, name: string, data: object) => void

    • id

      String

    • name

      String

    • Daten

      Objekt

onConfigRemoved

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

Wird ausgelöst, wenn eine von der Erweiterung erstellte Konfiguration von der Plattform entfernt wird.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (id: string) => void

    • id

      String

onPacketReceived

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

Wird ausgelöst, wenn ein IP-Paket über den Tunnel für die VPN-Sitzung empfangen wird, die der Erweiterung gehört.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (data: ArrayBuffer) => void

    • Daten

      ArrayBuffer

onPlatformMessage

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

Wird ausgelöst, wenn eine Nachricht von der Plattform für eine VPN-Konfiguration empfangen wird, die der Erweiterung gehört.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

onUIEvent

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

Wird ausgelöst, wenn ein UI-Ereignis für die Erweiterung vorliegt. UI-Ereignisse sind Signale von der Plattform, die der App signalisieren, dass dem Nutzer ein UI-Dialogfeld angezeigt werden muss.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

    • event
    • id

      String optional