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 olarak ifade etmek gerekirse içerik ayarları, Chrome'un davranışını global 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 joker karakter (/*
) olmalıdır.file
URL'ler için yol tamamen belirtilmeli ve joker karakterler 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.
Kalıp önceliği
Belirli bir site için birden fazla içerik ayarı kuralı geçerli olduğunda, daha ayrıntılı modele sahip kural öncelikli olur.
Ö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)
Bir kalıbın ne kadar spesifik olduğunu etkileyen üç tür joker karakter vardır:
- Bağlantı noktasındaki joker karakterler (ör.
https://www.example.com:*/*
) - Şemadaki joker karakterler (örneğin,
*://www.example.com:123/*
) - Ana makine adındaki joker karakterler (örneğin,
https://*.example.com:123/*
)
Bir kalıp bir bölümde başka bir kalıptan daha spesifikken bir diğer bölümde daha az spesifikse farklı bölümler şu sırayla kontrol edilir: ana makine adı, şema, bağlantı noktası. Örneğin, aşağıdaki kalıplar önceliğe göre sıralanır:
https://www.example.com:*/*
Ana makine adını ve şemayı belirtir.*:/www.example.com:123/*
Ana makine adını belirtse de şemayı belirtmediği için çok yüksek değil.https://*.example.com:123/*
Bağlantı noktasını ve şemayı belirtse de ana makine adında joker karakter bulunduğu için daha düşük olur.
Birincil ve ikincil kalıplar
Hangi içerik ayarının uygulanacağına karar verirken dikkate alınan URL, içerik türüne bağlıdır.
Örneğin, contentSettings.notifications
ayarları, çok amaçlı adres çubuğunda gösterilen URL'ye dayanır. Bu URL'ye "birincil" URL denir.
Bazı içerik türleri ek URL'leri dikkate alabilir. Örneğin, bir sitenin contentSettings.cookies
ayarlamasına izin verilip verilmeyeceğine, HTTP isteğinin (bu durumda birincil URL'dir) URL'sine ve çok amaçlı adres çubuğunda gösterilen URL'ye ("ikincil" URL denir) göre karar verilir.
Birden fazla kuralın birincil ve ikincil kalıpları varsa daha ayrıntılı birincil kalıbı olan kural öncelikli olur. Birden fazla kural aynı birincil kalıba sahipse daha belirli ikincil kalıba sahip olan kural öncelikli olur. Örneğin, aşağıdaki birincil/ikincil kalıp çiftleri listesi öncelik sırasına 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ı, 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ını destekleyen tek içerik türü contentSettings.plugins
'tir. Burada, kaynak tanımlayıcısı belirli bir eklentiyi tanımlar. İçerik ayarları uygulanırken önce
söz konusu eklentinin ayarları kontrol edilir. Söz konusu eklenti için herhangi bir ayar bulunamazsa eklentilere ilişkin genel içerik ayarları işaretlenir.
Örneğin, bir içerik ayarı kuralının kaynak tanımlayıcısı adobe-flash-player
ve <all_urls>
kalıbı varsa bu kalıp daha spesifik olsa bile kaynak tanımlayıcısı ve kalıbı https://www.example.com/*
olmayan kurala göre önceliklidir.
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 makinesindeki yüklü eklenti grubuyla 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"
CameraContentSetting
Enum
"allow"
ClipboardContentSetting
Enum
"allow"
ContentSetting
Özellikler
-
clear
void
SözBu 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
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
-
returns
Promise<void>
Chrome 96 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar 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.
-
-
get
void
SözBelirli 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 bir oturum için içerik ayarlarının kontrol edilip edilmeyeceği. (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üne ilişkin daha spesifik bir tanımlayıcı.
-
secondaryUrl
string 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
Functions (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 tek tek ContentSetting nesnelerinin açıklamasına bakın.
-
-
-
returns
Promise<object>
Chrome 96 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar 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
void
SözgetResourceIdentifiers
işlevi şu şekilde görünür:(callback?: function) => {...}
-
geri çağırma
Functions (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ünde kaynak tanımlayıcıları kullanılmıyorsa
undefined
.
-
-
returns
Promise<ResourceIdentifier[]>
Chrome 96 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar 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.
-
-
ayarla
void
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çimiyle 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
string isteğe bağlı
İkincil URL kalıbı. Varsayılan olarak tüm URL'lerle eşleşir. Kalıp biçimiyle ilgili ayrıntılar için İçerik Ayarı Kalıpları bölümüne bakın.
-
ayarlama
Tümü
Bu kural tarafından uygulanan ayar. Olası değerler için tek tek ContentSetting nesnelerinin açıklamasına bakın.
-
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
-
returns
Promise<void>
Chrome 96 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar 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
"allow"
ImagesContentSetting
Enum
"allow"
JavascriptContentSetting
Enum
"allow"
LocationContentSetting
Enum
"allow"
MicrophoneContentSetting
Enum
"allow"
MouselockContentSetting
Değer
"allow"
MultipleAutomaticDownloadsContentSetting
Enum
"allow"
NotificationsContentSetting
Enum
"allow"
PluginsContentSetting
Değer
PopupsContentSetting
Enum
"allow"
PpapiBrokerContentSetting
Değer
ResourceIdentifier
Kaynak tanımlayıcıları kullanan tek içerik türü contentSettings.plugins
'tir. Daha fazla bilgi için Kaynak Tanımlayıcıları bölümüne bakın.
Özellikler
-
açıklama
string isteğe bağlı
Kaynağın okunabilir bir açıklaması.
-
id
dize
Belirli bir içerik türünün kaynak tanımlayıcısı.
Scope
ContentSetting kapsamı. regular
değerlerinden biri: Normal profil ayarı (başka bir yerde geçersiz kılınmadığı takdirde 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 (normal ayarları geçersiz kılan) gizli profil ayarıdır.
Enum
"regular" (normal)
Özellikler
automaticDownloads
Sitelerin otomatik olarak birden fazla dosya indirmesine izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin ver,
block
: Sitelerin otomatik olarak birden fazla dosya indirmesine izin verme,
ask
: Siteler ilk dosyadan sonra dosyaları otomatik olarak indirmek istediğinde sorulsun.
ask
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
autoVerify
Sitelerin Private State Tokens API 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 kullanılmalıdı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
: Siteler 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: Her iki model de "'" ise "izin ver" ayarı geçerli olmaz.
clipboard
Sitelerin, Async Clipboard API'sinin gelişmiş özellikleriyle panoya erişmesine izin verilip verilmeyeceği. "Gelişmiş" özellikler, bir kullanıcı hareketinden sonra yerleşik biçimleri yazmanın yanı sıra okuma yeteneği, özel biçimler yazabilme ve kullanıcı hareketi olmadan yazabilme dışında her şeyi 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
: Siteler gelişmiş pano özelliklerini kullanmak istediğinde sorulsun.
ask
varsayılandır.
Birincil URL, pano erişimi isteğinde bulunan dokümanın URL'sidir. İkincil URL kullanılmaz.
cookies
Web siteleri tarafından çerezlerin ve diğer yerel verilerin 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 eder.
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.
images
Resimlerin gösterilip gösterilmeyeceği. Ş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.
javascript
JavaScript'in çalıştırılıp çalıştırılmayacağı. Şunlardan biri:
allow
: JavaScript'i çalıştır,
block
: JavaScript çalıştırmayın.
allow
varsayılandır.
Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.
location
Coğrafi Konuma izin verilip verilmeyeceği. Şunlardan biri:
allow
: Sitelerin fiziksel konumumu izlemesine izin verme,
block
: Sitelerin fiziksel konumumu izlemesine izin verme,
ask
: Sitelerin fiziksel konumumu izlemesine izin vermeden önce bunu sor.
ask
varsayılandır.
Birincil URL, konum verisi isteğinde bulunan dokümanın URL'sidir. İkincil URL, üst düzey çerçevenin URL'sidir (istekte bulunan URL'den farklı olabilir veya olmayabilir).
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 isteğinde bulunan dokümanın URL'sidir. İkincil URL kullanılmaz.
NOT: Her iki model de "'" ise "izin ver" ayarı geçerli olmaz.
mouselock
Kullanımdan kaldırıldı. Artık herhangi bir etkisi yoktur. 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ği. Şunlardan biri:
allow
: Sitelerin masaüstü bildirimleri göstermesine izin ver,
block
: Sitelerin masaüstü bildirimi göstermesine izin verme,
ask
: Siteler masaüstü bildirimleri göstermek istediğinde bana sorulur.
ask
varsayılandır.
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ığı için bu iznin artık bir etkisi yok. Değer her zaman block
olur. set()
ve clear()
numaralı telefona yapılan aramalar yoksayılacak.
popups
Sitelerin pop-up göstermesine izin verilip verilmeyeceği. Ş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.
unsandboxedPlugins
Kullanımdan kaldırıldı. Daha önce sitelerin eklentileri korumalı alana alınmadan çalıştırmasına izin verilip verilmeyeceği kontrol ediliyordu, ancak Chrome 88'de Flash aracısı işlemi kaldırıldığında bu iznin artık hiçbir etkisi yok. Değer her zaman block
olur. set()
ve clear()
numaralı telefona yapılan aramalar yoksayılacak.