chrome.contentSettings

Açıklama

Web sitelerinin çerezler, JavaScript ve eklentiler gibi özellikleri kullanıp kullanamayacaklarını belirleyen 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 ve ftp URL'leri için yol, joker karakter (/*) olmalıdır. file URL'leri için yol tamamen belirtilmeli ve joker karakter içermemelidir.
  • İçerik ayarı kalıpları, eşleşme kalıplarından farklı olarak 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ı 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çerliyse daha spesifik kalıba sahip olan kural önceliklidir.

Örneğin, aşağıdaki kalıplar önceliğe göre sıralanır:

  1. https://www.example.com/*
  2. https://*.example.com/* (example.com ve tüm alt alan adlarıyla eşleşir)
  3. <all_urls> (her URL ile eşleşir)

Üç tür joker karakter, bir kalıbın ne kadar spesifik olduğunu etkiler:

  • Bağlantı noktasındaki joker karakterler (örneğin, https://www.example.com:*/*)
  • Şemadaki joker karakterler (örneğin, *://www.example.com:123/*)
  • Ana makine adındaki 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 ş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:

  1. https://www.example.com:*/* Ana makine adını ve şemayı belirtir.
  2. *:/www.example.com:123/* Ana makine adını belirtmesine rağmen şemayı belirtmediği için o kadar yüksek değil.
  3. https://*.example.com:123/* Bağlantı noktası ve şema belirtilse de ana makine adında joker karakter olduğu için daha düşüktür.

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ı, çok amaçlı adres çubuğunda gösterilen URL'ye göre belirlenir. 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ği, 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 belirlenir.

Birden fazla kuralda birincil ve ikincil kalıplar varsa daha belirgin birincil kalıba sahip kural önceliklidir. Birden fazla kural aynı birincil kalıba sahipse daha spesifik ikincil kalıba sahip olan kural önceliklidir. Örneğin, aşağıdaki birincil/ikincil desen çiftleri listesi önceliğe göre sıralanmıştır:

ÖncelikBirincil desenİkincil desen
1https://www.moose.com/*,https://www.wombat.com/*
2https://www.moose.com/*,<all_urls>
3<all_urls>,https://www.wombat.com/*
4<all_urls>,<all_urls>

İkincil desenler, resim içerik ayarı için 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 belirli eklentinin ayarları kontrol edilir. Belirli bir eklenti için ayar bulunamazsa eklentilerle ilgili genel içerik ayarları kontrol edilir.

Örneğin, bir içerik ayarı kuralı adobe-flash-player kaynak tanımlayıcısına ve <all_urls> kalıbına sahipse bu kural, kalıp daha spesifik olsa bile kaynak tanımlayıcısı olmayan ve https://www.example.com/* kalıbına sahip bir kurala göre öncelikli olur.

contentSettings.ContentSetting.getResourceIdentifiers() yöntemini çağırarak bir içerik türü için kaynak tanımlayıcılarının listesini alabilirsiniz. Döndürülen liste, kullanıcının makinesinde yüklü eklentilerle değişebilir ancak Chrome, eklenti güncellemeleri boyunca tanımlayıcıları sabit tutmaya çalışır.

Örnekler

Bu API'yi denemek için chrome-extension-samples deposundan contentSettings API örneğini yükleyin.

Türler

AutoVerifyContentSetting

Chrome 113 veya daha yeni bir sürüm

Enum

"allow"

"block"

CameraContentSetting

Chrome 46 veya daha yeni bir sürüm

Enum

"allow"

"block"

"ask"

ClipboardContentSetting

Chrome 121 ve sonraki sürümler

Enum

"allow"

"block"

"ask"

ContentSetting

Özellikler

  • temizle

    geçersiz

    Bu uzantı tarafından ayarlanan tüm içerik ayarı kurallarını temizleyin.

    clear işlevi şu şekilde görünür:

    (details: object) => {...}

    • ayrıntılar

      nesne

      • kapsam

        Kapsam isteğe bağlı

        Ayarı temizleyeceğiniz yer (varsayılan: normal).

    • returns

      Promise<void>

      Chrome 96 veya daha yeni bir sürüm
  • get

    geçersiz

    Belirli bir URL çifti için geçerli içerik ayarını alır.

    get işlevi şu şekilde görünür:

    (details: object) => {...}

    • ayrıntılar

      nesne

      • gizli

        boolean isteğe bağlı

        Gizli oturum için içerik ayarlarının kontrol edilip edilmeyeceği. (varsayılan değer false)

      • 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ürlerinde ikincil URL'lerin kullanılmadığını unutmayın.

    • returns

      Promise<object>

      Chrome 96 veya daha yeni bir sürüm
  • getResourceIdentifiers

    geçersiz

    getResourceIdentifiers işlevi şu şekilde görünür:

    () => {...}

  • grup

    geçersiz

    Yeni bir içerik ayarı kuralı uygular.

    set işlevi şu şekilde görünür:

    (details: object) => {...}

    • 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ı 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ı nerede ayarlayacağınız (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ıbın 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 tek tek ContentSetting nesnelerinin açıklamasına bakın.

    • returns

      Promise<void>

      Chrome 96 veya daha yeni bir sürüm

CookiesContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

"session_only"

FullscreenContentSetting

Chrome 44 veya daha yeni bir sürüm

Değer

"allow"

ImagesContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

JavascriptContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

LocationContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

"ask"

MicrophoneContentSetting

Chrome 46 veya daha yeni bir sürüm

Enum

"allow"

"block"

"ask"

MouselockContentSetting

Chrome 44 veya daha yeni bir sürüm

Değer

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

"ask"

NotificationsContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

"ask"

PluginsContentSetting

Chrome 44 veya daha yeni bir sürüm

Değer

"block"

PopupsContentSetting

Chrome 44 veya daha yeni bir sürüm

Enum

"allow"

"block"

PpapiBrokerContentSetting

Chrome 44 veya daha yeni bir sürüm

Değer

"block"

ResourceIdentifier

Kaynak tanımlayıcılarını 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 okunabilir açıklaması.

  • id

    dize

    Belirli içerik türünün kaynak tanımlayıcısı.

Scope

Chrome 44 veya daha yeni bir sürüm

ContentSetting'in kapsamı. Şunlardan biri: regular: 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 gizli profil ayarı (normal ayarları geçersiz kılar).

Enum

"regular"

"incognito_session_only"

SoundContentSetting

Beklemede

Enum

"allow"

"block"

Özellikler

automaticDownloads

Sitelerin birden fazla dosyayı otomatik olarak indirmesine izin verilip verilmeyeceği. Şunlardan birini seçin: 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. Varsayılan değer ask'dır. Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.

autoVerify

Chrome 113 veya daha yeni bir sürüm

Sitelerin Private State Tokens API'yi kullanmasına izin verilip verilmeyeceği. Şunlardan birini seçin: allow: Sitelerin Private State Tokens API'yi kullanmasına izin verin, block: Sitelerin Private State Tokens API'yi kullanmasını engelleyin. Varsayılan değer allow'dır. set() çağrılırken birincil URL kalıbı <all_urls> olmalıdır. İkincil URL kullanılmaz.

camera

Chrome 46 veya daha yeni bir sürüm

Sitelerin kameraya erişmesine izin verilip verilmeyeceği. Şunlardan birini seçin: allow: Sitelerin kameraya erişmesine izin verin, block: Sitelerin kameraya erişmesine izin verme, ask: Bir site kameraya erişmek istediğinde sorun. Varsayılan değer ask'dır. Birincil URL, kamera erişimi isteyen belgenin URL'sidir. İkincil URL kullanılmaz. NOT: Her iki kalıp da "<all_urls>" ise"izin ver" ayarı geçerli değildir.

clipboard

Chrome 121 ve sonraki sürümler

Sitelerin, Async Clipboard API'nin gelişmiş özellikleri aracılığıyla panoya erişmesine izin verilip verilmeyeceği. "Gelişmiş" özellikler, kullanıcı hareketi sonrasında yerleşik biçimler yazma dışında her şeyi (ör. okuma, özel biçimler yazma ve kullanıcı hareketi olmadan yazma) içerir. Şunlardan birini seçin: 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. Varsayılan değer ask'dır. Birincil URL, pano erişimi isteyen belgenin URL'sidir. İkincil URL kullanılmaz.

cookies

Web sitelerinin çerezler ve diğer yerel veriler ayarlamasına izin verilip verilmeyeceği. 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'dı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 siteler için 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. Varsayılan değer allow'dı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ın, block: JavaScript'i çalıştırmayın. Varsayılan değer allow'dır. Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.

location

Coğrafi konumun etkinleştirilip etkinleştirilmeyeceği. Şunlardan biri: allow: Sitelerin fiziksel konumunuzu izlemesine izin verin, block: Sitelerin fiziksel konumunuzu izlemesine izin vermeyin, ask: Sitelerin fiziksel konumunuzu izlemesine izin vermeden önce sorun. Varsayılan değer ask'dır. Birincil URL, konum verilerini isteyen belgenin URL'sidir. İkincil URL, üst düzey çerçevenin URL'sidir (istekte bulunan URL'den farklı olabilir veya olmayabilir).

microphone

Chrome 46 veya daha yeni bir sürüm

Sitelerin mikrofona erişmesine izin verilip verilmeyeceği. Şunlardan birini seçin: allow: Sitelerin mikrofona erişmesine izin ver, block: Sitelerin mikrofona erişmesine izin verme, ask: Bir site mikrofona erişmek istediğinde sor. Varsayılan değer ask'dır. Birincil URL, mikrofon erişimi isteyen belgenin URL'sidir. İkincil URL kullanılmaz. NOT: Her iki kalıp da "<all_urls>" ise"izin ver" ayarı geçerli değildir.

mouselock

Kullanımdan kaldırıldı. Artık herhangi bir etkisi yoktur. Fare kilitleme 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. Aşağıdaki seçeneklerden birini belirleyin: allow: Sitelerin masaüstü bildirimleri göstermesine izin ver, block: Sitelerin masaüstü bildirimleri göstermesine izin verme, ask: Bir site masaüstü bildirimi göstermek istediğinde sor. Varsayılan değer ask'dır. 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ığından bu iznin artık herhangi bir etkisi yoktur. Değer her zaman block olur. set() ve clear() ile ilgili aramalar yoksayılır.

popups

Sitelerin pop-up göstermesine izin verilip verilmeyeceği. Şunlardan biri: allow: Sitelerin pop-up göstermesine izin ver, allow: Sitelerin pop-up göstermesine izin verme.block Varsayılan değer block'dır. Birincil URL, üst düzey çerçevenin URL'sidir. İkincil URL kullanılmaz.

unsandboxedPlugins

Kullanımdan kaldırıldı. Bu politika daha önce sitelerin korumalı alan dışında eklentiler çalıştırmasına izin verilip verilmeyeceğini kontrol ediyordu. Ancak Chrome 88'de Flash aracısı işlemi kaldırıldığından bu iznin artık bir etkisi yoktur. Değer her zaman block olur. set() ve clear() ile ilgili aramalar yoksayılır.