Açıklama
Web sitelerinin çerez, JavaScript ve eklenti gibi özellikleri kullanıp kullanamayacağını kontrol eden ayarları değiştirmek için chrome.contentSettings
API'yi 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 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 alanlarını belirtir. İçerik ayarı kalıplarının söz dizimi, birkaç fark dışında eşleşme kalıplarıyla 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 siteleriyle eşleşir. Bağlantı noktası numarası belirtilmezse kalıp tüm bağlantı noktalarıyla eşleşir.
Desen ö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 ile eşleşen)
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:*/*
) - Şemada joker karakterler (örneğin
*://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, başka bir bölümde ise 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 o kadar yüksek değil.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 desenler
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 denir.
Bazı içerik türleri ek URL'leri hesaba katabilir. Örneğin, bir sitenin contentSettings.cookies
ayarlayabilmesine, HTTP isteğinin URL'sine (bu durumda birincil URL) ve çok amaçlı adres çubuğunda gösterilen URL'ye ("ikincil" URL olarak adlandırılır) göre karar verilir.
Birden fazla kuralın birincil ve ikincil kalıbı varsa daha spesifik birincil kalıba sahip kural önceliklidir. Aynı birincil kalıba sahip birden fazla kural varsa daha spesifik ikincil kalıba sahip kural önceliklidir. Ö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çerik ayarı için ikincil desenler desteklenmez.
Kaynak tanımlayıcıları
Kaynak tanımlayıcılar, bir 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 eklenti için ayar bulunamazsa eklentiler için 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 bir içerik türünün 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"
"ask"
ClipboardContentSetting
Enum
"allow"
"block"
"ask"
ContentSetting
Özellikler
-
temizle
geçersiz
PromiseBu uzantı tarafından ayarlanan 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ı temizleyeceğiniz 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 üzeri 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
PromiseBelirli bir URL çifti için geçerli içerik ayarını alır.
get
işlevi şu şekilde 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 belirtir. (varsayılan olarak 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ıdır.
-
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'ler 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
T
İçerik ayarı. Olası değerler için ContentSetting nesnelerinin açıklamalarına bakın.
-
-
-
returns
Promise<object>
Chrome 96 ve üzeri 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.
-
-
getResourceIdentifiers
geçersiz
PromisegetResourceIdentifiers
işlevi şu şekilde 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ünün kaynak tanımlayıcılarının listesi veya bu içerik türü kaynak tanımlayıcı kullanmıyorsa
undefined
.
-
-
returns
Promise<ResourceIdentifier[]>
Chrome 96 ve üzeri 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.
-
-
grup
geçersiz
PromiseYeni 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. Kalıp biçimi hakkında ayrıntılı bilgi için İçerik Ayarı Kalıpları başlıklı makaleyi inceleyin.
-
ayarlama
herhangi
Bu kural tarafından uygulanan ayar. Olası değerler için ContentSetting nesnelerinin açıklamaları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 üzeri 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.
-
CookiesContentSetting
Enum
"allow"
"block"
"session_only"
FullscreenContentSetting
Değer
"allow"
ImagesContentSetting
Enum
"allow"
"block"
JavascriptContentSetting
Enum
"allow"
"block"
LocationContentSetting
Enum
"allow"
"block"
"ask"
MicrophoneContentSetting
Enum
"allow"
"block"
"ask"
MouselockContentSetting
Değer
"allow"
MultipleAutomaticDownloadsContentSetting
Enum
"allow"
"block"
"ask"
NotificationsContentSetting
Enum
"allow"
"block"
"ask"
PluginsContentSetting
Değer
"block"
PopupsContentSetting
Enum
"allow"
"block"
PpapiBrokerContentSetting
Değer
"block"
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. Aşağıdakilerden birini seçin:
allow
: Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin ver,
block
: Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin verme,
ask
: Sitenin ilk dosyanın ardından dosyaları otomatik olarak indirmek isteyip istemediğini 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. Aşağıdakilerden biri:
allow
: Sitelerin Private State Tokens API'yi kullanmasına izin ver,
block
: Sitelerin Private State Tokens API'yi kullanmasını engelle.
Varsayılan değer allow
'tir.
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.
clipboard
Sitelerin, Async Clipboard API'nin gelişmiş özellikleri aracılığıyla panoya erişmesine izin verilip verilmeyeceği. "Gelişmiş" özellikler, kullanıcı hareketinden sonra yerleşik biçimler yazmanın yanı sıra okuma, özel biçimler yazma ve kullanıcı hareketi olmadan yazma gibi tüm özellikleri 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.
cookies
Çerezlerin ve diğer yerel verilerin web siteleri tarafından ayarlanmasına izin verilip verilmeyeceğini belirtir. Aşağıdakilerden biri:
allow
: Çerezleri kabul et,
block
: Çerezleri engelle,
session\_only
: Çerezleri yalnızca mevcut oturum için kabul et.
Varsayılan değer allow
'tir.
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 siteler için otomatik olarak verilmektedir. Değer her zaman allow
olur.
images
Resimlerin gösterilip gösterilmeyeceği. allow
: Resimleri göster,
block
: Resimleri gösterme seçeneklerinden birini belirleyin.
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 belgenin 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 belirtir. Aşağıdakilerden birini seçin:
allow
: Sitelerin mikrofona erişmesine izin ver,
block
: Sitelerin mikrofona erişmesine izin verme,
ask
: Siteler mikrofona erişmek istediğinde sor.
Varsayılan değer ask
'tir.
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.
mouselock
Kullanımdan kaldırıldı. Artık herhangi bir etkisi yoktur. Fare kilidi izni artık tüm siteler için otomatik olarak verilmektedir. Değer her zaman allow
olur.
notifications
Sitelerin masaüstü bildirimleri göstermesine izin verilip verilmeyeceğini belirtir. Aşağıdakilerden birini seçin:
allow
: Sitelerin masaüstü bildirimleri göstermesine izin ver,
block
: Sitelerin masaüstü bildirimleri 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 belgenin URL'sidir. İkincil URL kullanılmaz.
plugins
Kullanımdan kaldırıldı. Chrome 88'de Flash desteği kaldırıldığı için bu iznin artık hiçbir etkisi yoktur. Değer her zaman block
olur. set()
ve clear()
çağrıları yoksayılır.
popups
Sitelerin pop-up göstermesine izin verilip verilmeyeceğini belirtir. Aşağıdakilerden biri:
allow
: Sitelerin pop-up göstermesine izin ver,
block
: Sitelerin pop-up göstermesine izin verme.
Varsayılan değer block
'tir.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
unsandboxedPlugins
Kullanımdan kaldırıldı. Önceden, sitelerin eklentileri korumalı olmayan bir ortamda çalıştırmasına izin verilip verilmeyeceğini kontrol ediyordu. Ancak Chrome 88'de Flash aracısı işlemi kaldırıldığı için bu iznin artık bir etkisi yoktur. Değer her zaman block
olur. set()
ve clear()
çağrıları yoksayılır.