Açıklama
Web sitelerinin çerezler, JavaScript ve eklentiler gibi özellikleri kullanıp kullanamayacağını kontrol eden ayarları değiştirmek için chrome.contentSettings
API'sini kullanın. Daha genel bir ifadeyle, içerik ayarları Chrome'un davranışını genel olarak değil, site bazında özelleştirmenize olanak tanır.
İzinler
contentSettings
Manifest
"contentSettings" bildirmeniz gerekir. API'yi kullanmak için uzantınızın manifest dosyasında izin verin. Örneğin:
{
"name": "My extension",
...
"permissions": [
"contentSettings"
],
...
}
İçerik ayarı kalıpları
Her bir içerik ayarının etkilediği web sitelerini belirtmek için kalıpları kullanabilirsiniz. Örneğin,
https://*.youtube.com/*
, youtube.com'u ve tüm alt alan adlarını belirtir. İçerik için söz dizimi
ayarlama kalıpları, birkaç farklılık dışında eşleşme kalıpları ile aynıdır:
http
,https
veftp
URL'leri için yol bir joker karakter (/*
) olmalıdır.file
URL için yol tamamen belirtilmeli ve joker karakter içermemelidir.- Eşleşme kalıplarının aksine, içerik ayarı kalıpları bir bağlantı noktası numarası belirtebilir. Bağlantı noktası numarası belirtilirse kalıp yalnızca bu bağlantı noktasına sahip web siteleriyle eşleşir. Bağlantı noktası numarası yoksa belirtildiğinde, kalıp tüm bağlantı noktalarıyla eşleşir.
Kalıp önceliği
Belirli bir site için birden fazla içerik ayarı kuralı geçerli olduğunda, daha spesifik olan kural öncelikli hale getirir.
Örneğin, aşağıdaki kalıplar önceliğe göre sıralanır:
https://www.example.com/*
https://*.example.com/*
(example.com ve tüm alt alan adlarıyla eşleşen)<all_urls>
(her URL ile eşleşir)
Üç tür joker karakter, bir kalıbın ne kadar belirgin olduğunu etkiler:
- Bağlantı noktasındaki joker karakterler (ör.
https://www.example.com:*/*
) - Şemadaki joker karakterler (ör.
*://www.example.com:123/*
) - Ana makine adında joker karakterler (örneğin,
https://*.example.com:123/*
)
Bir kalıp, bir bölümde başka bir kalıptan daha spesifik, diğerinde ise daha az spesifikse farklı bölümler şu sırayla kontrol edilir: ana makine adı, şema, bağlantı noktası. Örneğin, şu kalıplar önceliğe göre sıralanır:
https://www.example.com:*/*
. Ana makine adını ve şemayı belirtir.*:/www.example.com:123/*
. Çok yüksek değildir, çünkü ana makine adını belirtmesine rağmen şemayı belirtmez.https://*.example.com:123/*
. Bağlantı noktasını ve şemayı belirtmesine rağmen ana makine adında bir joker karaktere sahip olması nedeniyle daha düşüktür.
Birincil ve ikincil kalıplar
Hangi içerik ayarının uygulanacağına karar verilirken dikkate alınan URL, içerik türüne bağlıdır.
Örneğin, contentSettings.notifications
için ayarlar şurada gösterilen URL'yi temel alır:
çok amaçlı adres çubuğu. Bu URL "birincil" olarak adlandırılır URL'yi tıklayın.
Bazı içerik türleri ek URL'leri hesaba katabilir. Örneğin, bir sitenin
Bir contentSettings.cookies
değeri, HTTP isteğinin URL'sine (yani
birincil URL'nin yanı sıra çok amaçlı adres çubuğunda gösterilen URL'ye ("ikincil"
URL) ekleyin.
Birden fazla kuralın birincil ve ikincil kalıpları varsa daha spesifik olan birincil kurala sahip kural öncelikli hale getirir. Aynı birincil kalıba sahip birden fazla kural varsa öncelikli hale gelir. Örneğin, aşağıdaki liste: birincil/ikincil kalıp çiftleri, önceliğe göre sıralanır:
Öncelik | Birincil kalıp | İkincil kalıp |
---|---|---|
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> |
Kaynak tanımlayıcıları
Kaynak tanımlayıcıları, içerik türünün belirli alt türleri için içerik ayarlarını belirtmenize olanak tanır.
Şu anda kaynak tanımlayıcıları destekleyen tek içerik türü contentSettings.plugins
,
Burada bir kaynak tanımlayıcı belirli bir eklentiyi tanımlar. İçerik ayarlarını uygularken önce
ilgili eklentinin ayarlarının kontrol edildiğinden emin olun. Belirli bir
eklentilerinin genel içerik ayarları kontrol edilir.
Örneğin, bir içerik ayarı kuralı adobe-flash-player
kaynak tanımlayıcısına ve
kalıbı <all_urls>
ise kaynak tanımlayıcısı ve kalıp içermeyen bir kurala göre önceliklidir
https://www.example.com/*
değerini alır.
Bir içerik türünün kaynak tanımlayıcılarının listesini almak için
contentSettings.ContentSetting.getResourceIdentifiers
yöntemini kullanabilirsiniz. Döndürülen liste şununla değişebilir:
kullanıcının makinesinde yüklü eklenti kümesi ancak Chrome, tanımlayıcıları sabit tutmaya çalışır
en iyi uygulamaları paylaşacağız.
Örnekler
Bu API'yi denemek için chrome-extension-samples bölümünden contentSettings API örneğini yükleyin. depodur.
Türler
AutoVerifyContentSetting
Enum
"allow"
"engelle"
CameraContentSetting
Enum
"allow"
"engelle"
"sor"
ClipboardContentSetting
Enum
"allow"
"engelle"
"sor"
ContentSetting
Özellikler
-
temizle
geçersiz
Söz 'nı inceleyin.Bu uzantı tarafından belirlenen tüm içerik ayarı kurallarını temizleyin.
clear
işlevi aşağıdaki gibi görünür:(details: object, callback?: function) => {...}
-
ayrıntılar
nesne
-
kapsam
Kapsam isteğe bağlı
Ayarın temizleneceği yer (varsayılan: normal).
-
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
-
returns
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
-
-
get
geçersiz
Söz 'nı inceleyin.Belirli bir URL çifti için geçerli içerik ayarını alır.
get
işlevi aşağıdaki gibi görünür:(details: object, callback?: function) => {...}
-
ayrıntılar
nesne
-
gizli
boole isteğe bağlı
Gizli oturum için içerik ayarlarının kontrol edilip edilmeyeceğini belirler. (varsayılan yanlış)
-
primaryUrl
dize
İçerik ayarının alınması gereken birincil URL. Birincil URL'nin anlamının içerik türüne bağlı olduğunu unutmayın.
-
resourceIdentifier
ResourceIdentifier isteğe bağlı
Ayarların alınması gereken içerik türünün daha spesifik bir tanımlayıcısı.
-
secondaryUrl
dize isteğe bağlı
İçerik ayarının alınması gereken ikincil URL. Varsayılan olarak birincil URL kullanılır. İkincil URL'nin anlamının içerik türüne bağlı olduğunu ve tüm içerik türlerinin ikincil URL kullanmadığını unutmayın.
-
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(details: object) => void
-
ayrıntılar
nesne
-
ayarlama
S
İçerik ayarı. Olası değerler için ContentSetting nesnelerinin açıklamasına bakın.
-
-
-
returns
Promise<object>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
-
-
getResourceIdentifiers
geçersiz
Söz 'nı inceleyin.getResourceIdentifiers
işlevi aşağıdaki gibi görünür:(callback?: function) => {...}
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(resourceIdentifiers?: ResourceIdentifier[]) => void
-
resourceIdentifiers
ResourceIdentifier[] isteğe bağlı
Bu içerik türü için kaynak tanımlayıcılarının listesi veya bu içerik türü kaynak tanımlayıcıları kullanmıyorsa
undefined
.
-
-
returns
Söz<ResourceIdentifier[]>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
-
-
grup
geçersiz
Söz 'nı inceleyin.Yeni bir içerik ayarı kuralı uygular.
set
işlevi aşağıdaki gibi görünür:(details: object, callback?: function) => {...}
-
ayrıntılar
nesne
-
primaryPattern
dize
Birincil URL kalıbı. Kalıpla ilgili ayrıntılar için İçerik Ayarı Kalıpları bölümüne bakın.
-
resourceIdentifier
ResourceIdentifier isteğe bağlı
İçerik türünün kaynak tanımlayıcısı.
-
kapsam
Kapsam isteğe bağlı
Ayarın yapılacağı yer (varsayılan: normal).
-
secondaryPattern
dize isteğe bağlı
İkincil URL kalıbı. Varsayılan olarak tüm URL'lerle eşleşir. Kalıpla ilgili ayrıntılar için İçerik Ayarı Kalıpları bölümüne bakın.
-
ayarlama
herhangi
Bu kural tarafından uygulanan ayar. Olası değerler için ContentSetting nesnelerinin açıklamasına bakın.
-
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
-
returns
Taahhüt<void>
Chrome 96 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
-
CookiesContentSetting
Enum
"allow"
"engelle"
"session_only"
FullscreenContentSetting
Değer
"allow"
ImagesContentSetting
Enum
"allow"
"engelle"
JavascriptContentSetting
Enum
"allow"
"engelle"
LocationContentSetting
Enum
"allow"
"engelle"
"sor"
MicrophoneContentSetting
Enum
"allow"
"engelle"
"sor"
MouselockContentSetting
Değer
"allow"
MultipleAutomaticDownloadsContentSetting
Enum
"allow"
"engelle"
"sor"
NotificationsContentSetting
Enum
"allow"
"engelle"
"sor"
PluginsContentSetting
Değer
"engelle"
PopupsContentSetting
Enum
"allow"
"engelle"
PpapiBrokerContentSetting
Değer
"engelle"
ResourceIdentifier
Kaynak tanımlayıcıları kullanan tek içerik türü contentSettings.plugins
'dir. Daha fazla bilgi için Kaynak Tanımlayıcıları bölümüne bakın.
Özellikler
-
açıklama
dize isteğe bağlı
Kaynağın okunabilir açıklaması.
-
id
dize
Belirli bir içerik türünün kaynak tanımlayıcısı.
Scope
ContentSetting'in kapsamıdır. Şunlardan biri:
regular
: Normal profil ayarı (başka bir yerde geçersiz kılınmazsa gizli profil tarafından devralınır),
incognito\_session\_only
: Yalnızca gizli oturum sırasında ayarlanabilen ve gizli oturum sona erdiğinde silinen gizli profil ayarı (normal ayarları geçersiz kılar).
Enum
"regular" (normal)
"gizli_oturum_yalnızca"
Özellikler
automaticDownloads
Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin ver,
block
: Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin verme,
ask
: Bir site ilk dosyadan sonra dosyaları otomatik olarak indirmek istediğinde sor.
ask
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
autoVerify
Sitelerin Private State Tokens API'yi kullanmasına izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin Private State Tokens API'yi kullanmasına izin ver.
block
: Sitelerin Private State Tokens API'yi kullanmasını engelle.
allow
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz. NOT: set()
çağrılırken birincil kalıp olmalıdır .
Tür
camera
Sitelerin kameraya erişmesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin kameraya erişmesine izin ver,
block
: Sitelerin kameraya erişmesine izin verme,
ask
: Bir site kameraya erişmek istediğinde sor.
ask
varsayılandır.
Birincil URL, kamera erişimi isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
NOT: "allow" her iki kalıp da '' ise ayar geçerli değildir.
Tür
clipboard
Sitelerin, Eş Zamansız Pano API'sının gelişmiş özellikleri aracılığıyla panoya erişmesine izin verilip verilmeyeceği. "Gelişmiş" Özellikler, bir kullanıcı hareketinden sonra yerleşik biçimleri yazma dışındaki her şeyi (ör. okuma yeteneği, özel biçimler yazabilme ve kullanıcı hareketi olmadan yazma imkanı) içerir. Şunlardan biri:
allow
: Sitelerin gelişmiş pano özelliklerini kullanmasına izin ver,
block
: Sitelerin gelişmiş pano özelliklerini kullanmasına izin verme,
ask
: Bir site gelişmiş pano özelliklerini kullanmak istediğinde sor.
ask
varsayılandır.
Birincil URL, pano erişimi isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
Tür
cookies
Çerezlere ve diğer yerel verilerin web siteleri tarafından ayarlanmasına izin verilip verilmeyeceği. Şunlardan biri:
allow
: Çerezleri kabul et,
block
: Çerezleri engelle,
session\_only
: Çerezleri yalnızca geçerli oturum için kabul et.
allow
varsayılandır.
Birincil URL, çerez kaynağını temsil eden URL'dir. İkincil URL, üst düzey çerçevenin URL'sidir.
Tür
fullscreen
Kullanımdan kaldırıldı. Artık herhangi bir etkisi yok. Tam ekran izni artık tüm sitelere otomatik olarak veriliyor. Değer her zaman allow
.
Tür
images
Resimlerin gösterilip gösterilmeyeceğini belirler. Şunlardan biri:
allow
: Resimleri göster,
block
: Resimleri gösterme.
allow
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL, resmin URL'sidir.
Tür
javascript
JavaScript'in çalıştırılıp çalıştırılmayacağı. Şunlardan biri:
allow
: JavaScript'i çalıştırın,
block
: JavaScript çalıştırmaz.
allow
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
Tür
location
Coğrafi Konuma izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin fiziksel konumunuzu izlemesine izin verin,
block
: Sitelerin fiziksel konumumu izlemesine izin verme,
ask
: Sitelerin fiziksel konumumu izlemesine izin vermeden önce sor.
ask
varsayılandır.
Birincil URL, konum verilerini isteyen dokümanın URL'sidir. İkincil URL, üst düzey çerçevenin URL'sidir (istenen URL'den farklı olabilir veya olmayabilir).
Tür
microphone
Sitelerin mikrofona erişmesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin mikrofona erişmesine izin ver,
block
: Sitelerin mikrofona erişmesine izin verme,
ask
: Bir site mikrofona erişmek istediğinde sor.
ask
varsayılandır.
Birincil URL, mikrofon erişimi isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
NOT: "allow" her iki kalıp da '' ise ayar geçerli değildir.
Tür
mouselock
Kullanımdan kaldırıldı. Artık herhangi bir etkisi yok. Fare kilidi izni artık tüm siteler için otomatik olarak veriliyor. Değer her zaman allow
.
Tür
notifications
Sitelerin masaüstü bildirimleri göstermesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin masaüstü bildirimleri göstermesine izin ver
block
: Sitelerin masaüstü bildirimleri göstermesine izin verme,
ask
: Bir site masaüstü bildirimleri göstermek istediğinde sor.
ask
varsayılandır.
Birincil URL, bildirimi göstermek isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
Tür
plugins
Kullanımdan kaldırıldı. Chrome 88'de Flash desteği kaldırıldığında bu iznin artık bir etkisi yoktur. Değer her zaman block
. set()
ve clear()
numaralı telefona yapılan çağrılar yoksayılacak.
Tür
popups
Sitelerin pop-up göstermesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin pop-up göstermesine izin ver,
block
: Sitelerin pop-up'ları göstermesine izin verme.
block
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
Tür
unsandboxedPlugins
Kullanımdan kaldırıldı. Önceden, sitelerin korumalı alana alınmadan eklentileri çalıştırmasına izin verilip verilmeyeceği kontrol ediliyordu. Ancak Chrome 88'de Flash aracı işlemi kaldırıldığında bu iznin artık bir etkisi yoktu. Değer her zaman block
. set()
ve clear()
numaralı telefona yapılan çağrılar yoksayılacak.