chrome.declarativeNetRequest

Açıklama

chrome.declarativeNetRequest API, bildirim temelli kurallar belirleyerek ağ isteklerini engellemek veya değiştirmek için kullanılır. Bu sayede uzantılar, ağ isteklerine müdahale edip içeriklerini görüntülemeden değişiklik yapabilir, böylece daha fazla gizlilik sağlar.

İzinler

declarativeNetRequest
declarativeNetRequestWithHostAccess

"declarativeNetRequest" ve "declarativeNetRequestWithHostAccess" izinleri aynı özellikleri sağlar. Aralarındaki fark, izinlerin istendiği veya verildiği zamanlardır.

"declarativeNetRequest"
Yükleme sırasında bir izin uyarısı tetikler ancak allow, allowAllRequests ve block kurallarına dolaylı erişim sağlar. Ana makinelere tam erişim isteğinde bulunmanıza gerek kalmaması için mümkün olduğunda bunu kullanın.
"declarativeNetRequestFeedback"
Paketlenmemiş uzantılar, özellikle getMatchedRules() ve onRuleMatchedDebug için hata ayıklama özelliklerini etkinleştirir.
"declarativeNetRequestWithHostAccess"
Yükleme sırasında izin uyarısı gösterilmez ancak bir ana makine üzerinde herhangi bir işlem yapmadan önce ana makine izinleri istemeniz gerekir. Bu, ek uyarı oluşturmadan ana makine izinlerine sahip bir uzantıda bildirim temelli net istek kurallarını kullanmak istediğinizde uygundur.

Kullanılabilirlik

Chrome 84 ve sonraki sürümler

Manifest

Daha önce açıklanan izinlere ek olarak, belirli kural kümesi türleri ve özellikle statik kural kümeleri, "declarative_net_request" manifest anahtarının tanımlanmasını gerektirir. Bu anahtar, "rule_resources" adlı tek anahtarlı bir sözlük olmalıdır. Bu anahtar, aşağıda gösterildiği gibi Ruleset türünde sözlükler içeren bir dizidir. ("Kurallaret" adının yalnızca bir dizi olduğu için manifest JSON dosyasında görünmediğini unutmayın.) Statik kural kümeleri bu dokümanın ilerleyen kısımlarında açıklanmaktadır.

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback",
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

Kavramlar ve kullanım

Bu API'yi kullanmak için bir veya daha fazla kural kümesi belirtin. Kural kümesi, bir kural dizisi içerir. Tek bir kural aşağıdakilerden birini yapar:

  • Bir ağ isteğini engelleyin.
  • Şemayı yeni sürüme geçirin (http'den https'ye).
  • Eşleşen engellenen kuralları iptal ederek isteğin engellenmesini önleyin.
  • Ağ isteğini yönlendirin.
  • İstek veya yanıt başlıklarını değiştirin.

Biraz farklı yöntemlerle yönetilen üç tür kural grubu vardır.

Dinamik
Tarayıcı oturumları ve uzantı yükseltmeleri arasında kalır ve uzantı kullanılırken JavaScript kullanılarak yönetilir.
Oturum
Tarayıcı kapandığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir. Oturum kuralları, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.
Statik
Uzantılar yüklendiğinde veya yeni sürüme geçirildiğinde paketlenir, yüklenir ve güncellenir. Statik kurallar, JSON biçimli kural dosyalarında depolanır ve manifest dosyasında listelenir.

Sonraki birkaç bölümde kural kümesi türleri ayrıntılı olarak açıklanmaktadır.

Dinamik ve oturum kapsamlı kural kümeleri

Dinamik ve oturum kural kümeleri, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.

  • Dinamik kurallar, tarayıcı oturumları arasında ve uzantı yükseltmelerinde korunur.
  • Oturum kuralları, tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir.

Bu kural kümesi türlerinden yalnızca bir tane vardır. Bir uzantı, kural sınırlarının aşılmaması şartıyla updateDynamicRules() ve updateSessionRules() çağrılarını yaparak bunlara dinamik olarak kural ekleyebilir veya mevcut kuralları kaldırabilir. Kural sınırları hakkında bilgi için Kural sınırları başlıklı makaleyi inceleyin. Bunun bir örneğini, kod örnekleri altında görebilirsiniz.

Statik kural kümeleri

Dinamik kurallar ile oturum kurallarından farklı olarak statik kurallar, bir uzantı yüklendiğinde veya yeni sürüme geçirildiğinde paketlenir, yüklenir ve güncellenir. Bunlar, yukarıda açıklandığı gibi "declarative_net_request" ve "rule_resources" anahtarları ve bir veya daha fazla Ruleset sözlüğü kullanılarak uzantıya belirtilen JSON biçiminde kural dosyalarında depolanır. Ruleset sözlüğü, kural dosyasının yolunu, dosyadaki kural kümesinin kimliğini ve kural kümesinin etkin mi yoksa devre dışı mı olduğunu içerir. Bir kural kümesini programatik olarak etkinleştirdiğinizde veya devre dışı bıraktığınızda son ikisi önemlidir.

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

Kural dosyalarını test etmek için uzantınızı paketlenmemiş halde yükleyin. Geçersiz statik kurallarla ilgili hatalar ve uyarılar yalnızca paketlenmemiş uzantılar için gösterilir. Paketli uzantılarda geçersiz statik kurallar yoksayılır.

Statik kuralları ve kural kümelerini etkinleştirin ve devre dışı bırakın

Çalışma zamanında hem bağımsız statik kurallar hem de tam statik kural grupları etkinleştirilebilir veya devre dışı bırakılabilir.

Etkinleştirilmiş statik kurallar ve kural kümeleri, tarayıcı oturumları genelinde korunur. Her ikisi de uzantı güncellemelerinde kalıcı olmaz. Yani, yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar güncellemeden sonra kullanılabilir.

Performansı korumak amacıyla, aynı anda etkinleştirilebilecek kuralların ve kural gruplarının sayısına yönelik sınırlar da vardır. Etkinleştirilebilecek ek kuralların sayısını kontrol etmek için getAvailableStaticRuleCount() numaralı telefonu arayın. Kural sınırları hakkında bilgi için Kural sınırları başlıklı makaleyi inceleyin.

Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateStaticRules() yöntemini çağırın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural kimliklerinin dizilerini içeren bir UpdateStaticRulesOptions nesnesi alır. Kimlikler, Ruleset sözlüğünün "id" anahtarı kullanılarak tanımlanır.

