chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

Beschreibung

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

Berechtigungen

vpnProvider

Verfügbarkeit

Chrome 43 und höher Nur ChromeOS

Nutzung

Typische Verwendung von vpnProvider:

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

  • Fügen Sie den Ereignissen onPlatformMessage, onPacketReceived und onConfigRemoved Listener hinzu.

  • Wenn der Nutzer eine Verbindung zur VPN-Konfiguration herstellt, wird onPlatformMessage mit der Nachricht "connected" empfangen. Der Zeitraum zwischen den Nachrichten "connected" und "disconnected" wird als VPN-Sitzung bezeichnet. In diesem Zeitraum ist die Erweiterung, die die Nachricht empfängt, der Inhaber der VPN-Sitzung.

  • Initiieren Sie die Verbindung zum VPN-Server und starten Sie den VPN-Client.

  • Legen Sie die Parameter der Verbindung mit setParameters fest.

  • Benachrichtigen Sie den Verbindungsstatus als "connected" mit notifyConnectionStateChanged.

  • Wenn die oben genannten Schritte ohne Fehler ausgeführt werden, wird ein virtueller Tunnel zum Netzwerkstack von ChromeOS erstellt. IP-Pakete können mit sendPacket über den Tunnel gesendet werden. Alle Pakete, die vom ChromeOS-Gerät stammen, werden mit dem Ereignis onPacketReceived empfangen.

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

  • Wenn die VPN-Konfiguration nicht mehr benötigt wird, kann sie mit destroyConfig gelöscht werden.

Typen

Parameters

Attribute

  • Adresse

    String

    IP-Adresse für die VPN-Schnittstelle in CIDR-Notation. IPv4 ist derzeit der einzige unterstützte Modus.

  • 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 von Suchdomains. (Standardwert: keine Suchdomain)

  • exclusionList

    String[]

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

  • inclusionList

    String[]

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

  • mtu

    String optional

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

  • reconnect

    String optional

    Chrome 51 oder höher

    Gibt an, ob die VPN-Erweiterung die automatische Wiederherstellung der Verbindung implementiert.

    Wenn „true“, werden die Plattformmeldungen linkDown, linkUp, linkChanged, suspend und resume verwendet, um die entsprechenden Ereignisse zu signalisieren. Wenn „false“ festgelegt ist, trennt das System die VPN-Verbindung, wenn sich die Netzwerktopologie ändert. Der Nutzer muss die Verbindung dann manuell wiederherstellen. (Standardeinstellung: false)

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

PlatformMessage

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

Enum

"connected"
Gibt an, dass die VPN-Konfiguration verbunden ist.

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

"error"
Gibt an, dass bei der VPN-Verbindung ein Fehler aufgetreten ist, z. B. eine Zeitüberschreitung. Eine Beschreibung des Fehlers wird als Fehlerargument an onPlatformMessage übergeben.

"linkDown"
Gibt an, dass die standardmäßige physische Netzwerkverbindung ausgefallen ist.

"linkUp"
Gibt an, dass die standardmäßige physische Netzwerkverbindung 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 den Ruhezustand vorbereitet, sodass das VPN die Verbindung trennen sollte. Es ist nicht garantiert, dass die Erweiterung dieses Ereignis vor dem Sperren erhält.

"resume"
Gibt an, dass das Betriebssystem fortgesetzt wurde und der Nutzer sich wieder angemeldet hat. Das VPN sollte 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 für die Konfigurationseinstellungen anzuzeigen.

VpnConnectionState

Das Enum wird vom VPN-Client verwendet, um die Plattform über seinen aktuellen Status zu informieren. So können Nutzern aussagekräftige Nachrichten angezeigt werden.

Enum

"connected"
Gibt an, dass die VPN-Verbindung erfolgreich hergestellt wurde.

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

Methoden

createConfig()

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

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

Parameter

  • name

    String

    Der Name der VPN-Konfiguration.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    (id: string) => void

    • id

      String

      Eine eindeutige ID für die erstellte Konfiguration oder undefined bei einem Fehler.

Ausgabe

  • Promise<string>

    Chrome 96 oder höher

    Gibt ein Promise zurück, das aufgelöst wird, wenn die Konfiguration erstellt wird, oder abgelehnt wird, wenn ein Fehler auftritt.

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

destroyConfig()

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

Zerstört eine von der Erweiterung erstellte VPN-Konfiguration.

Parameter

  • id

    String

    ID der zu löschenden VPN-Konfiguration.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 96 oder höher

    Gibt ein Promise zurück, das aufgelöst wird, wenn die Konfiguration gelöscht wird, oder abgelehnt wird, wenn ein Fehler auftritt.

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

notifyConnectionStateChanged()

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

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

Parameter

  • Bundesstaat

    Der VPN-Sitzungsstatus des VPN-Clients.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 96 oder höher

    Gibt ein Promise zurück, das aufgelöst wird, wenn die Benachrichtigung abgeschlossen ist, oder abgelehnt wird, wenn ein Fehler auftritt.

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

sendPacket()

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

Sendet ein IP-Paket über den Tunnel, der für die VPN-Sitzung erstellt wurde. 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.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 96 oder höher

    Gibt ein Promise zurück, das aufgelöst wird, wenn das Paket gesendet wird, oder abgelehnt wird, wenn ein Fehler auftritt.

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

setParameters()

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

Legt die Parameter für die VPN-Sitzung fest. Diese Methode sollte sofort aufgerufen werden, nachdem "connected" von der Plattform empfangen wurde. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

  • Parameter

    Die Parameter für die VPN-Sitzung.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 96 oder höher

    Gibt ein Promise zurück, das aufgelöst wird, wenn die Parameter festgelegt sind, oder abgelehnt wird, wenn ein Fehler auftritt.

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

Ereignisse

onConfigCreated

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

Wird ausgelöst, wenn von der Plattform eine Konfiguration 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 mitteilen, 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