Opis
Interfejs chrome.types
API zawiera deklaracje typów dla Chrome.
Ustawienia przeglądarki Chrome
Typ ChromeSetting
udostępnia wspólny zestaw funkcji (get()
, set()
i clear()
), a także wydawcę zdarzeń (onChange
) dla ustawień przeglądarki Chrome. W przykładach ustawień serwera proxy pokazujemy, jak należy używać tych funkcji.
Zakres i cykl życia
Chrome rozróżnia 3 zakresy ustawień przeglądarki:
regular
- Ustawienia skonfigurowane w zakresie
regular
mają zastosowanie do zwykłych okien przeglądarki i są dziedziczone przez okna incognito, jeśli nie zostaną zastąpione. Te ustawienia są zapisywane na dysku i pozostają aktywne, dopóki nie zostaną wyczyszczone przez rozszerzenie zarządzające lub dopóki rozszerzenie zarządzające nie zostanie wyłączone lub odinstalowane. incognito_persistent
- Ustawienia skonfigurowane w
incognito_persistent
zakresie mają zastosowanie tylko do okien incognito. W takim przypadku zastępują one ustawieniaregular
. Te ustawienia są zapisywane na dysku i pozostają w mocy, dopóki nie zostaną wyczyszczone przez rozszerzenie zarządzające lub dopóki rozszerzenie zarządzające nie zostanie wyłączone lub odinstalowane. incognito_session_only
- Ustawienia skonfigurowane w
incognito_session_only
zakresie mają zastosowanie tylko do okien incognito. W przypadku tych ustawień zastępują one ustawieniaregular
iincognito_persistent
. Te ustawienia nie są zapisywane na dysku i są usuwane po zamknięciu ostatniego okna incognito. Można je ustawić tylko wtedy, gdy otwarte jest co najmniej 1 okno incognito.
Pierwszeństwo
Chrome zarządza ustawieniami na różnych warstwach. Poniżej znajdziesz listę warstw, które mogą wpływać na ustawienia, w kolejności rosnącego priorytetu.
- Ustawienia systemowe udostępniane przez system operacyjny
- Parametry wiersza poleceń
- Ustawienia udostępniane przez rozszerzenia
- Zasady
Jak wynika z nazwy, zasady mogą zastępować wszelkie zmiany określone przez rozszerzenie. Za pomocą funkcji get()
możesz sprawdzić, czy rozszerzenie może udostępnić ustawienie lub czy to ustawienie zostanie zastąpione.
Jak wspomnieliśmy wcześniej, Chrome umożliwia stosowanie różnych ustawień w przypadku zwykłych okien i okien incognito. Poniższy przykład ilustruje to zachowanie. Załóżmy, że żadna zasada nie zastępuje ustawień i że rozszerzenie może ustawiać ustawienia dla zwykłych okien (R) i okien incognito (I).
- Jeśli ustawiona jest tylko wartość (R), te ustawienia obowiązują zarówno w przypadku okien zwykłych, jak i incognito.
- Jeśli ustawiona jest tylko wartość (I), te ustawienia obowiązują tylko w oknach incognito. Zwykłe okna korzystają z ustawień określonych przez niższe warstwy (opcje wiersza poleceń i ustawienia systemowe).
- Jeśli ustawione są zarówno (R), jak i (I), odpowiednie ustawienia są używane w przypadku zwykłych i prywatnych okien.
Jeśli co najmniej 2 rozszerzenia chcą ustawić to samo ustawienie na różne wartości, rozszerzenie zainstalowane najpóźniej ma pierwszeństwo przed innymi rozszerzeniami. Jeśli ostatnio zainstalowane rozszerzenie ustawia tylko (I), ustawienia zwykłych okien mogą być definiowane przez wcześniej zainstalowane rozszerzenia.
Efektywna wartość ustawienia to wartość wynikająca z uwzględnienia reguł pierwszeństwa. Jest używany przez Chrome.
Typy
ChromeSetting
Interfejs umożliwiający dostęp do ustawień przeglądarki Chrome. Przykład znajdziesz w sekcji accessibilityFeatures
.
Właściwości
-
onChange
Event<functionvoidvoid>
Wywoływane po zmianie ustawienia.
Funkcja
onChange.addListener
wygląda tak:(callback: function) => {...}
-
callback
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
incognitoSpecific
wartość logiczna opcjonalna
Czy zmieniona wartość jest specyficzna dla sesji incognito. Ta właściwość będzie występować tylko, jeśli użytkownik włączył rozszerzenie w trybie incognito.
-
levelOfControl
Poziom kontroli nad ustawieniem.
-
wartość
T
Wartość ustawienia po zmianie.
-
-
-
-
wyczyść
pusty
Wyczyść ustawienie, przywracając dowolną wartość domyślną.
Funkcja
clear
wygląda tak:(details: object) => {...}
-
szczegóły
obiekt
Które ustawienie wyczyścić.
-
zakres
ChromeSettingScope opcjonalny
Miejsce, w którym można wyczyścić ustawienie (domyślnie: regularne).
-
-
returns
Promise<void>
Chrome w wersji 96 lub nowszej
-
-
get
pusty
Pobiera wartość ustawienia.
Funkcja
get
wygląda tak:(details: object) => {...}
-
szczegóły
obiekt
Które ustawienie warto rozważyć.
-
incognito
wartość logiczna opcjonalna
Określa, czy zwrócić wartość, która ma zastosowanie do sesji incognito (domyślnie false).
-
-
returns
Promise<object>
Chrome w wersji 96 lub nowszej
-
-
zestaw
pusty
Ustawia wartość ustawienia.
Funkcja
set
wygląda tak:(details: object) => {...}
-
szczegóły
obiekt
które ustawienie chcesz zmienić;
-
zakres
ChromeSettingScope opcjonalny
Miejsce, w którym można ustawić to ustawienie (domyślnie: regular).
-
wartość
T
Wartość ustawienia. Pamiętaj, że każde ustawienie ma określony typ wartości, który jest opisany razem z ustawieniem. Rozszerzenie nie powinno ustawiać wartości innego typu.
-
-
returns
Promise<void>
Chrome w wersji 96 lub nowszej
-
ChromeSettingScope
Zakres ChromeSetting. Jedno z tej listy:
regular
: ustawienie dla zwykłego profilu (które jest dziedziczone przez profil incognito, jeśli nie zostanie zastąpione w innym miejscu);regular\_only
: ustawienie tylko dla zwykłego profilu (nie jest dziedziczone przez profil incognito);incognito\_persistent
: ustawienie profilu incognito, które jest zachowywane po ponownym uruchomieniu przeglądarki (zastępuje zwykłe ustawienia);incognito\_session\_only
: ustawienie profilu incognito, które można skonfigurować tylko podczas sesji incognito i które jest usuwane po zakończeniu sesji incognito (zastępuje ustawienia regular i incognito_persistent).
Typ wyliczeniowy
„regular”
"regular_only"
„incognito_persistent”
"incognito_session_only"
LevelOfControl
Jedno z tej listy:
not\_controllable
: nie można nim sterować za pomocą żadnego rozszerzenia.controlled\_by\_other\_extensions
: kontrolowane przez rozszerzenia o wyższym priorytecie.controllable\_by\_this\_extension
: może być kontrolowana przez to rozszerzeniecontrolled\_by\_this\_extension
: kontrolowane przez to rozszerzenie
Typ wyliczeniowy
"not_controllable"
"controlled_by_other_extensions"
"controllable_by_this_extension"
"controlled_by_this_extension"