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

  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'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:

  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 bu değer kadar yüksek değildir.
  3. 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:

Ö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>

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

Chrome 113 ve sonraki sürümler

Enum

"allow"

"block"

CameraContentSetting

Chrome 46 ve sonraki sürümler

Enum

"allow"

"block"

ClipboardContentSetting

Chrome 121 ve sonraki sürümler

Enum

"allow"

"block"

"ask"

ContentSetting

Özellikler

  • temizle

    geçersiz

    Promise

    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

      işlev isteğe bağlı

      callback parametresi şu şekilde görünür:

      () => void

    • returns

      Promise<void>

      Chrome 96 ve sonraki sürümler

      Sö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öz

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

      Sö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öz

    getResourceIdentifiers 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&lt;ResourceIdentifier[]&gt;

      Chrome 96 ve sonraki sürümler

      Vaatler, 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ö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ç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&#39;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ümler

      Sö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

Chrome 44 ve sonraki sürümler

Enum

"allow"

"session_only"

FullscreenContentSetting

Chrome 44 ve sonraki sürümler

Değer

ImagesContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

JavascriptContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

LocationContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

MicrophoneContentSetting

Chrome 46 ve sonraki sürümler

Enum

"allow"

"block"

MouselockContentSetting

Chrome 44 ve sonraki sürümler

Değer

MultipleAutomaticDownloadsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

NotificationsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

PluginsContentSetting

Chrome 44 ve sonraki sürümler

Değer

"block"

PopupsContentSetting

Chrome 44 ve sonraki sürümler

Enum

"allow"

"block"

PpapiBrokerContentSetting

Chrome 44 ve sonraki sürümler

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

Chrome 44 ve sonraki sürümler

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

Chrome 113 ve sonraki sürümler

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

Chrome 46 ve sonraki sürümler

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

Chrome 121 ve sonraki sürümler

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.

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.

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

Chrome 46 ve sonraki sürümler

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.

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.

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.

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.