chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

Opis

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

Uprawnienia

vpnProvider

Dostępność

Chrome 43 lub nowsza wersja Tylko w systemie ChromeOS

Wykorzystanie

Typowe użycie vpnProvider wygląda tak:

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

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

  • Gdy użytkownik połączy się z konfiguracją VPN, onPlatformMessage otrzyma wiadomość "connected". Okres między komunikatami "connected" i "disconnected" nazywamy sesją VPN. W tym okresie rozszerzenie, które otrzymało wiadomość, jest uznawane za właściciela 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 kroki zostaną wykonane bez błędów, zostanie utworzony tunel wirtualny do stosu sieciowego ChromeOS. 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 rozłączy się z konfiguracją sieci 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 standard 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[] opcjonalne

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

  • exclusionList

    string[]

    Wyklucz z tunelu ruch w sieci do listy bloków IP w notacji CIDR. Można go używać do omijania ruchu do i z serwera VPN. Jeśli do miejsca docelowego pasuje wiele reguł, stosowana jest 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 wyeliminowany, jest niezdefiniowany.

  • inclusionList

    string[]

    Uwzględnij ruch w sieci do listy bloków adresów IP w notacji CIDR do tunelu. Tego parametru można użyć do skonfigurowania 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ł, stosowana jest 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 wyeliminowany, jest niezdefiniowany.

  • mtu

    ciąg znaków opcjonalny

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

  • ponowne połączenie

    ciąg znaków opcjonalny

    Chrome 51 lub nowsza wersja

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

    Jeśli ma wartość prawda, do sygnalizowania odpowiednich zdarzeń będą używane komunikaty platformy linkDown, linkUp, linkChanged, suspend i resume. Jeśli zasada ma wartość Fałsz, system wymusi rozłączenie sieci VPN, gdy zmieni się topologia sieci, a użytkownik będzie musiał ponownie połączyć się ręcznie. (domyślnie: false)

    Ta właściwość jest nowa w Chrome 51. We wcześniejszych wersjach wygeneruje wyjątek. Możesz użyć try/catch, aby warunkowo włączyć tę funkcję w zależności od obsługi przeglądarki.

PlatformMessage

Typ wyliczeniowy jest używany przez platformę do powiadamiania klienta o stanie sesji VPN.

Typ wyliczeniowy

"connected"
Wskazuje, że konfiguracja sieci VPN została połączona.

"disconnected"
Wskazuje, że konfiguracja sieci VPN została rozłączona.

"error"
Wskazuje, że wystąpił błąd połączenia VPN, na przykład przekroczenie limitu czasu. Opis błędu jest podany jako argument błędu w onPlatformMessage.

"linkDown"
Wskazuje, że domyślne fizyczne połączenie sieciowe jest wyłączone.

"linkUp"
Wskazuje, że domyślne połączenie sieciowe zostało przywrócone.

"linkChanged"
Wskazuje, że domyślne fizyczne połączenie sieciowe uległo zmianie, np. Wi-Fi -> sieć komórkowa.

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

"resume"
Wskazuje, że system operacyjny został wznowiony, a użytkownik zalogował się ponownie, więc sieć VPN powinna spróbować ponownie nawiązać połączenie.

UIEvent

Platforma używa typu wyliczeniowego, aby wskazać zdarzenie, które wywołało onUIEvent.

Typ wyliczeniowy

"showAddDialog"
Żąda, aby klient VPN wyświetlił użytkownikowi okno dodawania konfiguracji.

"showConfigureDialog"
Żąda, aby klient VPN wyświetlił użytkownikowi okno ustawień konfiguracji.

VpnConnectionState

Typ wyliczeniowy jest używany przez klienta VPN do informowania platformy o jego bieżącym stanie. Dzięki temu użytkownik otrzymuje przydatne komunikaty.

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ę sieci VPN, która jest zachowywana w wielu sesjach logowania użytkownika.

Parametry

  • nazwa

    tekst

    Nazwa konfiguracji sieci VPN.

  • callback

    function opcjonalne

    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 wersja

    Zwraca obiekt Promise, który jest rozwiązywany po utworzeniu konfiguracji lub odrzucany w przypadku błędu.

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

    Zwraca obiekt Promise, który jest rozwiązywany, gdy konfiguracja zostanie zniszczona, lub odrzucany, jeśli wystąpi błąd.

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

notifyConnectionStateChanged()

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

Powiadamia platformę o stanie sesji VPN. Zakończy się to powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • Stan sesji VPN klienta VPN.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

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

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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. Zakończy się to powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • dane

    ArrayBuffer

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

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

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

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

setParameters()

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

Ustawia parametry sesji VPN. Należy ją wywołać natychmiast po otrzymaniu "connected" z platformy. Zakończy się to powodzeniem tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • parametry

    Parametry sesji VPN.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

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

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

Wydarzenia

onConfigCreated

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

Uruchamiane, 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,
)

Uruchamiane, 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,
)

Uruchamiane, gdy pakiet IP zostanie odebrany przez tunel 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,
)

Uruchamiane, gdy z platformy zostanie odebrana wiadomość dotycząca 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,
)

Uruchamiane, gdy wystąpi zdarzenie interfejsu rozszerzenia. Zdarzenia interfejsu to sygnały z platformy, które wskazują aplikacji, ż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