chrome.contentSettings

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 ve ftp 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:

  1. https://www.example.com/*
  2. https://*.example.com/* (example.com ve tüm alt alan adlarıyla eşleşen)
  3. <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:

  1. https://www.example.com:*/* Ana makine adını ve şemayı belirtir.
  2. *:/www.example.com:123/* Ana makine adını belirtse de şemayı belirtmediği için çok yüksek değil.
  3. 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:

ÖncelikBirincil kalıpİkincil kalıp
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>

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

Chrome 113 ve sonraki sürümler

Enum

"allow"

CameraContentSetting

Chrome 46 ve sonraki sürümler

Enum

"allow"

ClipboardContentSetting

Chrome 121 ve sonraki sürümler

Enum

"allow"

ContentSetting

Özellikler

  • clear

    void

    Söz

    Bu 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ümler

      Vaatler, 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öz

    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,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ümler

      Vaatler, 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öz

    getResourceIdentifiers 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
      Chrome 96 ve sonraki sürümler

      Vaatler, 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öz

    Yeni 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ümler

      Vaatler, 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

Chrome 44 ve sonraki sürümler

Enum

"allow"

"session_only"

FullscreenContentSetting

Chrome 44 ve sonraki sürümler

Değer

"allow"

ImagesContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

JavascriptContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

LocationContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

MicrophoneContentSetting

Chrome 46 ve sonraki sürümler

Enum

"allow"

MouselockContentSetting

Chrome 44 ve sonraki sürümler

Değer

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

NotificationsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

PluginsContentSetting

Chrome 44 ve sonraki sürümler

Değer

PopupsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

PpapiBrokerContentSetting

Chrome 44 ve sonraki sürümler

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

Chrome 44 ve sonraki sürümler

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

Chrome 113 ve sonraki sürümler

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

Chrome 46 ve sonraki sürümler

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

Chrome 121 ve sonraki sürümler

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

Chrome 46 ve sonraki sürümler

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.