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
API'yi kullanmak için uzantınızın manifest dosyasında "contentSettings"
iznini beyan etmeniz gerekir. Örneğin:
{
"name": "My extension",
...
"permissions": [
"contentSettings"
],
...
}
Kavramlar ve kullanım
İç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 ayarı kalıplarının söz dizimi, 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'leri 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. Bir bağlantı noktası numarası belirtilirse kalıp, yalnızca bu bağlantı noktasına sahip web sitelerini eşleştirir. Bağlantı noktası numarası belirtilmezse 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 kalıba sahip kural önceliklidir.
Ö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şir)<all_urls>
(her URL'yle eşleşir)
Bir kalıbın ne kadar spesifik olduğunu üç tür joker karakter 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 (ör.
https://*.example.com:123/*
)
Bir kalıp, bir bölümde diğer kalıptan daha spesifik ancak başka bir bölümde daha az spesifikse farklı bölümler aşağıdaki sırayla kontrol edilir: ana makine adı, şema, bağlantı noktası. Örneğin, aşağıdaki kalıplar öncelik sırasına göre sıralanır:
https://www.example.com:*/*
Ana makine adını ve şemayı belirtir.*:/www.example.com:123/*
Ana makine adını belirtmesine rağmen şemayı belirtmediği için bu değer kadar yüksek değildir.https://*.example.com:123/*
Bağlantı noktasını ve şemayı belirtmesine rağmen ana makine adında joker karakter içerdiği için daha düşük.
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
ayarları, her şey için bir adres çubuğunda gösterilen URL'ye dayanır. Bu URL'ye "birincil" URL adı verilir.
Bazı içerik türleri ek URL'leri hesaba katabilir. Örneğin, bir sitenin contentSettings.cookies
ayarlamasına izin verilip verilmeyeceği, HTTP isteğinin URL'sine (bu durumda birincil URL'dir) ve çok amaçlı adres çubuğunda gösterilen URL'ye ("ikincil" URL) göre belirlenir.
Birden fazla kuralın birincil ve ikincil kalıpları varsa daha ayrıntılı birincil kalıbı olan kural öncelikli olur. Aynı birincil kalıba sahip birden fazla kural varsa daha ayrıntılı ikincil kalıbı olan kural öncelikli olur. Örneğin, aşağıdaki birincil/ikincil desen çiftleri listesi önceliğe göre sıralanmıştır:
Öncelik | Birincil desen | İkincil desen |
---|---|---|
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> |
Resim içeriği ayarı için ikincil kalıplar desteklenmiyor.
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
'dir. Kaynak tanımlayıcı, belirli bir eklentiyi tanımlar. İçerik ayarları uygulanırken önce ilgili eklentinin ayarları kontrol edilir. Belirli bir eklenti için herhangi bir ayar bulunamazsa
eklentilerin genel içerik ayarları kontrol edilir.
Örneğin, bir içerik ayarı kuralında adobe-flash-player
kaynak tanımlayıcısı ve <all_urls>
kalıbı varsa bu kural, kaynak tanımlayıcısı ve https://www.example.com/*
kalıbı olmayan bir kurala göre öncelikli olur (bu kalıp daha spesifik olsa bile).
contentSettings.ContentSetting.getResourceIdentifiers()
yöntemini çağırarak içerik türü için kaynak tanımlayıcılarının listesini alabilirsiniz. Döndürülen liste, kullanıcının makinesine yüklenen eklenti grubuna göre değişebilir ancak Chrome, tanımlayıcıları eklenti güncellemelerinde sabit tutmaya çalışır.
Örnekler
Bu API'yi denemek için chrome-extension-samples deposundan contentSettings API örneğini yükleyin.
Türler
AutoVerifyContentSetting
Enum
"allow"
"block"
CameraContentSetting
Enum
"allow"
"block"
ClipboardContentSetting
Enum
"allow"
"block"
"ask"
ContentSetting
Özellikler
-
temizle
geçersiz
PromiseBu uzantı tarafından belirlenen tüm içerik ayarı kurallarını temizleyin.
clear
işlevi şu şekilde 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
Promise<void>
Chrome 96 ve sonraki sürümlerSözler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Sözleşme, geri çağırma işlevine iletilen türle çözülür.
-
-
get
geçersiz
SözBelirli 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'lerin anlamının içerik türüne bağlı olduğunu ve tüm içerik türlerinin ikincil URL'leri 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çıklamalarına bakın.
-
-
-
returns
Promise<object>
Chrome 96 ve sonraki sürümlerSözler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
-
-
getResourceIdentifiers
geçersiz
SözgetResourceIdentifiers
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
Promise<ResourceIdentifier[]>
Chrome 96 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geri çağırma işlevleri, geriye dönük uyumluluk için sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
-
-
grup
geçersiz
SözYeni bir içerik ayarı kuralı uygular.
set
işlevi şu şekilde görünür:(details: object, callback?: function) => {...}
-
ayrıntılar
nesne
-
primaryPattern
dize
Birincil URL'nin kalıbı. Kalıp biçimi hakkında ayrıntılı bilgi için İçerik Ayarı Kalıpları başlıklı makaleyi inceleyin.
-
resourceIdentifier
ResourceIdentifier isteğe bağlı
İçerik türünün kaynak tanımlayıcısı.
-
kapsam
Kapsam isteğe bağlı
Ayarı ayarlama yeri (varsayılan: normal).
-
secondaryPattern
dize isteğe bağlı
İkincil URL'nin kalıbı. Varsayılan olarak tüm URL'lerle eşleşir. Bir kalıbın biçimiyle ilgili ayrıntılar için İçerik Ayarı Kalıpları konusuna 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
Promise<void>
Chrome 96 ve sonraki sürümlerSözler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırma işlevleri sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
-
CookiesContentSetting
Enum
"allow"
"session_only"
FullscreenContentSetting
Değer
ImagesContentSetting
Enum
"allow"
"block"
JavascriptContentSetting
Enum
"allow"
"block"
LocationContentSetting
Enum
"allow"
"block"
MicrophoneContentSetting
Enum
"allow"
"block"
MouselockContentSetting
Değer
MultipleAutomaticDownloadsContentSetting
Enum
"allow"
"block"
NotificationsContentSetting
Enum
"allow"
"block"
PluginsContentSetting
Değer
"block"
PopupsContentSetting
Enum
"allow"
"block"
PpapiBrokerContentSetting
Değer
ResourceIdentifier
Kaynak tanımlayıcı kullanan tek içerik türü contentSettings.plugins
'dir. Daha fazla bilgi için Kaynak Tanımlayıcıları başlıklı makaleyi inceleyin.
Özellikler
-
açıklama
dize isteğe bağlı
Kaynağın kullanıcılar tarafından okunabilen açıklaması.
-
id
dize
Belirli bir içerik türünün kaynak tanımlayıcısı.
Scope
ContentSetting'in kapsamı. Aşağıdakilerden biri:
regular
: Normal profil için ayar (başka bir yerde geçersiz kılınmadığı takdirde gizli profil tarafından devralınır),
incognito\_session\_only
: Gizli profil için ayar (yalnızca gizli oturum sırasında ayarlanabilir ve gizli oturum sona erdiğinde silinir (normal ayarları geçersiz kılar)).
Enum
"regular"
"incognito_session_only"
Özellikler
automaticDownloads
Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin verilip verilmeyeceği. allow
: Sitelerin otomatik olarak birden fazla dosya indirmesine izin ver,
block
: Sitelerin otomatik olarak birden fazla dosya indirmesine izin verme,
ask
: Bir site ilk dosyadan sonra otomatik olarak dosya indirmek istediğinde sor.
Varsayılan değer ask
'tir.
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ğini belirtir. 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.
camera
Sitelerin kameraya erişmesine izin verilip verilmeyeceğini belirtir. Aşağıdakilerden birini seçin:
allow
: Sitelerin kameraya erişmesine izin ver,
block
: Sitelerin kameraya erişmesine izin verme,
ask
: Sitenin kameraya erişmek istediğinde sor.
Varsayılan değer ask
'tir.
Birincil URL, kamera erişimi isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
NOT: Her iki kalıp da '' ise 'izin ver' 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, 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. Aşağıdakilerden biri:
allow
: Sitelerin gelişmiş pano özelliklerini kullanmasına izin ver,
block
: Sitelerin gelişmiş pano özelliklerini kullanmasına izin verme,
ask
: Siteler gelişmiş pano özelliklerini kullanmak istediğinde sor.
Varsayılan değer ask
'tir.
Birincil URL, panoya erişim isteğinde bulunan dokümanın URL'sidir. İkincil URL kullanılmaz.
Tür
cookies
Çerezlerin ve diğer yerel verilerin web siteleri tarafından ayarlanmasına izin verilip verilmeyeceğini belirtir. Şunlardan biri
allow
: Çerezleri kabul et,
block
: Çerezleri engelle,
session\_only
: Çerezleri yalnızca mevcut 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.
fullscreen
Kullanımdan kaldırıldı. Artık herhangi bir etkisi yoktur. Tam ekran izni artık tüm sitelere otomatik olarak veriliyor. Değer her zaman allow
olur.
Tür
images
Resimlerin gösterilip gösterilmeyeceği. Şunlardan biri
allow
: Resimleri göster,
block
: Resimleri gösterme.
Varsayılan değer allow
'tir.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL, resmin URL'sidir.
javascript
JavaScript'in çalışıp çalışmayacağı. allow
: JavaScript çalıştırın,
block
: JavaScript çalıştırmayın seçeneklerinden birini belirleyin.
Varsayılan değer allow
'tir.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
location
Coğrafi konuma izin verilip verilmeyeceği. Aşağıdakilerden birini seçin:
allow
: Sitelerin fiziksel konumunuzu izlemesine izin verin,
block
: Sitelerin fiziksel konumunuzu izlemesine izin vermeyin,
ask
: Sitelerin fiziksel konumunuzu izlemesine izin vermeden önce isteyin.
Varsayılan değer ask
'tir.
Birincil URL, konum verilerini isteyen dokümanın URL'sidir. İkincil URL, üst düzey çerçevenin URL'sidir (istek URL'sinden farklı olabilir veya olmayabilir).
microphone
Sitelerin mikrofona erişmesine izin verilip verilmeyeceğini belirler. Ş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: Her iki kalıp da "'" ise "izin ver" 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
olur.
notifications
Sitelerin masaüstü bildirimleri göstermesine izin verilip verilmeyeceğini belirtir. allow
: Sitelerin masaüstü bildirimleri göstermesine izin ver,
block
: Sitelerin masaüstü bildirimi göstermesine izin verme,
ask
: Site masaüstü bildirimleri göstermek istediğinde sor.
Varsayılan değer ask
'tir.
Birincil URL, bildirimi göstermek isteyen dokümanın URL'sidir. İkincil URL kullanılmaz.
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
olur. set()
ve clear()
çağrıları yoksayılır.
Tür
popups
Sitelerin pop-up göstermesine izin verilip verilmeyeceğini belirtir. Şunlardan biri:
allow
: Sitelerin pop-up göstermesine izin ver,
block
: Sitelerin pop-up 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
olur. set()
ve clear()
numaralı telefona yapılan çağrılar yoksayılacak.