chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

Opis

Użyj interfejsu chrome.vpnProvider API, aby wdrożyć klienta VPN.

Uprawnienia

vpnProvider

Dostępność

Chrome 43 lub nowszy Tylko ChromeOS

Wykorzystanie

Typowe użycie parametru vpnProvider wygląda tak:

  • Twórz konfiguracje sieci VPN za pomocą metody createConfig. Konfiguracja VPN to trwały wpis wyświetlany użytkownikowi w natywnym interfejsie ChromeOS. Użytkownik może wybrać konfigurację VPN z listy i połączyć się z nią lub rozłączyć się z nią.

  • Dodaj detektory do zdarzeń onPlatformMessage, onPacketReceived i onConfigRemoved.

  • Gdy użytkownik połączy się z konfiguracją sieci VPN, otrzyma komunikat onPlatformMessage z wiadomością "connected". Okres między wiadomościami "connected" i "disconnected" nazywamy sesją VPN. W tym czasie rozszerzenie, które otrzyma wiadomość, jest właścicielem sesji VPN.

  • Zainicjuj połączenie z serwerem VPN i uruchom klienta VPN.

  • Ustaw parametry połączenia za pomocą setParameters.

  • Powiadom o stanie połączenia jako "connected" za pomocą notifyConnectionStateChanged.

  • Jeśli powyższe czynności zostaną wykonane bez błędów, do stosu sieciowego ChromeOS zostanie utworzony wirtualny tunel. Pakiety IP można wysyłać przez tunel za pomocą sendPacket, a wszystkie pakiety pochodzące z urządzenia z ChromeOS będą odbierane za pomocą zdarzenia onPacketReceived.

  • Gdy użytkownik odłączy się od konfiguracji VPN, zostanie wywołane zdarzenie onPlatformMessage z komunikatem "disconnected".

  • Jeśli konfiguracja sieci VPN nie jest już potrzebna, można ją usunąć za pomocą polecenia destroyConfig.

Typy

Parameters

Właściwości

  • adres

    tekst

    Adres IP interfejsu VPN w notacji CIDR. Obecnie obsługiwany jest tylko tryb IPv4.

  • broadcastAddress

    ciąg znaków opcjonalny

    Adres rozgłoszeniowy interfejsu VPN. (domyślnie: wywnioskowany z adresu IP i maski)

  • dnsServers

    string[]

    Lista adresów IP serwerów DNS.

  • domainSearch

    string[] opcjonalnie

    Lista domen wyszukiwania. (domyślnie: brak domeny wyszukiwania)

  • exclusionList

    string[]

    Wyklucz ruch w sieci do listy bloków IP w notacji CIDR z tunelu. Można go używać do omijania ruchu do i z serwera VPN. Jeśli do miejsca docelowego pasuje wiele reguł, wygrywa reguła z najdłuższym pasującym prefiksem. Wpisy odpowiadające temu samemu blokowi CIDR są traktowane jako duplikaty. Takie duplikaty na połączonej liście (exclusionList + inclusionList) są eliminowane, a dokładny zduplikowany wpis, który zostanie usunięty, jest nieokreślony.

  • inclusionList

    string[]

    Uwzględnij ruch w sieci na liście bloków adresów IP w notacji CIDR do tunelu. Ten parametr może służyć do konfigurowania tunelu dzielonego. Domyślnie do tunelu nie jest kierowany żaden ruch. Dodanie do tej listy wpisu „0.0.0.0/0” spowoduje przekierowanie całego ruchu użytkowników do tunelu. Jeśli do miejsca docelowego pasuje wiele reguł, wygrywa reguła z najdłuższym pasującym prefiksem. Wpisy odpowiadające temu samemu blokowi CIDR są traktowane jako duplikaty. Takie duplikaty na połączonej liście (exclusionList + inclusionList) są eliminowane, a dokładny zduplikowany wpis, który zostanie usunięty, jest nieokreślony.

  • mtu

    ciąg znaków opcjonalny

    Ustawienie MTU dla interfejsu VPN. (domyślnie: 1500 bajtów)

  • ponownie połączyć,

    ciąg znaków opcjonalny

    Chrome 51 lub nowsza

    Określa, czy rozszerzenie VPN implementuje automatyczne ponowne łączenie.

    Jeśli wartość jest prawdziwa, do sygnalizowania odpowiednich zdarzeń będą używane komunikaty platform linkDown, linkUp, linkChanged, suspend i resume. Jeśli wartość to „fałsz”, system wymusi rozłączenie sieci VPN w przypadku zmiany topologii sieci, a użytkownik będzie musiał ponownie połączyć się z siecią ręcznie. (domyślnie: fałsz)

    Ta właściwość jest nowa w Chrome 51. W starszych wersjach będzie generować wyjątek. Za pomocą try/catch można warunkowo włączać tę funkcję w zależności od obsługi przeglądarki.

PlatformMessage

Wyliczenie jest używane przez platformę do powiadamiania klienta o stanie sesji VPN.

Typ wyliczeniowy

