chrome.contentSettings

refresh date: 2026-09-25 robots: noindex

Opis

Użyj interfejsu API chrome.contentSettings, aby zmienić ustawienia określające, czy witryny mogą korzystać z takich funkcji, jak pliki cookie, JavaScript i wtyczki. Mówiąc ogólnie, ustawienia treści pozwalają dostosować działanie Chrome do konkretnej witryny, a nie globalnie.

Uprawnienia

contentSettings

Plik manifestu

Aby używać interfejsu API, musisz zadeklarować uprawnienie „contentSettings” w pliku manifestu rozszerzenia. Przykład:

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

Wzorce ustawień treści

Możesz używać wzorców, aby określić, na które witryny ma wpływać dane ustawienie treści. Na przykład https://*.youtube.com/* określa youtube.com i wszystkie subdomeny tej domeny. 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, https i ftp ś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 przeciwieństwie do wzorców dopasowania wzorce ustawień treści mogą określać numer portu. Jeśli podany jest numer portu, wzorzec pasuje tylko do witryn z tym portem. Jeśli nie podasz numeru portu, wzorzec będzie pasować do wszystkich portów.

Pierwszeństwo wzorcó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/* (pasuje do example.com i wszystkich subdomen)
  3. <all_urls> (pasuje do każdego adresu URL)

Na to, jak konkretny jest wzorzec, 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 wzorzec jest bardziej szczegółowy niż inny wzorzec w jednej części, ale mniej szczegółowy w innej, różne części są sprawdzane w tej kolejności: nazwa hosta, schemat, port. Na przykład te wzorce są uporządkowane według kolejności obowiązywania:

  1. https://www.example.com:*/* Określa nazwę hosta i schemat.
  2. *:/www.example.com:123/* Nie tak wysoki, ponieważ chociaż określa nazwę hosta, nie określa schematu.
  3. https://*.example.com:123/* Niższy, ponieważ mimo że określa port i schemat, zawiera symbol wieloznaczny w nazwie hosta.

Wzorce podstawowe i dodatkowe

Adres URL brany pod uwagę przy podejmowaniu decyzji o zastosowaniu ustawienia treści zależy od typu treści. Na przykład w przypadku contentSettings.notifications ustawienia są oparte na adresie URL wyświetlanym w omniboksie. Ten adres URL jest nazywany „głównym” adresem URL.

Niektóre typy treści mogą uwzględniać dodatkowe adresy URL. Na przykład o tym, czy witryna może ustawić contentSettings.cookies, decyduje adres URL żądania HTTP (który w tym przypadku jest podstawowym adresem URL) oraz adres URL wyświetlany w omniboksie (który jest nazywany „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 wzorzec podstawowy, pierwszeństwo ma reguła z bardziej szczegółowym wzorcem dodatkowym. Na przykład ta lista par wzorców głównych i dodatkowych jest uporządkowana według ważności:

PierwszeństwoWzór podstawowyWzór 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>

Identyfikatory zasobów

Identyfikatory zasobów umożliwiają określanie ustawień treści dla konkretnych podtypów danego typu treści. Obecnie jedynym typem treści, który obsługuje identyfikatory zasobów, jest contentSettings.plugins, gdzie identyfikator zasobu identyfikuje konkretną wtyczkę. Podczas stosowania ustawień treści najpierw sprawdzane są ustawienia konkretnej wtyczki. Jeśli nie zostaną znalezione żadne ustawienia dla 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 wzorzec <all_urls>, ma pierwszeństwo przed regułą bez identyfikatora zasobu i wzorca https://www.example.com/*, nawet jeśli ten wzorzec jest bardziej szczegółowy.

Listę identyfikatorów zasobów dla typu treści możesz uzyskać, wywołując 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 interfejsu contentSettings API z repozytorium chrome-extension-samples.

Typy

AutoVerifyContentSetting

Chrome 113 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

CameraContentSetting

Chrome 46 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

ClipboardContentSetting

Chrome 121 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

ContentSetting

Właściwości

  • wyczyść

    unieważnienie,

    Obietnica

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

    Funkcja clear wygląda tak:

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

    • szczegóły

      obiekt

      • zakres

        Scope opcjonalny

        Gdzie wyczyścić ustawienie (domyślnie: regularne).

    • callback

      function opcjonalne

      Parametr callback wygląda tak:

      () => void

    • returns

      thought Promise<void>

      Chrome 96 lub nowsza wersja

      Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

  • get

    unieważnienie,

    Obietnica

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

    Funkcja get wygląda tak:

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

    • szczegóły

      obiekt

      • incognito

        boolean opcjonalne

        Określa, czy sprawdzać ustawienia treści w sesji incognito. (domyślnie: false)

      • primaryUrl

        tekst

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

      • resourceIdentifier

        ResourceIdentifier opcjonalny

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

      • secondaryUrl

        ciąg znaków opcjonalny

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

    • callback

      function opcjonalne

      Parametr callback wygląda tak:

      (details: object) => void

      • szczegóły

        obiekt

        • ustawienie

          T

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

    • returns

      Promise<object>

      Chrome 96 lub nowsza wersja

      Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

  • getResourceIdentifiers

    unieważnienie,

    Obietnica

    Funkcja getResourceIdentifiers wygląda tak:

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

    • callback

      function opcjonalne

      Parametr callback wygląda tak:

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] opcjonalny

        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

      thought Promise<ResourceIdentifier[]>

      Chrome 96 lub nowsza wersja

      Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

  • zestaw

    unieważnienie,

    Obietnica

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

    Funkcja set wygląda tak:

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

    • szczegóły

      obiekt

      • primaryPattern

        tekst

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

      • resourceIdentifier

        ResourceIdentifier opcjonalny

        Identyfikator zasobu dla typu treści.

      • zakres

        Scope opcjonalny

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

      • secondaryPattern

        ciąg znaków opcjonalny

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

      • ustawienie

        każdy

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

    • callback

      function opcjonalne

      Parametr callback wygląda tak:

      () => void

    • returns

      thought Promise<void>

      Chrome 96 lub nowsza wersja

      Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

CookiesContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"session_only"

FullscreenContentSetting

Chrome 44 lub nowsza wersja

Wartość

"allow"

ImagesContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

JavascriptContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

LocationContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

MicrophoneContentSetting

Chrome 46 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

MouselockContentSetting

Chrome 44 lub nowsza wersja

Wartość

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

NotificationsContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

"ask"

PluginsContentSetting

Chrome 44 lub nowsza wersja

Wartość

"block"

PopupsContentSetting

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

PpapiBrokerContentSetting

Chrome 44 lub nowsza wersja

Wartość

"block"

ResourceIdentifier

Jedynym typem treści, który używa identyfikatorów zasobów, jest contentSettings.plugins. Więcej informacji znajdziesz w artykule Identyfikatory zasobów.

Właściwości

  • opis

    ciąg znaków opcjonalny

    Zrozumiały dla człowieka opis zasobu.

  • id

    tekst

    Identyfikator zasobu dla danego typu treści.

Scope

Chrome 44 lub nowsza wersja

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

Typ wyliczeniowy

"regular"

"incognito_session_only"

SoundContentSetting

Chrome 141 lub nowsza wersja

Typ wyliczeniowy

"allow"

"block"

Właściwości

automaticDownloads

Określa, czy zezwalać witrynom na automatyczne pobieranie wielu plików. Jedna z tych wartości: allow: zezwalaj witrynom na automatyczne pobieranie wielu plików, block: nie zezwalaj witrynom na automatyczne pobieranie wielu plików, ask: pytaj, gdy witryna chce automatycznie pobierać 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 nowsza wersja

Określa, czy zezwalać witrynom na korzystanie z interfejsu Private State Tokens API. Jedna z tych wartości: allow: zezwalaj witrynom na korzystanie z interfejsu Private State Tokens API, block: blokuj witrynom możliwość korzystania z interfejsu Private State Tokens API. Wartość domyślna to allow. Podczas wywoływania set() główny wzorzec adresu URL musi mieć postać <all_urls>. Dodatkowy adres URL nie jest używany.

camera

Chrome 46 lub nowsza wersja

Czy zezwalać witrynom na dostęp do kamery. Jedna z tych wartości: allow: zezwalaj witrynom na dostęp do kamery, block: nie zezwalaj witrynom na dostęp do kamery, ask: pytaj, gdy witryna chce uzyskać dostęp do kamery. Wartość domyślna to ask. Podstawowy adres URL to adres URL dokumentu, który poprosił o dostęp do kamery. Dodatkowy adres URL nie jest używany. UWAGA: ustawienie „allow” jest nieprawidłowe, jeśli oba wzorce to „<all_urls>”.

clipboard

Chrome 121 lub nowsza wersja

Określa, czy zezwalać witrynom na dostęp do schowka za pomocą zaawansowanych funkcji interfejsu Async Clipboard API. Funkcje „zaawansowane” obejmują wszystko oprócz zapisywania wbudowanych formatów po gestach użytkownika, czyli możliwość odczytu, możliwość zapisywania formatów niestandardowych i możliwość zapisywania bez gestu użytkownika. Jedna z tych wartości: allow: zezwalaj 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. Główny adres URL to adres URL dokumentu, który zażądał dostępu do schowka. Dodatkowy adres URL nie jest używany.

cookies

Określa, czy zezwalać witrynom na ustawianie plików cookie i innych danych lokalnych. Jedna z tych wartości: allow: akceptuj pliki cookie, block: blokuj pliki cookie, session\_only: akceptuj pliki cookie tylko w bieżącej sesji. Wartość domyślna to allow. Główny adres URL to adres URL reprezentujący źródło pliku cookie. URL dodatkowy to adres URL ramki najwyższego poziomu.

fullscreen

Wycofano. Nie ma już żadnego wpływu. Uprawnienie do wyświetlania na pełnym ekranie jest teraz automatycznie przyznawane wszystkim witrynom. Wartość zawsze wynosi allow.

images

Określa, czy obrazy mają być wyświetlane. Jedna z tych wartości: allow: wyświetlaj obrazy, block: nie wyświetlaj obrazów. Wartość domyślna to allow. Główny adres URL to adres URL ramki najwyższego poziomu. Dodatkowy adres URL to adres URL obrazu.

javascript

Określa, czy ma być uruchamiany JavaScript. Jedna z tych wartości: allow: uruchamiaj 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

Czy zezwalać na geolokalizację. Jedna z tych wartości: allow: zezwalaj witrynom na śledzenie Twojej lokalizacji, block: nie zezwalaj witrynom na śledzenie Twojej lokalizacji, ask: pytaj, zanim zezwolisz witrynom na śledzenie Twojej lokalizacji. Wartość domyślna to ask. Główny adres URL to adres URL dokumentu, który zażądał danych o lokalizacji. Dodatkowy adres URL to adres URL ramki najwyższego poziomu (który może, ale nie musi, różnić się od adresu URL żądania).

microphone

Chrome 46 lub nowsza wersja

Określa, czy zezwalać witrynom na dostęp do mikrofonu. Jedna z tych wartości: allow: zezwalaj witrynom na dostęp do mikrofonu, block: nie zezwalaj witrynom na dostęp do mikrofonu, ask: pytaj, gdy witryna chce uzyskać dostęp do mikrofonu. Wartość domyślna to ask. Główny adres URL to adres URL dokumentu, który poprosił o dostęp do mikrofonu. Dodatkowy adres URL nie jest używany. UWAGA: ustawienie „allow” jest nieprawidłowe, jeśli oba wzorce to „<all_urls>”.

mouselock

Wycofano. Nie ma już żadnego wpływu. Uprawnienie do blokowania myszy jest teraz automatycznie przyznawane wszystkim witrynom. Wartość zawsze wynosi allow.

notifications

Określa, czy zezwalać witrynom na wyświetlanie powiadomień na pulpicie. Jedna z tych wartoś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 wyświetlać powiadomienia na pulpicie. Wartość domyślna to ask. Główny adres URL to adres URL dokumentu, który chce wyświetlić powiadomienie. Dodatkowy adres URL nie jest używany.

plugins

Wycofano. Po usunięciu obsługi Flasha w Chrome 88 to uprawnienie nie ma już żadnego wpływu. Wartość zawsze wynosi block. Połączenia z numerami set() i clear() będą ignorowane.

popups

Określa, czy zezwalać witrynom na wyświetlanie wyskakujących okienek. Jedna z tych wartości: allow: zezwalaj witrynom na wyświetlanie wyskakujących okienek, block: nie zezwalaj witrynom na wyświetlanie wyskakujących okienek. Wartość domyślna to block. Główny adres URL to adres URL ramki najwyższego poziomu. Dodatkowy adres URL nie jest używany.

unsandboxedPlugins

Wycofano. Wcześniej określała, czy zezwalać witrynom na uruchamianie wtyczek poza piaskownicą. Jednak po usunięciu procesu brokera Flash w Chrome 88 to uprawnienie nie ma już żadnego wpływu. Wartość zawsze wynosi block. Połączenia z numerami set() i clear() będą ignorowane.