chrome.types

Opis

Interfejs API chrome.types 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. Przykłady ustawień serwera proxy pokazują przeznaczenie tych funkcji.

Zakres i cykl życia

Chrome rozróżnia 3 zakresy ustawień przeglądarki:

regular
Ustawienia ustawione w zakresie regular dotyczą zwykłych okien przeglądarki i są dziedziczone przez okna incognito, jeśli nie zostaną zastąpione. Te ustawienia są przechowywane na dysku i pozostają nienaruszone do czasu ich wyczyszczenia przez rozszerzenie zarządzające lub wyłączenia lub odinstalowania rozszerzenia kontrolującego.
incognito_persistent
Ustawienia skonfigurowane w zakresie incognito_persistent dotyczą tylko okien incognito. W ich przypadku zastępują one ustawienia regular. Te ustawienia są przechowywane na dysku i pozostają bez zmian, dopóki rozszerzenie je wyczyści lub nie zostanie wyłączone bądź odinstalowane.
incognito_session_only
Ustawienia skonfigurowane w zakresie incognito_session_only dotyczą tylko okien incognito. Zastępują one ustawienia regular i incognito_persistent. Te ustawienia nie są zapisywane na dysku i są czyszczone po zamknięciu ostatniego okna incognito. Można je skonfigurować tylko wtedy, gdy otwarte jest co najmniej jedno okno incognito.

Pierwszeństwo

Chrome zarządza ustawieniami na różnych warstwach. Na liście poniżej opisujemy warstwy, które mogą wpływać na obowiązujące ustawienia.

  1. Ustawienia systemu udostępnione przez system operacyjny
  2. Parametry wiersza poleceń
  3. Ustawienia podane przez rozszerzenia
  4. Zasady

Zgodnie z listą zasady mogą zastąpić wszystkie zmiany wprowadzone w rozszerzeniu. Przy użyciu funkcji get() możesz określić, czy dane ustawienie można skonfigurować w rozszerzeniu lub czy zostanie ono zastąpione.

Jak już wspomnieliśmy, Chrome umożliwia korzystanie z różnych ustawień w zwykłych oknach i oknach incognito. Przykład poniżej pokazuje, jak to działa. Załóżmy, że żadna zasada nie zastępuje ustawień, a rozszerzenie może konfigurować ustawienia zwykłych okien (R) i okien incognito (I).

  • Jeśli ustawisz tylko wartość (R), te ustawienia będą działać zarówno w przypadku okien zwykłych, jak i incognito.
  • Jeśli wybierzesz tylko (I), te ustawienia będą działać tylko w przypadku okien incognito. Zwykłe okna korzystają z ustawień określonych przez niższe warstwy (opcje wiersza poleceń i ustawienia systemu).
  • Jeśli skonfigurowane są zarówno okna (R), jak i (I), w przypadku okien zwykłych i incognito używane są odpowiednie ustawienia.

Jeśli co najmniej 2 rozszerzenia chcą ustawić to samo ustawienie na różne wartości, rozszerzenie zainstalowane jako ostatnie ma pierwszeństwo przed innymi rozszerzeniami. Jeśli zestaw ostatnio zainstalowanych rozszerzeń to (I), ustawienia zwykłych okien mogą być definiowane przez zainstalowane wcześniej rozszerzenia.

Wartość obowiązkowa ustawienia wynika z zastosowania reguł pierwszeństwa. Jest używany przez Chrome.

Typy

ChromeSetting

Interfejs umożliwiający dostęp do ustawień przeglądarki Chrome. Przykład znajdziesz tutaj: accessibilityFeatures.