Statik rulesets etkinleştirmek veya devre dışı bırakmak için updateEnabledRulesets() çağrısı yapın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural gruplarının kimlik dizilerini içeren bir UpdateRulesetOptions nesnesi alır. Kimlikler, Ruleset sözlüğünün "id" anahtarı kullanılarak tanımlanır.

Kural oluşturma

Kural türü ne olursa olsun, aşağıda gösterildiği gibi dört alanla başlar. "id" ve "priority" anahtarları bir sayı alsa da "action" ve "condition" anahtarları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, "foo.com" öğesinden gelen ve alt dize olarak "abc" içeren tüm URL'lere yönelik tüm komut dosyası isteklerini engeller.

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

urlFilter eşleşen karakterleri

Bir kuralın "condition" anahtarı, belirli bir alan altındaki URL'ler üzerinde işlem yapmak için "urlFilter" anahtarına izin verir. Kalıp eşleştirme jetonlarını kullanarak kalıplar oluşturursunuz. Aşağıda birkaç örnek verilmiştir.

urlFilter Şununla eşleşiyor: Eşleşmez
"abc" https://abcd.com
https://example.com/abcd
https://ab.com
"abc*d" https://abcd.com
https://example.com/abcxyzd
https://abc.com
"||a.example.com" https://a.example.com/
https://b.a.example.com/xyz
https://example.com/
"|https*" https://example.com http://example.com/
http://https.com
"example*^123|" https://example.com/123
http://abc.com/example?123
https://example.com/1234
https://abc.com/example0123

Kural önceliği

Kurallar, web sayfalarından gönderilen istekler tarafından tetiklenir. Belirli bir istekle birden fazla kural eşleşiyorsa kurallara öncelik verilmelidir. Bu bölümde, bunların nasıl önceliklendirildiği açıklanmaktadır. Önceliklendirme iki aşamada gerçekleşir.

  1. Öncelik, bir uzantı içindeki kurallar için belirlenir.
  2. Bir isteğe birden fazla uzantı bir kural uygulayabiliyorsa belirli bir istekle eşleşen tüm uzantılar için öncelik belirlenir.

Şu şekilde eşleştirme yapılır: Belirli bir uzantının öncelik verdiği kural, diğer uzantılardaki kurallara göre önceliklendirilir.

Bir uzantı içinde kural önceliklendirme

Tek bir uzantıda, öncelik belirleme işlemi aşağıdaki süreç kullanılarak yapılır:

  1. Geliştirici tarafından tanımlanan en yüksek önceliğe sahip kural (yani "priority" alanı) döndürülür.
  2. Geliştirici tarafından tanımlanmış en yüksek önceliğe sahip birden fazla kural varsa kurallar, "action" alanı kullanılarak aşağıdaki sırada önceliklendirilir:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. İşlem türü block veya redirect değilse eşleşen tüm modifyHeaders kuralları değerlendirilir. Geliştirici tarafından tanımlanmış önceliği allow ve allowAllRequests için belirtilen öncelikten düşük olan kuralların yok sayılacağını unutmayın.

  4. Birden fazla kural aynı başlığı değiştirirse değişiklik, geliştirici tarafından tanımlanan "priority" alanı ve belirtilen işlemler tarafından belirlenir.

    • Üstbilgiye bir kural eklenirse düşük öncelikli kurallar yalnızca bu başlığa eklenebilir. Ayarlama ve kaldırma işlemlerine izin verilmez.
    • Kural, bir başlık oluşturuyorsa düşük öncelikli kurallar yalnızca bu başlığa eklenebilir. Başka değişiklik yapılmasına izin verilmez.
    • Kural bir başlığı kaldırırsa düşük öncelikli kurallar başlıkta daha fazla değişiklik yapamaz.

Uzantılar arasında kural önceliklendirme

Bir istekle eşleşen yalnızca bir uzantı varsa bu kural uygulanır. Ancak bir istekle birden fazla uzantı eşleşirse aşağıdaki süreç kullanılır:

  1. Kurallar, "action" alanı kullanılarak aşağıdaki sıraya göre önceliklendirilir:

    1. block
    2. redirect veya upgradeScheme
    3. allow veya allowAllRequests
  2. Birden fazla kural eşleşirse en son yüklenen uzantı öncelikli olur.

Kural sınırları

Tarayıcıda kuralların yüklenmesi ve değerlendirilmesi sırasında ek performans söz konusu olur. Bu nedenle API'yi kullanırken bazı sınırlar uygulanır. Sınırlar, kullandığınız kuralın türüne bağlıdır.

Statik kurallar

Statik kurallar, manifest dosyasında belirtilen kural dosyalarında belirtilen kurallardır. Bir uzantı, "rule_resources" manifest anahtarının bir parçası olarak en fazla 100 statik rulesets belirtebilir ancak tek seferde bu kural kümelerinden yalnızca 50 tanesi etkinleştirilebilir. İkincisi MAX_NUMBER_OF_ENABLED_STATIC_RULESETS olarak adlandırılır. Bu kural kümeleri için toplamda en az 30.000 kural garanti edilir. Buna GUARANTEED_MINIMUM_STATIC_RULES adı verilir.

Bundan sonra kullanılabilir kuralların sayısı, bir kullanıcının tarayıcısında yüklü tüm uzantılar tarafından kaç kuralın etkinleştirildiğine bağlıdır. Bu numarayı çalışma zamanında getAvailableStaticRuleCount() numaralı telefonu arayarak bulabilirsiniz. Bunun bir örneğini, kod örnekleri altında görebilirsiniz.

Oturum kuralları

Bir uzantıda en fazla 5.000 oturum kuralı olabilir. Bu, MAX_NUMBER_OF_SESSION_RULES olarak gösterilir.

Chrome 120'den önce dinamik kurallar ve oturum açma kurallarıyla ilgili toplam 5.000 kural sınırı vardı.

Dinamik kurallar

Bir uzantının en az 5.000 dinamik kuralı olabilir. Bu, MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES olarak gösterilir.

