Opis
Użyj interfejsu chrome.vpnProvider API, aby wdrożyć klienta VPN.
Uprawnienia
vpnProviderDostępność
Pojęcia i zastosowanie
Typowe zastosowania parametru browser.vpnProvider:
Twórz konfiguracje sieci VPN, wywołując funkcję
createConfig(). Konfiguracja VPN to trwały wpis wyświetlany użytkownikowi w 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,onPacketReceivedionConfigRemoved.Gdy użytkownik połączy się z konfiguracją sieci VPN, otrzyma kod
onPlatformMessagez komunikatem"connected". Okres między wiadomościami"connected"i"disconnected"nazywany jest „sesją VPN”. W tym okresie 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, wywołując
setParameters().Powiadom o stanie połączenia jako
"connected", wywołującnotifyConnectionStateChanged().Jeśli poprzednie kroki zostaną wykonane bez błędów, zostanie utworzony wirtualny tunel do stosu sieciowego ChromeOS. Pakiety IP można wysyłać przez tunel, wywołując funkcję
sendPacket(), a wszystkie pakiety pochodzące z urządzenia z ChromeOS będą odbierane za pomocą procedury obsługi zdarzeńonPacketReceived.Gdy użytkownik rozłączy się z konfiguracją VPN, zostanie wywołane zdarzenie
onPlatformMessagez komunikatem"disconnected".Jeśli konfiguracja sieci VPN nie jest już potrzebna, można ją usunąć, wywołując polecenie
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 pomijania ruchu do i z serwera VPN. Gdy 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ą usuwane, ale nie wiadomo, który z nich zostanie usunięty.
-
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. Gdy 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ą usuwane, ale nie wiadomo, który z nich zostanie usunięty.
-
mtu
ciąg znaków opcjonalny
Ustawienie MTU dla interfejsu VPN. (domyślnie: 1500 bajtów)
-
połączyć ponownie,
ciąg znaków opcjonalny
Chrome 51 lub nowszaCzy rozszerzenie VPN implementuje automatyczne ponowne łączenie.
Jeśli wartość jest prawdziwa, do sygnalizowania odpowiednich zdarzeń będą używane komunikaty platform
linkDown,linkUp,linkChanged,suspendiresume. 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. Instrukcji try/catch można użyć do warunkowego włączania funkcji na podstawie 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”
Wskazuje, że domyślne fizyczne połączenie sieciowe zostało przywrócone.
„linkChanged”
Wskazuje, że domyślne fizyczne połączenie sieciowe 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ć 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()
chrome.vpnProvider.createConfig(
name: string,
): Promise<string>
Tworzy nową konfigurację VPN, która jest zachowywana w wielu sesjach logowania użytkownika.
Parametry
-
nazwa
tekst
Nazwa konfiguracji sieci VPN.
Zwroty
-
Promise<string>
Chrome 96 lub nowszaZwraca obiekt Promise, który jest rozwiązywany po utworzeniu konfiguracji lub odrzucany w przypadku wystąpienia błędu.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
): Promise<void>
Usuwa konfigurację sieci VPN utworzoną przez rozszerzenie.
Parametry
-
id
tekst
Identyfikator konfiguracji sieci VPN do usunięcia.
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obiekt Promise, który jest rozwiązywany, gdy konfiguracja zostanie zniszczona, lub odrzucany, jeśli wystąpi błąd.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
): Promise<void>
Informuje platformę o stanie sesji VPN. Ta operacja powiedzie się tylko wtedy, gdy sesja VPN należy do rozszerzenia.
Parametry
-
stan
Stan sesji VPN klienta VPN.
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obiekt Promise, który jest spełniany po zakończeniu powiadomienia lub odrzucany w przypadku wystąpienia błędu.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
): Promise<void>
Wysyła pakiet IP przez tunel utworzony na potrzeby sesji VPN. Ta operacja powiedzie się tylko wtedy, gdy sesja VPN należy do rozszerzenia.
Parametry
-
dane
ArrayBuffer
Pakiet IP, który ma zostać wysłany na platformę.
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obiekt Promise, który jest rozwiązywany po wysłaniu pakietu lub odrzucany w przypadku wystąpienia błędu.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
): Promise<void>
Ustawia parametry sesji VPN. Tę funkcję należy wywołać natychmiast po otrzymaniu z platformy wartości "connected". Ta operacja powiedzie się tylko wtedy, gdy sesja VPN należy do rozszerzenia.
Parametry
-
parametry
Parametry sesji VPN.
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obiekt Promise, który jest rozwiązywany po ustawieniu parametrów lub odrzucany, jeśli wystąpi błąd.
Wydarzenia
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Wywoływane, gdy platforma tworzy konfigurację rozszerzenia.
Parametry
-
callback
funkcja
Parametr
callbackwyglą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 platforma usunie konfigurację utworzoną przez rozszerzenie.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string) => void
-
id
tekst
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Wywoływane, gdy przez tunel zostanie odebrany pakiet IP dla sesji VPN należącej do rozszerzenia.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(data: ArrayBuffer) => void
-
dane
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Wywoływane, gdy platforma wyśle wiadomość dotyczącą konfiguracji sieci VPN należącej do rozszerzenia.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, message: PlatformMessage, error: string) => void
-
id
tekst
-
wiadomość
-
błąd
tekst
-
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 dialogowe interfejsu.