„connected”
Oznacza, że konfiguracja sieci VPN została połączona.

„disconnected”
Oznacza, że konfiguracja sieci VPN została rozłączona.

„error”
Wskazuje, że w połączeniu VPN wystąpił błąd, np. przekroczenie limitu czasu. Opis błędu jest podawany jako argument błędu w funkcji onPlatformMessage.

„linkDown”
Oznacza, że domyślne fizyczne połączenie sieciowe jest nieaktywne.

„linkUp”
Oznacza, że domyślne fizyczne połączenie sieciowe zostało przywrócone.

„linkChanged”
Wskazuje, że domyślne połączenie z siecią fizyczną zostało zmienione, np. z Wi-Fi na sieć komórkową.

„suspend”
Oznacza, że system operacyjny przygotowuje się do wstrzymania, więc sieć VPN powinna przerwać połączenie. Nie ma gwarancji, że rozszerzenie otrzyma to zdarzenie przed zawieszeniem.

„resume”
Oznacza, że system operacyjny został wznowiony, a użytkownik ponownie się zalogował, więc sieć VPN powinna spróbować ponownie się połączyć.

UIEvent

Wyliczenie jest używane przez platformę do wskazywania zdarzenia, które wywołało onUIEvent.

Typ wyliczeniowy

„showAddDialog”
Wysyła do klienta VPN prośbę o wyświetlenie użytkownikowi okna dialogowego dodawania konfiguracji.

„showConfigureDialog”
Wysyła do klienta VPN żądanie wyświetlenia użytkownikowi okna dialogowego ustawień konfiguracji.

VpnConnectionState

Wyliczenie jest używane przez klienta VPN do informowania platformy o jego bieżącym stanie. Pomaga to dostarczać użytkownikowi przydatne wiadomości.

Typ wyliczeniowy

„connected”
Określa, że połączenie VPN zostało nawiązane.

„failure”
Określa, że połączenie VPN nie powiodło się.

Metody

createConfig()

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

Tworzy nową konfigurację VPN, która jest zachowywana w wielu sesjach logowania użytkownika.

Parametry

  • nazwa

    tekst

    Nazwa konfiguracji sieci VPN.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (id: string) => void

    • id

      tekst

      Unikalny identyfikator utworzonej konfiguracji lub undefined w przypadku niepowodzenia.

Zwroty

  • Promise<string>

    Chrome 96 lub nowsza

    Zwraca obiekt Promise, który jest rozwiązywany po utworzeniu konfiguracji lub odrzucany, jeśli wystąpi błąd.

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

destroyConfig()

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

Usuwa konfigurację sieci VPN utworzoną przez rozszerzenie.

Parametry

  • id

    tekst

    Identyfikator konfiguracji sieci VPN do usunięcia.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obiekt Promise, który jest rozwiązywany po zniszczeniu konfiguracji lub odrzucany, jeśli wystąpi błąd.

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

notifyConnectionStateChanged()

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

Informuje platformę o stanie sesji VPN. Ta operacja zakończy się powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • Stan sesji VPN klienta VPN.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obiekt Promise, który jest spełniany po zakończeniu powiadomienia lub odrzucany, jeśli wystąpi błąd.

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

sendPacket()

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

Wysyła pakiet IP przez tunel utworzony na potrzeby sesji VPN. Ta operacja zakończy się powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • dane

    ArrayBuffer

    Pakiet IP, który ma zostać wysłany na platformę.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obiekt Promise, który jest rozwiązywany po wysłaniu pakietu lub odrzucany w przypadku wystąpienia błędu.

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setParameters()

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

Ustawia parametry sesji VPN. Tę funkcję należy wywołać natychmiast po otrzymaniu z platformy wartości "connected". Ta operacja zakończy się powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • parametry

    Parametry sesji VPN.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obiekt Promise, który jest rozwiązywany po ustawieniu parametrów lub odrzucany w przypadku wystąpienia błędu.

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onConfigCreated

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

Wywoływane, gdy platforma tworzy konfigurację rozszerzenia.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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

    • id

      tekst

    • nazwa

      tekst

    • dane

      obiekt

onConfigRemoved

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

Wywoływane, gdy konfiguracja utworzona przez rozszerzenie zostanie usunięta przez platformę.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (id: string) => void

    • id

      tekst

onPacketReceived

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

Wywoływane, gdy pakiet IP jest odbierany przez tunel w sesji VPN należącej do rozszerzenia.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (data: ArrayBuffer) => void

    • dane

      ArrayBuffer

onPlatformMessage

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

Wywoływane, gdy platforma wysyła wiadomość dotyczącą konfiguracji sieci VPN należącej do rozszerzenia.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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

onUIEvent

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

Wywoływane, gdy w rozszerzeniu wystąpi zdarzenie interfejsu. Zdarzenia interfejsu to sygnały z platformy, które informują aplikację, że użytkownikowi należy wyświetlić okno interfejsu.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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

    • zdarzenie
    • id

      ciąg znaków opcjonalny