Chrome 121'den itibaren, güvenli dinamik kurallar için kullanılabilecek 30.000 kurallık daha büyük bir sınır bulunmaktadır (MAX_NUMBER_OF_DYNAMIC_RULES). Güvenli kurallar; block, allow, allowAllRequests veya upgradeScheme işlemi olan kurallar olarak tanımlanır. 5.000 sınırı aşmayan güvenli olmayan kurallar da bu sınıra dahil edilir.

Chrome 120'den önce dinamik kurallar ve oturum kuralları için toplam 5.000 sınır vardı.

Normal ifadeler kullanan kurallar

Tüm kural türleri normal ifadeleri kullanabilir ancak her türden normal ifade kurallarının toplam sayısı 1.000'i aşamaz. Buna MAX_NUMBER_OF_REGEX_RULES adı verilir.

Ayrıca, her kural derlendikten sonra 2 KB'tan küçük olmalıdır. Bu, kabaca kuralın karmaşıklığıyla ilişkilidir. Bu sınırı aşan bir kural yüklemeye çalışırsanız aşağıdaki gibi bir uyarı görürsünüz ve kural yoksayılır.

rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.

Service Worker'larla etkileşimler

DeclarativeNetRequest yalnızca ağ yığınına ulaşan istekler için geçerlidir. Bu, HTTP önbelleğinden alınan yanıtları içerir ancak bir hizmet çalışanının onfetch işleyicisinden geçen yanıtları içermeyebilir. declarativeNetRequest, hizmet çalışanı tarafından oluşturulan veya CacheStorage öğesinden alınan yanıtları etkilemez, ancak bir hizmet çalışanında yapılan fetch() çağrılarını etkiler.

Web'den erişilebilen kaynaklar

DeclarativeNetRequest kuralı, herkese açık bir kaynak isteğinden web'e erişilemeyen bir kaynağa yönlendirme yapamaz. Aksi takdirde bir hata tetiklenir. Bu durum, belirtilen web'den erişilebilen kaynağın sahibi yönlendirme uzantısı olsa bile geçerlidir. declarativeNetRequest için kaynaklar bildirmek üzere manifestin "web_accessible_resources" dizisini kullanın.

Örnekler

Kod örnekleri

Dinamik kuralları güncelleme

Aşağıdaki örnekte, updateDynamicRules() hizmetinin nasıl çağrılacağı gösterilmektedir. updateSessionRules() için prosedür aynıdır.

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

Statik kural kümelerini güncelleme

Aşağıdaki örnekte, kullanılabilir ve maksimum etkin statik kural kümesi sayısını göz önünde bulundururken kural kümelerinin nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. İhtiyaç duyduğunuz statik kural sayısı, izin verilen sayıyı aştığında bunu yaparsınız. Bunu gerçekleştirmek için bazı kural kümelerinizin bazı kural kümeleri devre dışı olacak şekilde yüklenmesi gerekir (manifest dosyasında "Enabled", false olarak ayarlanır).

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

Kural örnekleri

Aşağıdaki örneklerde, Chrome'un bir uzantıdaki kuralları nasıl önceliklendirdiği gösterilmektedir. Bunları incelerken, önceliklendirme kurallarını ayrı bir pencerede açmak isteyebilirsiniz.

"Öncelik" anahtarı

Bu örnekler, *://*.example.com/* için barındırıcı izni gerektirir.

Belirli bir URL'nin önceliğini belirlemek için (geliştirici tarafından tanımlanan) "priority" anahtarına, "action" anahtarına ve "urlFilter" anahtarına bakın. Bu örnekler, altlarında gösterilen örnek kural dosyasını ifade eder.

https://google.com adresine gitme
Bu URL için iki kural bulunur: Kimlikleri 1 ve 4 olan kurallar. "block" işlemleri, "redirect" işlemden daha yüksek önceliğe sahip olduğu için kimlik 1'e sahip kural geçerlidir. Daha uzun URL'lere yönelik oldukları için geri kalan kurallar geçerli değildir.
https://google.com/1234 adresine gidin
URL daha uzun olduğundan, kimlik 2 olan kural artık 1 ve 4 kimlik numaralı kuralların yanı sıra eşleşiyor. "allow" kimliğine sahip kural, "block" ve "redirect" ile karşılaştırıldığında daha yüksek önceliğe sahip olduğu için 2 numaralı kural geçerlidir.
https://google.com/12345 adresine gidin
Dört kuralın tümü bu URL'yle eşleşiyor. Geliştirici tarafından tanımlanan öncelik, gruptaki en yüksek öncelik olduğu için kimlik 3'e sahip kural uygulanır.
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
]

Yönlendirmeler

Aşağıdaki örnek, *://*.example.com/* için barındırıcı izni gerektirir.

Aşağıdaki örnekte, example.com adresinden alınan bir isteğin uzantının içindeki bir sayfaya nasıl yönlendirileceği gösterilmektedir. /a.jpg uzantı yolu chrome-extension://EXTENSION_ID/a.jpg olarak çözümlenir. Burada EXTENSION_ID, uzantınızın kimliğidir. Bunun işe yaraması için manifest, /a.jpg adresini web'de erişilebilir kaynak olarak tanımlamalıdır.

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}

Aşağıda, example.com'un bir alt alan adına yönlendirme yapmak için "transform" anahtarı kullanılmaktadır. Bu anahtar, example.com'dan gelen herhangi bir şemayla isteklere müdahale etmek için bir alan adı sabitleyici ("||") kullanır. "transform" içindeki "scheme" anahtarı, alt alan adına yapılan yönlendirmelerin her zaman "https" kullanacağını belirtir.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}

Aşağıdaki örnekte, https://www.abc.xyz.com/path konumundan https://abc.xyz.com/path konumuna yönlendirme yapmak için normal ifadeler kullanılmaktadır. "regexFilter" anahtarında noktaların nasıl çıkış yapıldığına ve yakalama grubunun "abc" veya "def" seçimini yaptığına dikkat edin. "regexSubstitution" anahtarı, "\1" kullanılarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu durumda, "abc" ifadesi yönlendirilen URL'den yakalanır ve yerine yerleştirilir.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

Üst bilgiler

Aşağıdaki örnekte hem ana çerçevedeki hem de alt çerçevelerdeki tüm çerezler kaldırılmaktadır.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

Türler

DomainType