Właściwości

  • onChange

    Zdarzenie<functionvoidvoid>

    Uruchamiane po zmianie ustawienia.

    Funkcja onChange.addListener wygląda tak:

    (callback: function)=> {...}

    • wywołanie zwrotne

      funkcja

      Parametr callback wygląda tak:

      (details: object)=>void

      • szczegóły

        obiekt

        • incognitoSpecific

          wartość logiczna opcjonalna

          Określa, czy zmieniona wartość dotyczy sesji incognito. Ta właściwość będzie widoczna tylko wtedy, gdy użytkownik włączył rozszerzenie w trybie incognito.

        • levelOfControl

          Poziom kontroli nad ustawieniem.

        • value

          T

          Wartość ustawienia po zmianie.

  • wyczyść

    void

    Obietnica

    Czyści ustawienie i przywraca wartość domyślną.

    Funkcja clear wygląda tak:

    (details: object,callback?: function)=> {...}

    • szczegóły

      obiekt

      Które ustawienie usunąć.

      • zakres

        Opcjonalnie ChromeSettingScope

        Miejsce usunięcia ustawienia (domyślnie: zwykłe).

    • wywołanie zwrotne

      funkcja opcjonalnie

      Parametr callback wygląda tak:

      ()=>void

    • returns

      Promise<void>

      Chrome 96 i nowsze wersje

      Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

  • get

    void

    Obietnica

    Pobiera wartość ustawienia.

    Funkcja get wygląda tak:

    (details: object,callback?: function)=> {...}

    • szczegóły

      obiekt

      Ustawienie, które należy wziąć pod uwagę.

      • incognito

        wartość logiczna opcjonalna

        Określa, czy ma być zwracana wartość dotycząca sesji incognito (domyślnie fałsz).

    • wywołanie zwrotne

      funkcja opcjonalnie

      Parametr callback wygląda tak:

      (details: object)=>void

      • szczegóły

        obiekt

        Szczegóły aktualnej wartości.

        • incognitoSpecific

          wartość logiczna opcjonalna

          Określa, czy wartość efektywna odnosi się tylko do sesji incognito. Ta właściwość będzie dostępna tylko wtedy, gdy właściwość incognito w parametrze details parametru get() ma wartość prawda.

        • levelOfControl

          Poziom kontroli nad ustawieniem.

        • value

          T

          Wartość ustawienia.

    • returns

      Promise<object>

      Chrome 96 i nowsze wersje

      Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

  • Ustaw

    void

    Obietnica

    Ustawia wartość ustawienia.

    Funkcja set wygląda tak:

    (details: object,callback?: function)=> {...}

    • szczegóły

      obiekt

      Ustawienie, które należy zmienić.

      • zakres

        Opcjonalnie ChromeSettingScope

        Gdzie ustawić ustawienie (domyślnie: zwykłe).

      • value

        T

        Wartość ustawienia. Pamiętaj, że każde ustawienie ma określony typ wartości, który jest opisany razem z ustawieniem. Rozszerzenie nie może mieć wartości innego typu.

    • wywołanie zwrotne

      funkcja opcjonalnie

      Parametr callback wygląda tak:

      ()=>void

    • returns

      Promise<void>

      Chrome 96 i nowsze wersje

      Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

ChromeSettingScope

Chrome 44 i nowsze wersje

Zakres ChromeSetting. Jedno z tej listy:

  • regular: ustawienie dla zwykłego profilu (które jest dziedziczone przez profil incognito, jeśli nie zostało 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óry nie zostanie przywrócony po ponownym uruchomieniu przeglądarki (zastępuje ustawienie zwykłych ustawień),
  • incognito\_session\_only: ustawienie profilu incognito, które można ustawić tylko podczas sesji incognito, i jest usuwane po jej zakończeniu (zastępuje ustawienia zwykłe i incognito_trwałe).

Enum

"regular_only"

"incognito_persistent"

"incognito_session_only"

LevelOfControl

Chrome 44 i nowsze wersje

Jedno z tej listy:

  • not\_controllable: nie można nim sterować przez żadne rozszerzenie
  • controlled\_by\_other\_extensions: kontrolowane przez rozszerzenia o wyższym priorytecie,
  • controllable\_by\_this\_extension: można nimi sterować za pomocą tego rozszerzenia
  • controlled\_by\_this\_extension: kontrolowane przez to rozszerzenie

Enum

"not_controllable"

"controlled_by_other_extensions"

"controllable_by_this_extension"

"controlled_by_this_extension"