chrome.contentSettings

Opis

Interfejs API chrome.contentSettings umożliwia zmianę ustawień, które określają, czy strony mogą korzystać z takich funkcji jak pliki cookie, JavaScript i wtyczki. Ogólnie rzecz biorąc, ustawienia treści umożliwiają dostosowanie działania Chrome w poszczególnych witrynach, a nie globalnie.

Uprawnienia

contentSettings

Aby korzystać z interfejsu API, musisz zadeklarować uprawnienia "contentSettings" w pliku manifestu rozszerzenia. Przykład:

{
  "name": "My extension",
  ...
  "permissions": [
    "contentSettings"
  ],
  ...
}

Pojęcia i zastosowanie

Wzory ustawień treści

Przy użyciu wzorców możesz określać witryny, na które mają wpływ poszczególne ustawienia treści. Na przykład https://*.youtube.com/* określa youtube.com i wszystkie jej subdomeny. Składnia wzorców ustawień treści jest taka sama jak w przypadku wzorców dopasowania, z kilkoma różnicami:

  • W przypadku adresów URL http, httpsftp ścieżka musi być symbolem wieloznacznym (/*). W przypadku adresów URL file ścieżka musi być całkowicie określona i nie może zawierać symboli wieloznacznych.
  • W odróżnieniu od wzorców dopasowania wzorce ustawień treści mogą określać numer portu. Jeśli jest określony numer portu, wzorzec pasuje tylko do witryn z tym portem. Jeśli nie podasz numeru portu, wzór pasuje do wszystkich portów.

Wzór priorytetów

Jeśli do danej witryny ma zastosowanie więcej niż 1 reguła ustawień treści, pierwszeństwo ma reguła z bardziej szczegółowym wzorcem.

Na przykład te wzorce są uporządkowane według pierwszeństwa:

  1. https://www.example.com/*
  2. https://*.example.com/* (zgodny z example.com i wszystkimi subdomenami)
  3. <all_urls> (dopasowanie do każdego adresu URL)

Na trafność wzorca wpływają 3 rodzaje symboli wieloznacznych:

  • Symbole wieloznaczne w porcie (np. https://www.example.com:*/*)
  • Symbole wieloznaczne w schemacie (np. *://www.example.com:123/*)
  • Symbole wieloznaczne w nazwie hosta (np. https://*.example.com:123/*).

Jeśli wzór jest bardziej szczegółowy niż inny wzór w jednym miejscu, ale mniej szczegółowy w innym, różne części są sprawdzane w tej kolejności: nazwa hosta, schemat, port. Na przykład te wzorce są uporządkowane według pierwszeństwa:

  1. https://www.example.com:*/*Określa nazwę hosta i schemat.
  2. *:/www.example.com:123/*Nie jest to tak wysokie ryzyko, ponieważ chociaż podano nazwę hosta, nie podano schematu.
  3. https://*.example.com:123/*Niższa wartość, ponieważ chociaż określa port i schemat, ma w nazwie hosta symbol wieloznaczny.

Wzory podstawowe i dodatkowe

Adres URL brany pod uwagę przy podejmowaniu decyzji o tym, które ustawienie treści zastosować, zależy od typu treści. Na przykład w przypadku contentSettings.notifications ustawienia są określane na podstawie adresu URL wyświetlanego w pasku wielofunkcyjnym. Ten adres URL nazywa się „podstawowym”.

Niektóre typy treści mogą uwzględniać dodatkowe adresy URL. Na przykład to, czy witryna może ustawić contentSettings.cookies, jest określane na podstawie adresu URL żądania HTTP (w tym przypadku jest to podstawowy adres URL) i adresu URL wyświetlanego w omniboksie (nazywanym „dodatkowym” adresem URL).

Jeśli wiele reguł ma wzorce podstawowe i dodatkowe, pierwszeństwo ma reguła z bardziej szczegółowym wzorcem podstawowym. Jeśli kilka reguł ma ten sam wzór główny, pierwszeństwo ma reguła z bardziej szczegółowym wzorem dodatkowym. Na przykład ta lista par wzorów głównych i dodatkowych jest uporządkowana według pierwszeństwa:

PierwszeństwoWzorzec głównyWzorzec dodatkowy
1https://www.moose.com/*,https://www.wombat.com/*
2https://www.moose.com/*,<all_urls>
3<all_urls>,https://www.wombat.com/*
4<all_urls>,<all_urls>

W przypadku ustawienia zawartości obrazów nie są obsługiwane wzory dodatkowe.

Identyfikatory zasobów

Identyfikatory zasobów umożliwiają określenie ustawień treści dla określonych podtypów typu treści. Obecnie jedynym typem treści, który obsługuje identyfikatory zasobów, jest contentSettings.plugins. Identyfikator zasobu identyfikuje konkretną wtyczkę. Podczas stosowania ustawień treści najpierw sprawdzane są ustawienia konkretnego wtyczka. Jeśli nie znaleziono ustawień konkretnej wtyczki, sprawdzane są ogólne ustawienia treści dotyczące wtyczek.

Jeśli na przykład reguła ustawienia treści ma identyfikator zasobu adobe-flash-player i wzór <all_urls>, ma pierwszeństwo przed regułą bez identyfikatora zasobu i wzorca https://www.example.com/*, nawet jeśli wzorzec jest bardziej szczegółowy.

Aby uzyskać listę identyfikatorów zasobów określonego typu treści, wywołaj metodę contentSettings.ContentSetting.getResourceIdentifiers(). Zwrócona lista może się zmieniać w zależności od zestawu zainstalowanych wtyczek na komputerze użytkownika, ale Chrome stara się zachować stabilność identyfikatorów podczas aktualizacji wtyczek.

Przykłady

Aby wypróbować ten interfejs API, zainstaluj przykład contentSettings API z repozytorium chrome-extension-samples.

Typy

AutoVerifyContentSetting

Chrome 113 lub nowszy

Typ wyliczeniowy

"block"

CameraContentSetting

Chrome 46 lub nowszy

Typ wyliczeniowy

"block"

ClipboardContentSetting

Chrome 121 lub nowszy

Typ wyliczeniowy

"block"

ContentSetting

Właściwości

  • wyczyść

    nieważne

    Obiecujemy

    Wyczyść wszystkie reguły ustawień treści skonfigurowane przez to rozszerzenie.

    Funkcja clear ma postać:

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

    • szczegóły

      Obiekt

      • zakres

        Zakres opcjonalnie

        Gdzie można wyczyścić ustawienie (domyślnie: zwykłe).

    • wywołanie zwrotne

      function opcjonalny

      Parametr callback ma postać:

      () => void

    • returns

      Obietnica<void>

      Chrome 96 i nowsze

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

  • get

    nieważne

    Obietnice

    Pobiera bieżące ustawienie treści dla danej pary adresów URL.

    Funkcja get ma postać:

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

    • szczegóły

      Obiekt

      • incognito

        Wartość logiczna opcjonalna

        Określa, czy należy sprawdzić ustawienia treści dla sesji w trybie incognito. (wartość domyślna to false)

      • primaryUrl

        ciąg znaków

        Podstawowy adres URL, dla którego należy pobrać ustawienie treści. Pamiętaj, że znaczenie adresu URL głównego zależy od typu treści.

      • resourceIdentifier

        Bardziej szczegółowy identyfikator typu treści, dla którego należy pobrać ustawienia.

      • secondaryUrl

        ciąg znaków opcjonalny

        Dodatkowy adres URL, dla którego należy pobrać ustawienie treści. Domyślnie jest to adres URL główny. Pamiętaj, że znaczenie adresu URL dodatkowego zależy od typu treści. Nie wszystkie typy treści używają adresów URL dodatkowych.

    • wywołanie zwrotne

      function opcjonalny

      Parametr callback wygląda tak:

      (details: object) => void

      • szczegóły

        Obiekt

        • ustawienie

          T

          Ustawienie treści. Możliwe wartości znajdziesz w opisie poszczególnych obiektów ContentSetting.

    • returns

      Obietkw<object>

      Chrome 96 lub nowszy

      Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

  • getResourceIdentifiers

    nieważne

    Obiecujemy

    Funkcja getResourceIdentifiers ma postać:

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

    • wywołanie zwrotne

      function opcjonalny

      Parametr callback ma postać:

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] opcjonalnie

        Lista identyfikatorów zasobów dla tego typu treści lub undefined, jeśli ten typ treści nie używa identyfikatorów zasobów.

    • returns

      Promise&lt;ResourceIdentifier[]&gt;

      Chrome 96+

      Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Obiet na obietnice zwracany jest z tym samym typem, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

  • zestaw

    nieważne

    Obietnice

    Stosuje nową regułę ustawień treści.

    Funkcja set ma postać:

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

    • szczegóły

      Obiekt

      • primaryPattern

        ciąg znaków

        Wzorzec głównego adresu URL. Szczegółowe informacje na temat formatu wzorca znajdziesz w artykule Wzorce ustawień treści.

      • resourceIdentifier

        Identyfikator zasobu dla typu treści.

      • zakres

        Zakres opcjonalny

        Gdzie ustawić ustawienie (domyślnie: regularne).

      • secondaryPattern

        ciąg znaków opcjonalny

        Wzorzec dodatkowego adresu URL. Domyślnie dopasowuje wszystkie adresy URL. Szczegółowe informacje o formacie wzorca znajdziesz w artykule Wzorce ustawień treści.

      • ustawienie

        każdy

        Ustawienie stosowane przez tę regułę. Możliwe wartości znajdziesz w opisie poszczególnych obiektów ContentSetting.

    • wywołanie zwrotne

      function opcjonalny

      Parametr callback ma postać:

      () => void

    • returns

      Obietnica<void>

      Chrome 96 i nowsze

      Obietnice są obsługiwane w pliku manifestu w wersji 3 i późniejszych, ale wywołania zwrotne są dostępne ze względu na zgodność wsteczną. Nie możesz używać obu w tym samym wywołaniu funkcji. Obiet na obietnice zwraca ten sam typ, który jest przekazywany do funkcji zwracającej wywołanie zwrotne.

CookiesContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

"session_only"

FullscreenContentSetting

Chrome 44 lub nowszy

Wartość

"allow"

ImagesContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

JavascriptContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

LocationContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

MicrophoneContentSetting

Chrome 46 lub nowszy

Typ wyliczeniowy

"block"

MouselockContentSetting

Chrome 44 lub nowszy

Wartość

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

NotificationsContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

PluginsContentSetting

Chrome 44 lub nowszy

Wartość

PopupsContentSetting

Chrome 44 lub nowszy

Typ wyliczeniowy

"block"

PpapiBrokerContentSetting

Chrome 44 lub nowszy

Wartość

ResourceIdentifier

Jedynym typem treści, który korzysta z identyfikatorów zasobów, jest contentSettings.plugins. Aby dowiedzieć się więcej, przeczytaj artykuł Identyfikatory zasobów.

Właściwości

  • opis

    ciąg znaków opcjonalny

    Zrozumiały dla człowieka opis zasobu.

  • id

    ciąg znaków

    Identyfikator zasobu danego typu treści.

Scope

Chrome 44 lub nowszy

Zakres ContentSetting. Jedna z tych wartości: regular: ustawienie zwykłego profilu (dziedziczone przez profil incognito, jeśli nie zostało zastąpione innym), incognito\_session\_only: ustawienie profilu incognito, które można ustawić tylko podczas sesji incognito i jest usuwane po zakończeniu sesji (zastępuje zwykłe ustawienia).

Typ wyliczeniowy

Właściwości

automaticDownloads

Określa, czy witryny mogą automatycznie pobierać wiele plików. allow: zezwalaj witrynom na automatyczne pobieranie wielu plików, block: nie zezwalaj witrynom na automatyczne pobieranie wielu plików, ask: pytaj, czy witryna chce automatycznie pobrać pliki po pierwszym pliku. Wartość domyślna to ask. Główny adres URL to adres URL ramki najwyższego poziomu. Dodatkowy adres URL nie jest używany.

autoVerify

Chrome 113 lub nowszy

Określa, czy witryny mogą korzystać z interfejsu Private State Tokens API. allow: Zezwalaj witrynom na korzystanie z interfejsu Private State Tokens API, block: Zablokuj witrynom korzystanie z interfejsu Private State Tokens API. Wartość domyślna to allow. Główny adres URL to adres URL ramki najwyższego poziomu. Dodatkowy adres URL nie jest używany. UWAGA: podczas wywoływania funkcji set() główny wzór musi być .

camera

Chrome 46 lub nowszy

Określa, czy zezwolić witrynom na dostęp do kamery. Jedna z tych opcji: allow: Zezwól stronom na dostęp do kamery, block: nie zezwalaj witrynom na dostęp do kamery, ask: pytaj, gdy strona chce uzyskać dostęp do kamery. Wartość domyślna to ask. Główny adres URL to adres URL dokumentu, który poprosił o dostęp do kamery. Dodatkowy adres URL nie jest używany. UWAGA: ustawienie „Zezwól” jest nieprawidłowe, jeśli oba wzorce są „'”.

clipboard

Chrome 121 lub nowszy

Określa, czy zezwolić witrynom na dostęp do schowka za pomocą zaawansowanych funkcji interfejsu Async Clipboard API. „Zaawansowane” funkcje obejmują wszystko oprócz zapisywania wbudowanych formatów po wykonaniu przez użytkownika odpowiedniego działania, czyli możliwość odczytu, możliwość zapisywania w formatach niestandardowych i możliwość zapisywania bez wykonywania przez użytkownika odpowiedniego działania. Jedna z tych możliwości: allow: zezwól witrynom na korzystanie z zaawansowanych funkcji schowka, block: nie zezwalaj witrynom na korzystanie z zaawansowanych funkcji schowka, ask: pytaj, gdy witryna chce korzystać z zaawansowanych funkcji schowka. Wartość domyślna to ask. Podstawowy URL to adres URL dokumentu, który zażądał dostępu do schowka. Adres URL dodatkowy nie jest używany.

cookies

Określa, czy witryny mogą ustawiać pliki cookie i inne dane lokalne. allow: akceptuj pliki cookie,block: blokuj pliki cookie,session\_only: akceptuj pliki cookie tylko w ramach bieżącej sesji. Wartość domyślna to allow. Podstawowy adres URL to adres URL reprezentujący źródło pliku cookie. Drugi adres URL to adres URL ramki najwyższego poziomu.

fullscreen

Wycofano. Nie ma już żadnego wpływu. Uprawnienia do wyświetlania na pełnym ekranie są teraz automatycznie przyznawane w przypadku wszystkich witryn. Wartość to zawsze allow.

images

Określa, czy wyświetlać obrazy. Jedna z tych możliwości: allow: pokaż obrazy, block: nie pokazuj obrazów. Wartość domyślna to allow. Główny adres URL to adres URL ramki najwyższego poziomu. Drugi adres URL to adres URL obrazu.

javascript

Określa, czy ma być wykonywany kod JavaScript. Jedna z tych możliwości: allow uruchom JavaScript, block: nie uruchamiaj JavaScriptu. Wartość domyślna to allow. Główny adres URL to adres URL ramki najwyższego poziomu. Dodatkowy adres URL nie jest używany.

location

Określa, czy zezwolić na geolokalizację. Jedna z tych możliwości: allow: zezwalaj witrynom na śledzenie fizycznej lokalizacji; block: nie zezwalaj witrynom na śledzenie fizycznej lokalizacji; ask: zapytaj, zanim zezwolisz stronom na śledzenie Twojej fizycznej lokalizacji. Wartość domyślna to ask. Podstawowy URL to URL dokumentu, z którego wysłano żądanie danych o lokalizacji. Drugi adres URL to adres URL ramki najwyższego poziomu (może się on różnić od adresu URL przesyłanego żądania).

microphone

Chrome 46 lub nowszy

Określa, czy witryny mają mieć dostęp do mikrofonu. Jedna z tych możliwości: allow: Zezwól stronom na dostęp do mikrofonu, block: nie zezwalaj witrynom na dostęp do mikrofonu, ask: pytaj, gdy strona chce uzyskać dostęp do mikrofonu. Wartość domyślna to ask. Podstawowy adres URL to adres URL dokumentu, który poprosił o dostęp do mikrofonu. Dodatkowy adres URL nie jest używany. UWAGA: ustawienie „Zezwól” jest nieprawidłowe, jeśli oba wzorce są „'”.

mouselock

Wycofany. Nie ma już żadnych efektów. Uprawnienia do blokowania myszy są teraz automatycznie przyznawane w przypadku wszystkich witryn. Wartość to zawsze allow.

notifications

Określa, czy strony mogą wyświetlać powiadomienia na pulpicie. Jedna z tych możliwości: allow: Zezwalaj witrynom na wyświetlanie powiadomień na pulpicie, block: nie zezwalaj witrynom na wyświetlanie powiadomień na pulpicie, ask: pytaj, gdy witryna chce pokazywać powiadomienia na pulpicie. Wartość domyślna to ask. Główny adres URL to adres URL dokumentu, który ma wyświetlać powiadomienie. Adres URL podany jako drugi nie jest używany.

plugins

Wycofano. W Chrome 88 usunięto obsługę Flasha, więc to uprawnienie nie ma już żadnego wpływu. Wartość to zawsze block. Połączenia do numerów set()clear() będą ignorowane.

popups

Określa, czy witryny mają wyświetlać wyskakujące okienka. Jedna z tych opcji: allow: zezwalaj witrynom na wyświetlanie wyskakujących okienek, block: nie zezwalaj witrynom na wyświetlanie wyskakujących okienek. Wartość domyślna to block. Podstawowy adres URL to adres ramki najwyższego poziomu. Adres URL dodatkowy nie jest używany.

unsandboxedPlugins

Wycofano. Wcześniej określało ono, czy zezwalać witrynom na uruchamianie wtyczek poza piaskownicą. Jednak po usunięciu procesu brokera Flash w Chrome 88 to uprawnienie nie ma już żadnego efektu. Wartość to zawsze block. Połączenia do numerów set()clear() będą ignorowane.