Bu, isteğin kaynaklandığı çerçevede birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Bir istek, isteğin kaynaklandığı çerçeveyle aynı alan adına (eTLD+1) sahipse birinci taraf olarak kabul edilir.

Enum

"firstParty"
Ağ isteği, kaynaklandığı çerçevenin birinci tarafıdır.

"thirdParty"
Ağ isteği, kaynaklandığı çerçevenin üçüncü tarafı.

ExtensionActionOptions

Chrome 88 ve sonraki sürümler

Özellikler

  • displayActionCountAsBadgeText

    boole isteğe bağlı

    Bir sayfaya ilişkin işlem sayısının otomatik olarak uzantının rozet metni olarak görüntülenip görüntülenmeyeceğini belirtir. Bu tercih, oturumlar genelinde korunur.

  • tabUpdate

    TabActionCountUpdate isteğe bağlı

    Chrome 89 ve sonraki sürümler

    Sekmenin işlem sayısının nasıl ayarlanması gerektiğine ilişkin ayrıntılar.

GetDisabledRuleIdsOptions

Chrome 111 ve sonraki sürümler

Özellikler

  • rulesetId

    dize

    Statik Ruleset öğesine karşılık gelen kimlik.

GetRulesFilter

Chrome 111 ve sonraki sürümler

Özellikler

  • ruleIds

    number[] isteğe bağlı

    Belirtilirse yalnızca eşleşen kimliklere sahip kurallar dahil edilir.

HeaderOperation

Chrome 86 ve sonraki sürümler

Bu bölüm, bir "modifyHeaders" kuralı için olası işlemleri açıklar.

Enum

"append"
Belirtilen üstbilgiye yeni bir giriş ekler. Bu işlem, istek başlıkları için desteklenmez.

"set"
Aynı ada sahip mevcut üstbilgileri kaldırarak, belirtilen üstbilgi için yeni bir değer belirler.

"remove"
Belirtilen üstbilgideki tüm girişleri kaldırır.

IsRegexSupportedResult

Chrome 87 ve sonraki sürümler

Özellikler

  • isSupported

    boolean

  • neden

    UnsupportedRegexReason isteğe bağlı

    Normal ifadenin neden desteklenmediğini belirtir. Yalnızca isSupported değeri yanlışsa sağlanır.

MatchedRule

Özellikler

  • ruleId

    sayı

    Eşleşen bir kuralın kimliği.

  • rulesetId

    dize

    Bu kuralın ait olduğu Ruleset kimliği. Dinamik kurallar grubundan gelen bir kural için bu değer DYNAMIC_RULESET_ID olur.

MatchedRuleInfo

Özellikler

  • kural
  • tabId

    sayı

    Sekme hâlâ etkinse, isteğin geldiği sekmenin tabId'si. Diğer -1.

  • timeStamp

    sayı

    Kuralın eşleştiği zaman. Zaman damgaları, zaman için JavaScript kuralına (yani sıfır zamandan bu yana geçen milisaniye sayısı) karşılık gelir.

MatchedRuleInfoDebug

Özellikler

MatchedRulesFilter

Özellikler

  • minTimeStamp

    numara isteğe bağlı

    Belirtilirse yalnızca belirtilen zaman damgasından sonraki kurallarla eşleşir.

  • tabId

    numara isteğe bağlı

    Belirtilmişse yalnızca ilgili sekmenin kurallarıyla eşleşir. -1 olarak ayarlanırsa etkin herhangi bir sekmeyle ilişkili olmayan kurallarla eşleşir.

ModifyHeaderInfo

Chrome 86 ve sonraki sürümler

Özellikler

  • başlık

    dize

    Değiştirilecek üstbilginin adı.

  • Başlık üzerinde gerçekleştirilecek işlem.

  • value

    string isteğe bağlı

    Üstbilginin yeni değeri. append ve set işlemleri için belirtilmelidir.

QueryKeyValue

Özellikler

  • anahtar

    dize

  • replaceOnly

    boole isteğe bağlı

    Chrome 94 ve sonraki sürümler

    True (doğru) değerine ayarlanırsa sorgu anahtarı yalnızca zaten varsa değiştirilir. Aksi takdirde, anahtar yoksa eklenir. Varsayılan olarak false değerine ayarlanır.

  • value

    dize

QueryTransform

Özellikler

  • addOrReplaceParams

    QueryKeyValue[] isteğe bağlı

    Eklenecek veya değiştirilecek sorgu anahtar/değer çiftlerinin listesi.

  • removeParams

    string[] isteğe bağlı

    Kaldırılacak sorgu anahtarlarının listesi.

Redirect

Özellikler

  • extensionPath

    string isteğe bağlı

    Uzantı dizinine göre yol. "/" ile başlamalıdır.

  • regexSubstitution

    string isteğe bağlı

    regexFilter belirten kurallar için değiştirme kalıbı. URL içindeki ilk regexFilter eşleşmesi bu kalıpla değiştirilir. regexSubstitution içinde, ilgili yakalama gruplarını eklemek için ters eğik çizgiyle atlatılmış rakamlar (\1 ile \9 arası) kullanılabilir. \0, eşleşen metnin tamamına işaret eder.

  • transform

    URLTransform isteğe bağlı

    Gerçekleştirilecek URL dönüşümleri.

  • url

    string isteğe bağlı

    Yönlendirme URL'si. JavaScript URL'lerine yönlendirmelere izin verilmez.

RegexOptions

Chrome 87 ve sonraki sürümler

Özellikler

  • isCaseSensitive

    boole isteğe bağlı

    Belirtilen regex öğesinin büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, doğru değeridir.

  • normal ifade : regex

    dize

    Kontrol edilecek normal ifade.

  • requireCapturing

    boole isteğe bağlı

    Belirtilen regex için yakalama gerekip gerekmediği. Yakalama, yalnızca bir regexSubstition işlemi belirten yönlendirme kuralları için gereklidir. Varsayılan, false (yanlış) değeridir.

RequestDetails

