Opis
Użyj interfejsu chrome.vpnProvider API, aby wdrożyć klienta VPN.
Uprawnienia
vpnProviderDostępność
Wykorzystanie
Typowe użycie elementu vpnProvider wygląda tak:
- Twórz konfiguracje 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ę VPN z listy i połączyć się z nią lub rozłączyć się z nią.
- Dodaj detektory do zdarzeń - onPlatformMessage,- onPacketReceivedi- onConfigRemoved.
- Gdy użytkownik połączy się z konfiguracją sieci VPN, otrzyma kod - onPlatformMessagez komunikatem- "connected". Okres między wiadomościami- "connected"i- "disconnected"nazywamy 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 za pomocą - setParameters.
- Powiadom o stanie połączenia jako - "connected"za pomocą- notifyConnectionStateChanged.
- Jeśli powyższe kroki 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 rozłączy się z konfiguracją sieci VPN, zostanie wywołane zdarzenie - onPlatformMessagez 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
- 
    adresciąg znaków Adres IP interfejsu VPN w notacji CIDR. Obecnie obsługiwany jest tylko tryb IPv4. 
- 
    broadcastAddressstring opcjonalny Adres rozgłoszeniowy interfejsu VPN. (domyślnie: wywnioskowany na podstawie adresu IP i maski) 
- 
    dnsServersstring[] Lista adresów IP serwerów DNS. 
- 
    domainSearchstring[] opcjonalne Lista domen wyszukiwania. (domyślnie: brak domeny wyszukiwania) 
- 
    exclusionListstring[] Wyklucz z tunelu ruch sieciowy do listy bloków adresów IP w notacji CIDR. 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. 
- 
    inclusionListstring[] Dodaj ruch sieciowy do listy 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. 
- 
    mtustring opcjonalny Ustawienie MTU dla interfejsu VPN. (domyślnie: 1500 bajtów) 
- 
    połączyć ponownie,string opcjonalny Chrome 51 lub nowszaOkreś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,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: false)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 niedostępne.
„linkUp” 
 Wskazuje, że domyślne fizyczne połączenie sieciowe zostało przywrócone.
„linkChanged” 
 Wskazuje, że domyślne połączenie z siecią fizyczną uległo zmianie, 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. Dzięki temu możesz przekazywać użytkownikom istotne 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,
callback?: function,
): Promise<string>
Tworzy nową konfigurację VPN, która jest zachowywana w wielu sesjach logowania użytkownika.
Parametry
- 
    nazwaciąg znaków Nazwa konfiguracji sieci VPN. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(id: string) => void - 
    idciąg znaków Unikalny identyfikator utworzonej konfiguracji lub undefinedw przypadku niepowodzenia.
 
- 
    
Zwroty
- 
            Promise<string> Chrome w wersji 96 lub nowszejObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Usuwa konfigurację sieci VPN utworzoną przez rozszerzenie.
Parametry
- 
    idciąg znaków Identyfikator konfiguracji sieci VPN do usunięcia. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
notifyConnectionStateChanged()
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
- 
    stanStan sesji VPN klienta VPN. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
sendPacket()
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
- 
    daneArrayBuffer Pakiet IP, który ma zostać wysłany na platformę. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
setParameters()
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
- 
    parametryParametry sesji VPN. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice 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
- 
    callbackfunkcja Parametr callbackwygląda tak:(id: string, name: string, data: object) => void - 
    idciąg znaków 
- 
    nazwaciąg znaków 
- 
    daneobiekt 
 
- 
    
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Wywoływane, gdy platforma usunie konfigurację utworzoną przez rozszerzenie.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(id: string) => void - 
    idciąg znaków 
 
- 
    
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Wywoływane, gdy pakiet IP jest odbierany przez tunel w sesji VPN należącej do rozszerzenia.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(data: ArrayBuffer) => void - 
    daneArrayBuffer 
 
- 
    
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Wywoływane, gdy platforma wyśle wiadomość dotyczącą konfiguracji sieci VPN należącej do rozszerzenia.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(id: string, message: PlatformMessage, error: string) => void - 
    idciąg znaków 
- 
    wiadomość
- 
    błądciąg znaków 
 
- 
    
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.