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
contentSettingsPlik 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,httpsiftpścieżka musi być symbolem wieloznacznym (/*). W przypadku adresów URLfileś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:
https://www.example.com/*https://*.example.com/*(pasuje do example.com i wszystkich subdomen)<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:
https://www.example.com:*/*Określa nazwę hosta i schemat.*:/www.example.com:123/*Nie tak wysoki, ponieważ chociaż określa nazwę hosta, nie określa schematu.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ństwo | Wzór podstawowy | Wzór dodatkowy |
|---|---|---|
| 1 | https://www.moose.com/*, | https://www.wombat.com/* |
| 2 | https://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
Typ wyliczeniowy
"allow"
"block"
CameraContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
ClipboardContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
ContentSetting
Właściwości
-
wyczyść
unieważnienie,
ObietnicaWyczyść wszystkie reguły ustawień treści określone przez to rozszerzenie.
Funkcja
clearwygląda tak:(details: object, callback?: function) => {...}
-
szczegóły
obiekt
-
zakres
Scope opcjonalny
Gdzie wyczyścić ustawienie (domyślnie: regularne).
-
-
callback
function opcjonalne
Parametr
callbackwygląda tak:() => void
-
returns
thought Promise<void>
Chrome 96 lub nowsza wersjaObiekty 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,
ObietnicaPobiera bieżące ustawienie treści dla danej pary adresów URL.
Funkcja
getwyglą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
callbackwyglą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 wersjaObiekty 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,
ObietnicaFunkcja
getResourceIdentifierswygląda tak:(callback?: function) => {...}
-
callback
function opcjonalne
Parametr
callbackwyglą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 wersjaObiekty 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,
ObietnicaZastosuj nową regułę ustawień treści.
Funkcja
setwyglą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
callbackwygląda tak:() => void
-
returns
thought Promise<void>
Chrome 96 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
-
CookiesContentSetting
Typ wyliczeniowy
"allow"
"block"
"session_only"
FullscreenContentSetting
Wartość
"allow"
ImagesContentSetting
Typ wyliczeniowy
"allow"
"block"
JavascriptContentSetting
Typ wyliczeniowy
"allow"
"block"
LocationContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
MicrophoneContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
MouselockContentSetting
Wartość
"allow"
MultipleAutomaticDownloadsContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
NotificationsContentSetting
Typ wyliczeniowy
"allow"
"block"
"ask"
PluginsContentSetting
Wartość
"block"
PopupsContentSetting
Typ wyliczeniowy
"allow"
"block"
PpapiBrokerContentSetting
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
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
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
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
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
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
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.