Özellikler

  • documentId

    string isteğe bağlı

    Chrome 106 ve sonraki sürümler

    İstek bir çerçeve içinse çerçevenin dokümanının benzersiz tanımlayıcısı.

  • documentLifecycle

    DocumentLifecycle isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir çerçeve içinse çerçeve dokümanının yaşam döngüsü.

  • frameId

    sayı

    0 değeri, isteğin ana çerçevede, pozitif değer ise isteğin gerçekleştiği alt çerçevenin kimliğini ifade eder. Bir (alt) çerçevenin dokümanı yüklendiyse (type, main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini belirtir. Çerçeve kimlikleri bir sekme içinde benzersizdir.

  • frameType

    FrameType isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir kare içinse karenin türü.

  • başlatan

    string isteğe bağlı

    İsteğin başlatıldığı kaynak. Bu durum yönlendirmeler üzerinden değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

  • method

    dize

    Standart HTTP yöntemi.

  • parentDocumentId

    string isteğe bağlı

    Chrome 106 ve sonraki sürümler

    İstek bir çerçeveye yönelikse ve bir üst dokümanı varsa çerçevenin üst dokümanı için benzersiz tanımlayıcı.

  • parentFrameId

    sayı

    İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

  • requestId

    dize

    İsteğin kimliği. İstek kimlikleri bir tarayıcı oturumunda benzersizdir.

  • tabId

    sayı

    İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

  • İsteğin kaynak türü.

  • url

    dize

    İsteğin URL'si.

RequestMethod

Chrome 91 ve sonraki sürümler

Bu, bir ağ isteğinin HTTP istek yöntemini tanımlar.

Enum

"bağlan"

"get"

"head"

"put"

ResourceType

Bu değer, ağ isteğinin kaynak türünü açıklar.

Enum

"main_frame"

"sub_frame"

"script"

"image"

"font"

"object"

"xmlhttprequest"

"ping"

"csp_report"

"media"

"websocket"

"webtransport"

Rule

Özellikler

  • işlem

    Bu kural eşleşirse yapılacak işlem.

  • koşul

    Bu kuralın tetiklendiği koşul.

  • id

    sayı

    Bir kuralı benzersiz şekilde tanımlayan kimlik. Zorunludur ve >= 1 olmalıdır.

  • önceliği

    numara isteğe bağlı

    Kural önceliği. Varsayılan olarak 1 değerine ayarlanır. Belirtildiğinde, >= 1 olmalıdır.

RuleAction

Özellikler

  • yönlendir

    Yönlendirme isteğe bağlı

    Yönlendirmenin nasıl yapılması gerektiğini açıklar. Yalnızca yönlendirme kuralları için geçerlidir.

  • requestHeaders

    ModifyHeaderInfo[] isteğe bağlı

    Chrome 86 ve sonraki sürümler

    İstek için değiştirilecek istek başlıkları. Yalnızca RuleActionType "modifyHeaders" ise geçerlidir.

  • responseHeaders

    ModifyHeaderInfo[] isteğe bağlı

    Chrome 86 ve sonraki sürümler

    İstek için değiştirilecek yanıt başlıkları. Yalnızca RuleActionType "modifyHeaders" ise geçerlidir.

  • Gerçekleştirilecek işlemin türü.

RuleActionType

Belirli bir RuleCondition eşleşirse yapılacak işlemin türünü açıklar.

Enum

"block"
Ağ isteğini engelleyin.

"redirect" (yönlendirme)
Ağ isteğini yönlendirin.

"allow"
Ağ isteğine izin verir. Eşleşen bir izin verme kuralı varsa isteğe müdahale edilmez.

"upgradeScheme"
İstek http veya ftp ise ağ isteği URL'sinin şemasını https'ye yükseltin.

"modifyHeaders"
Ağ isteğindeki istek/yanıt başlıklarını değiştirin.

"allowAllRequests"
Çerçeve isteğinin kendisi dahil olmak üzere bir çerçeve hiyerarşisindeki tüm isteklere izin verilir.

RuleCondition

Özellikler

  • domainType

    DomainType isteğe bağlı

    Ağ isteğinin, kaynağı olan alanda birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Belirtilmezse tüm istekler kabul edilir.

  • alan

    string[] isteğe bağlı

    Chrome 101 sürümünden itibaren kullanımdan kaldırıldı

    Bunun yerine initiatorDomains alanını kullanın

    Kural, yalnızca domains listesinden gelen ağ istekleriyle eşleşecek.

  • excludedDomains

    string[] isteğe bağlı

    Chrome 101 sürümünden itibaren kullanımdan kaldırıldı

    Bunun yerine excludedInitiatorDomains alanını kullanın

    Kural, excludedDomains listesinden gelen ağ istekleriyle eşleşmez.

  • excludedInitiatorDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Kural, excludedInitiatorDomains listesinden gelen ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu, initiatorDomains türüne göre daha önceliklidir.

    Notlar:

    • "a.example.com" gibi alt alan adlarına da izin verilir.
    • Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
    • Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
    • Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
    • Listelenen alan adlarının alt alanları da hariç tutulur.
  • excludedRequestDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Alanlar, excludedRequestDomains listesindeki bir istekle eşleştiğinde, kural ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu, requestDomains türüne göre daha önceliklidir.

    Notlar:

    • "a.example.com" gibi alt alan adlarına da izin verilir.
    • Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
    • Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
    • Listelenen alan adlarının alt alanları da hariç tutulur.
  • excludedRequestMethods

    RequestMethod[] isteğe bağlı

    Chrome 91 ve sonraki sürümler

    Kuralın eşleşmeyeceği istek yöntemlerinin listesi. requestMethods ve excludedRequestMethods özelliklerinden yalnızca biri belirtilmelidir. İkisi de belirtilmezse tüm istek yöntemleri eşleştirilir.

  • excludedResourceTypes

    ResourceType[] isteğe bağlı

    Kuralın eşleşmeyeceği kaynak türlerinin listesi. resourceTypes ve excludedResourceTypes özelliklerinden yalnızca biri belirtilmelidir. Bunların ikisi de belirtilmezse "main_frame" dışındaki tüm kaynak türleri engellenir.

  • excludedTabIds

    number[] isteğe bağlı

    Chrome 92 ve sonraki sürümler

    Kuralın eşleşmemesi gereken tabs.Tab.id listesi. tabs.TAB_ID_NONE kimliği, bir sekmeden kaynaklanmayan istekleri hariç tutar. Yalnızca oturum kapsamlı kurallar için desteklenir.

  • initiatorDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Kural, yalnızca initiatorDomains listesinden gelen ağ istekleriyle eşleşecek. Liste çıkarılırsa kural tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.

    Notlar:

    • "a.example.com" gibi alt alan adlarına da izin verilir.
    • Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
    • Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
    • Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
    • Listelenen alanların alt alanları da eşleştirilir.
  • isUrlFilterCaseSensitive

    boole isteğe bağlı

    urlFilter veya regexFilter öğesinin (hangisi belirtilirse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, false (yanlış) değeridir.

  • regexFilter

    string isteğe bağlı

    Ağ isteği URL'siyle eşleşecek normal ifade. Bu, RE2 söz dizimine uyar.

    Not: urlFilter veya regexFilter özelliklerinden yalnızca biri belirtilebilir.

    Not: regexFilter yalnızca ASCII karakterlerden oluşmalıdır. Bu, ana makinenin punycode biçiminde (uluslararası hale getirilmiş alanlarda) ve diğer tüm ascii olmayan karakterlerin utf-8'de url ile kodlandığı bir URL ile eşleştirilir.

  • requestDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Kural, yalnızca alan requestDomains listesindeki bir alanla eşleştiğinde ağ istekleriyle eşleşir. Liste çıkarılırsa kural tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.

    Notlar:

    • "a.example.com" gibi alt alan adlarına da izin verilir.
    • Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
    • Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
    • Listelenen alanların alt alanları da eşleştirilir.
  • requestMethods

    RequestMethod[] isteğe bağlı

    Chrome 91 ve sonraki sürümler

    Kuralın eşleşebileceği HTTP isteği yöntemlerinin listesi. Boş listeye izin verilmez.

    Not: requestMethods kural koşulu belirtildiğinde, HTTP(s) olmayan istekler de hariç tutulur, excludedRequestMethods belirtildiğinde ise hariç tutulmaz.

  • resourceTypes

    ResourceType[] isteğe bağlı

    Kuralın eşleşebileceği kaynak türlerinin listesi. Boş listeye izin verilmez.

    Not: Bu, allowAllRequests kuralları için belirtilmelidir ve yalnızca sub_frame ile main_frame kaynak türlerini içerebilir.

  • tabIds

    number[] isteğe bağlı

    Chrome 92 ve sonraki sürümler

    Kuralın eşleşmesi gereken tabs.Tab.id listesi. tabs.TAB_ID_NONE kimliği, bir sekmeden kaynaklanmayan isteklerle eşleşir. Boş listeye izin verilmez. Yalnızca oturum kapsamlı kurallar için desteklenir.

  • urlFilter

    string isteğe bağlı

    Ağ istek URL'siyle eşleşen kalıp. Desteklenen yapılar:

    '*' : Joker karakter: Herhangi bir sayıda karakterle eşleşir.

    '|' : Sol/sağ bağlayıcı: Kalıbın herhangi bir sonunda kullanılırsa URL'nin başını/sonunu belirtir.

    '||' : Alan adı bağlayıcı: Kalıbın başında kullanılıyorsa URL'nin bir (alt) alanının başlangıcını belirtir.

    '^' : Ayırıcı karakter: Bir harf, rakam veya şunlardan biri hariç her şeyle eşleşir: _, -, . ya da %. Bu, URL'nin sonuyla da eşleşir.

    Dolayısıyla, urlFilter şu bölümlerden oluşur: (isteğe bağlı Sol/Alan adı bağlayıcı) + kalıp + (isteğe bağlı Sağ bağlayıcı).

    Atlanırsa tüm URL'ler eşleştirilir. Boş dizeye izin verilmez.

    ||* ile başlayan bir kalıba izin verilmez. Bunun yerine * politikasını kullanın.

    Not: urlFilter veya regexFilter özelliklerinden yalnızca biri belirtilebilir.

    Not: urlFilter yalnızca ASCII karakterlerden oluşmalıdır. Bu, ana makinenin punycode biçiminde (uluslararası hale getirilmiş alanlarda) ve diğer tüm ascii olmayan karakterlerin utf-8'de url ile kodlandığı bir URL ile eşleştirilir. Örneğin, istek URL'si http://abc.рë?q=ã olduğunda urlFilter, http://abc.xn--p1ai/?q=%D1%84 URL'siyle eşleştirilir.

Ruleset

Özellikler

  • etkin

    boolean

    Kural kümesinin varsayılan olarak etkin olup olmadığı.

  • id

    dize

    Kural kümesini benzersiz şekilde tanımlayan boş olmayan bir dize. "_" ile başlayan kimlikler dahili kullanıma ayrılmıştır.

  • yol

    dize

    Uzantı dizinine göre JSON kural kümesinin yolu.

RulesMatchedDetails

Özellikler

  • rulesMatchedInfo

    Belirtilen filtreyle eşleşen kurallar.

TabActionCountUpdate

Chrome 89 ve sonraki sürümler

Özellikler

  • artır

    sayı

    Sekmenin işlem sayısı artacak miktar. Negatif değerler, sayıyı azaltır.

  • tabId

    sayı

    İşlem sayısının güncelleneceği sekme.

TestMatchOutcomeResult

Chrome 103 ve sonraki sürümler

Özellikler

  • matchedRules

    Varsayımsal istekle eşleşen kurallar (varsa).

TestMatchRequestDetails

Chrome 103 ve sonraki sürümler

Özellikler

  • başlatan

    string isteğe bağlı

    Varsayımsal isteğin başlatıcı URL'si (varsa).

  • method

    RequestMethod isteğe bağlı

    Varsayımsal isteğin standart HTTP yöntemi. HTTP istekleri için varsayılan olarak "get" değerine ayarlanır, HTTP olmayan istekler için yoksayılır.

  • tabId

    numara isteğe bağlı

    Varsayımsal isteğin gerçekleştiği sekmenin kimliği. Gerçek bir sekme kimliğine karşılık gelmesi gerekmez. Varsayılan değer -1'dir. Diğer bir deyişle, istek bir sekmeyle ilgili değildir.

  • Varsayımsal isteğin kaynak türü.

  • url

    dize

    Varsayımsal isteğin URL'si.

UnsupportedRegexReason

Chrome 87 ve sonraki sürümler

Belirli bir normal ifadenin neden desteklenmediğini açıklar.

Enum

"syntaxError"
Normal ifade söz dizimsel olarak yanlış veya RE2 söz diziminde bulunmayan özellikler kullanıyor.

"memoryLimitExceeded"
Normal ifade, bellek sınırını aşıyor.

UpdateRuleOptions

Chrome 87 ve sonraki sürümler

Özellikler

  • addRules

    Kural[] isteğe bağlı

    Eklenecek kurallar.

  • removeRuleIds

    number[] isteğe bağlı

    Kaldırılacak kuralların kimlikleri. Geçersiz kimlikler yoksayılır.

UpdateRulesetOptions

Chrome 87 ve sonraki sürümler

Özellikler

  • disableRulesetIds

    string[] isteğe bağlı

    Devre dışı bırakılması gereken statik Ruleset öğesine karşılık gelen kimlik grubu.

  • enableRulesetIds

    string[] isteğe bağlı

    Etkinleştirilmesi gereken statik Ruleset öğesine karşılık gelen kimlik grubu.

UpdateStaticRulesOptions

Chrome 111 ve sonraki sürümler

Özellikler

  • disableRuleIds

    number[] isteğe bağlı

    Ruleset'daki devre dışı bırakılacak kurallara karşılık gelen kimlik grubu.

  • enableRuleIds

    number[] isteğe bağlı

    Ruleset içindeki etkinleştirilecek kurallara karşılık gelen kimlikler grubu.

  • rulesetId

    dize

    Statik Ruleset öğesine karşılık gelen kimlik.

URLTransform

Özellikler

  • parça

    string isteğe bağlı

    İsteğin yeni parçası. Ya boş olmalı, bu durumda mevcut parça temizlenmelidir ya da "#" ile başlamalıdır.

  • düzenleyen

    string isteğe bağlı

    İsteğin yeni barındırıcısı.

  • şifre

    string isteğe bağlı

    İsteğin yeni şifresi.

  • yol

    string isteğe bağlı

    İsteğin yeni yolu. Boş bırakılırsa mevcut yol temizlenir.

  • bağlantı noktası

    string isteğe bağlı

    İsteğin yeni bağlantı noktası. Boş bırakılırsa mevcut bağlantı noktası temizlenir.

  • sorgu

    string isteğe bağlı

    İsteğin yeni sorgusu. Boş olmalı ya da boş bırakılmalıdır. Bu durumda mevcut sorgu temizlenir veya "?" ile başlamalıdır.

  • queryTransform

    QueryTransform isteğe bağlı

    Sorgu anahtar/değer çiftleri ekleyin, kaldırın veya değiştirin.

  • şema

    string isteğe bağlı

    İsteğin yeni şeması. İzin verilen değerler "http", "https", "ftp" ve "chrome-extension"tır.

  • kullanıcı adı

    string isteğe bağlı

    İsteğin yeni kullanıcı adı.

Özellikler

DYNAMIC_RULESET_ID

Uzantı tarafından eklenen dinamik kuralların kural kümesi kimliği.

Değer

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules çağrılarının yapılabileceği zaman aralığı. Dakika olarak belirtilir. Ek aramalar hemen başarısız olur ve runtime.lastError olarak ayarlanır. Not: Bir kullanıcı hareketiyle ilişkilendirilen getMatchedRules çağrıları kotadan muaftır.

Değer

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89 ve sonraki sürümler

Etkin statik kural kümeleri genelinde bir uzantıya garanti edilen minimum statik kural sayısı. Bu sınırın üzerindeki tüm kurallar genel statik kural sınırına dahil edilir.

Değer

30.000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

GETMATCHEDRULES_QUOTA_INTERVAL döneminde getMatchedRules işlevinin çağrılma sayısı.

Değer

20

MAX_NUMBER_OF_DYNAMIC_RULES

Bir uzantının ekleyebileceği maksimum dinamik kural sayısı.

Değer

30.000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 ve sonraki sürümler

Bir uzantının herhangi bir zamanda etkinleştirebileceği maksimum statik Rulesets sayısı.

Değer

50

MAX_NUMBER_OF_REGEX_RULES

Bir uzantının ekleyebileceği maksimum normal ifade kuralı sayısı. Bu sınır, dinamik kural grubu ve kural kaynakları dosyasında belirtilenler için ayrı olarak değerlendirilir.

Değer

1.000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 ve sonraki sürümler

Bir uzantının ekleyebileceği maksimum oturum kapsamlı kural sayısı.

Değer

5.000

MAX_NUMBER_OF_STATIC_RULESETS

Bir uzantının "rule_resources" manifest anahtarının bir parçası olarak belirtebileceği maksimum statik Rulesets sayısı.

Değer

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120 ve sonraki sürümler

Bir uzantının ekleyebileceği maksimum "güvenli olmayan" dinamik kural sayısı.

Değer

5.000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120 ve sonraki sürümler

Bir uzantının ekleyebileceği maksimum "güvenli olmayan" oturum kapsamlı kural sayısı.

Değer

5.000

SESSION_RULESET_ID

Chrome 90 ve sonraki sürümler

Uzantı tarafından eklenen oturum kapsamlı kuralların kural kümesi kimliği.

Değer

"_session"

Yöntemler

getAvailableStaticRuleCount()

Söz Chrome 89 ve sonraki sürümler
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)

Genel statik kural sınırına ulaşılmadan önce bir uzantının etkinleştirebileceği statik kuralların sayısını döndürür.

Parametreler

  • geri çağırma

    Functions (isteğe bağlı)

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

    (count: number)=>void

    • adet

      sayı

İlerlemeler

  • Vaat<sayı>

    Chrome 91 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.

getDisabledRuleIds()

Söz Chrome 111 ve sonraki sürümleri
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)

Belirtilen Ruleset içindeki devre dışı bırakılmış statik kuralların listesini döndürür.

Parametreler

  • Sorgulanacak kural kümesini belirtir.

  • geri çağırma

    Functions (isteğe bağlı)

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

    (disabledRuleIds: number[])=>void

    • disabledRuleIds

      numara[]

İlerlemeler

  • Vaat<sayı[]>

    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.

getDynamicRules()

Söz
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Uzantının geçerli dinamik kural grubunu döndürür. Arayanlar, isteğe bağlı olarak bir filter belirterek getirilen kuralların listesini filtreleyebilir.

Parametreler

  • filter

    GetRulesFilter isteğe bağlı

    Chrome 111 ve sonraki sürümler

    Getirilen kurallar listesini filtreleyecek bir nesne.

  • geri çağırma

    Functions (isteğe bağlı)

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

    (rules: Rule[])=>void

İlerlemeler

  • Söz<Kural[]>

    Chrome 91 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.

getEnabledRulesets()

Söz
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)

Etkin statik kural kümeleri içeren geçerli grup için kimlikleri döndürür.

Parametreler

  • geri çağırma

    Functions (isteğe bağlı)

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

    (rulesetIds: string[])=>void

    • rulesetIds

      dize[]

İlerlemeler

  • Söz<dize[]>

    Chrome 91 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.

getMatchedRules()

Söz
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)

Uzantıyla eşleşen tüm kuralları döndürür. Arayanlar, isteğe bağlı olarak bir filter belirterek eşleşen kuralların listesini filtreleyebilir. Bu yöntem yalnızca filter içinde belirtilen tabId için "declarativeNetRequestFeedback" iznine veya "activeTab" iznine sahip uzantılar tarafından kullanılabilir. Not: Beş dakikadan daha uzun süre önce eşleştirilmiş, etkin bir dokümanla ilişkili olmayan kurallar döndürülmez.

Parametreler

İlerlemeler

  • Chrome 91 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.

getSessionRules()

Söz Chrome 90 ve üstü sürümler
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Uzantı için geçerli oturum kapsamlı kurallar grubunu döndürür. Arayanlar, isteğe bağlı olarak bir filter belirterek getirilen kuralların listesini filtreleyebilir.

Parametreler

  • filter

    GetRulesFilter isteğe bağlı

    Chrome 111 ve sonraki sürümler

    Getirilen kurallar listesini filtreleyecek bir nesne.

  • geri çağırma

    Functions (isteğe bağlı)

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

    (rules: Rule[])=>void

İlerlemeler

  • Söz<Kural[]>

    Chrome 91 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.

isRegexSupported()

Söz Chrome 87 ve sonraki sürümler
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)

Belirtilen normal ifadenin regexFilter kural koşulu olarak desteklenip desteklenmeyeceğini kontrol eder.

Parametreler

İlerlemeler

  • Chrome 91 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.

setExtensionActionOptions()

Söz Chrome 88 ve sonraki sürümler
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)

Sekmeler için işlem sayısının uzantı işleminin rozet metni olarak görüntülenip görüntülenmeyeceğini yapılandırır ve bu işlem sayısının artırılması için bir yol sunar.

Parametreler

  • geri çağırma

    Functions (isteğe bağlı)

    Chrome 89 ve sonraki sürümler

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

    ()=>void

İlerlemeler

  • Promise<void>

    Chrome 91 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.

testMatchOutcome()

Söz Chrome 103 ve sonraki sürümleri
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)

Uzantının declarativeNetRequest kurallarından herhangi birinin varsayımsal bir istekle eşleşip eşleşmediğini kontrol eder. Not: Yalnızca uzantı geliştirme sırasında kullanılması amaçlandığından, yalnızca paketlenmemiş uzantılar için kullanılabilir.

Parametreler

İlerlemeler

  • 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.

updateDynamicRules()

Söz
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Uzantının geçerli dinamik kural grubunda değişiklik yapar. Önce options.removeRuleIds politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules politikasında verilen kurallar eklenir. Notlar:

  • Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır ya da bir hata döndürülür.
  • Bu kurallar, tarayıcı oturumları ve uzantı güncellemeleri genelinde korunur.
  • Uzantı paketinin bir parçası olarak belirtilen statik kurallar bu işlev kullanılarak kaldırılamaz.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, bir uzantının dinamik ve oturum kurallarının maksimum toplam sayısıdır.

Parametreler

  • seçenekler
    Chrome 87 ve sonraki sürümler
  • geri çağırma

    Functions (isteğe bağlı)

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

    ()=>void

İlerlemeler

  • Promise<void>

    Chrome 91 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.

updateEnabledRulesets()

Söz
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)

Uzantı için etkin statik kural kümeleri grubunu günceller. options.disableRulesetIds içinde listelenen kimliklere sahip kural kümeleri önce kaldırılır ve ardından, options.enableRulesetIds içinde listelenen kural kümeleri eklenir. Etkin statik kural kümeleri grubunun oturumlar genelinde korunduğunu, ancak uzantı güncellemelerinde devam etmediğini unutmayın. Yani rule_resources manifest anahtarı, her uzantı güncellemesinde etkin statik kural kümesi grubunu belirleyecektir.

Parametreler

  • seçenekler
    Chrome 87 ve sonraki sürümler
  • geri çağırma

    Functions (isteğe bağlı)

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

    ()=>void

İlerlemeler

  • Promise<void>

    Chrome 91 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.

updateSessionRules()

Söz Chrome 90 ve üstü sürümler
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Uzantı için mevcut oturum kapsamlı kural grubunu değiştirir. Önce options.removeRuleIds politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules politikasında verilen kurallar eklenir. Notlar:

  • Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır ya da bir hata döndürülür.
  • Bu kurallar, oturumlar genelinde korunmaz ve bellekte yedeklenir.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, bir uzantının dinamik ve oturum kurallarının maksimum toplam sayısıdır.

Parametreler

  • seçenekler
  • geri çağırma

    Functions (isteğe bağlı)

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

    ()=>void

İlerlemeler

  • Promise<void>

    Chrome 91 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.

updateStaticRules()

Söz Chrome 111 ve sonraki sürümleri
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)

Bir Rulesetda bağımsız statik kuralları devre dışı bırakır ve etkinleştirir. Devre dışı bırakılmış bir Rulesetya ait kurallarda yapılan değişiklikler, bir sonraki etkinleştirildiğinde etkili olur.

Parametreler

  • geri çağırma

    Functions (isteğe bağlı)

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

    ()=>void

İlerlemeler

  • Promise<void>

    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.

Etkinlikler

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

Bir kural bir istekle eşleştiğinde tetiklenir. Yalnızca hata ayıklama amacıyla kullanılmak üzere tasarlandığından yalnızca "declarativeNetRequestFeedback" iznine sahip paketlenmemiş uzantılar için kullanılabilir.

Parametreler