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ğ isteklerini müdahale etmeden ve içeriklerini görüntülemeden değiştirerek daha fazla gizlilik sağlar.

İzinler

declarativeNetRequest
declarativeNetRequestWithHostAccess

"declarativeNetRequest" ve "declarativeNetRequestWithHostAccess" izinleri aynı özellikleri sağlar. Aralarındaki fark, izinlerin istenmesi veya verilmesidir.

"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 bulunmak zorunda kalmamak için mümkün olduğunda bunu kullanın.
"declarativeNetRequestFeedback"
Özellikle getMatchedRules() ve onRuleMatchedDebug olmak üzere, paketlenmemiş uzantılar için hata ayıklama özelliklerini etkinleştirir.
"declarativeNetRequestWithHostAccess"
Yükleme sırasında izin uyarısı gösterilmez ancak bir ana makinede herhangi bir işlem yapabilmek için ana makine izinleri istemeniz gerekir. Ek uyarı oluşturmadan ana makine izinlerine sahip bir uzantıda bildirim temelli net istek kurallarını kullanmak istiyorsanız bu uygun bir uygulamadır.

Kullanılabilirlik

Chrome 84 ve sonraki sürümler

Manifest

Önceden açıklanan izinlere ek olarak belirli kural grubu türleri (özellikle statik kural grupları) için "declarative_net_request" manifest anahtarının tanımlanması gerekir. Bu anahtar, "rule_resources" adlı tek bir anahtara sahip bir sözlük olmalıdır. Bu anahtar, aşağıda gösterildiği gibi Ruleset türünde sözlükleri içeren bir dizidir. ("Kurallaret" adı yalnızca bir dizi olduğundan, manifest dosyasının JSON dosyasında "Kurallaret" adının görünmediğini unutmayın.) Statik kural kümeleri bu belgenin ilerleyen bölümlerinde 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 tüm engellenmiş kuralları hariç tutarak bir isteğin engellenmesini önleyin.
  • Bir ağ isteğini yönlendirme.
  • İstek veya yanıt başlıklarını değiştirin.

Biraz farklı şekillerde yönetilen üç tür kural kümesi vardır.

Dinamik
Tarayıcı oturumları ve uzantı yükseltmeleri arasında kalır ve uzantı kullanılırken JavaScript ile yönetilir.
Oturum
Tarayıcı kapatıldığı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 grubu 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ı ve uzantı yükseltmeleri genelinde geçerliliğini korur.
  • Tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde oturum kuralları temizlenir.

Bu kural grubu türlerinden yalnızca bir tanesi bulunur. Kural sınırlarının aşılmaması durumunda bir uzantı, updateDynamicRules() ve updateSessionRules() çağrılarını yaparak kurallara dinamik olarak kural ekleyebilir veya mevcut kuralları kaldırabilir. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin. Kod örnekleri bölümünde bunun bir örneğini görebilirsiniz.

Statik kural kümeleri

Dinamik kurallar ve 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ı ile bir veya daha fazla Ruleset sözlüğü kullanılarak uzantıya belirtilen kural dosyalarında JSON biçiminde depolanır. Ruleset sözlüğü, kural dosyasının yolunu, dosyada bulunan kural grubunun kimliğini ve kural kümesinin etkin veya devre dışı olup olmadığını içerir. Son ikisi, bir kural kümesini programatik olarak etkinleştirdiğinizde veya devre dışı bıraktığınızda önemlidir.

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

Kural dosyalarını test etmek için uzantıyı paketlenmemiş olarak yükleyin. Geçersiz statik kurallarla ilgili hata ve uyarılar yalnızca paketlenmemiş uzantılar için gösterilir. Paketlenmiş uzantılardaki geçersiz statik kurallar yoksayılır.

Hızlandırılmış inceleme

Statik kural gruplarında yapılan değişiklikler hızlandırılmış inceleme için uygun olabilir. Uygun değişiklikler için hızlı incelemeyi inceleyin.

Statik kuralları ve kural kümelerini etkinleştirme ve devre dışı bırakma

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

Etkinleştirilmiş statik kurallar ve kural kümeleri, tarayıcı oturumları genelinde korunur. İkisi de uzantı güncellemeleri genelinde uygulanmaz. Diğer bir deyişle, güncelleme sonrasında yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar kullanılabilir.

Performansı korumak amacıyla, tek seferde etkinleştirilebilecek kural ve kural gruplarının sayısı için de sınırlar söz konusudur. Etkinleştirilebilecek ek kuralların sayısını kontrol etmek için getAvailableStaticRuleCount() numaralı telefonu arayın. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin.

Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateStaticRules() çağrısını yapın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural kimlik 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 grubu kimlik dizilerini içeren bir UpdateRulesetOptions nesnesini alır. Kimlikler, Ruleset sözlüğünün "id" anahtarı kullanılarak tanımlanır.

Kural oluşturma

Türü ne olursa olsun bir kural aşağıda gösterildiği gibi dört alanla başlar. "id" ve "priority" anahtarları sayı alırken "action" ve "condition" anahtarları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, alt dize olarak "abc" içeren URL'lerden "foo.com" kaynağından gelen 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 karakterler

Bir kuralın "condition" anahtarı, belirli bir alan altındaki URL'lerde işlem yapmak için "urlFilter" anahtarına izin verir. Kalıplar, dize kalıbı eşleştirme jetonlarını kullanarak 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 önceliklendirme

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

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

Eşleştirme seçeneğini bu şekilde düşünebilirsiniz: Belirli bir uzantının öncelik verdiği her kural, diğer uzantıların kurallarına göre önceliklendirilir.

Bir uzantıda kural önceliklendirme

Önceliklendirme tek bir uzantıda şu süreç kullanılarak yapılır:

  1. Geliştirici tarafından tanımlanmış 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ın önceliği, "action" alanı kullanılarak aşağıdaki sırayla belirlenir:

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

  4. Aynı üstbilgiyi birden fazla kural değiştirirse değişiklik, geliştirici tanımlı "priority" alanı ve belirtilen işlemler tarafından belirlenir.

    • Üstbilgiye bir kural eklenirse düşük öncelikli kurallar yalnızca o başlığa eklenebilir. Ayarlama ve kaldırma işlemlerine izin verilmiyor.
    • Bir kural bir başlık ayarlarsa düşük öncelikli kurallar yalnızca söz konusu başlığa eklenebilir. Başka değişiklik yapılmasına izin verilmez.
    • Bir kural üstbilgiyi kaldırırsa düşük öncelikli kurallar daha fazla üstbilgide değişiklik yapamaz.

Uzantılar arasında kural önceliklendirme

Yalnızca bir uzantının istekle eşleşen kuralı varsa bu kural uygulanır. Ancak, bir istekle birden fazla uzantı eşleşirse aşağıdaki işlem kullanılır:

  1. Kurallar, "action" alanı kullanılarak aşağıdaki sırayla ö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.

Güvenli kurallar

Güvenli kurallar block, allow, allowAllRequests veya upgradeScheme işlemi olan kurallar olarak tanımlanır. Bu kurallar, artırılmış bir dinamik kural kotasına tabidir.

Kural sınırları

Tarayıcıda kuralları yükleyip değerlendirmenin ek performans yükü vardır. Bu nedenle, API kullanılı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 tanımlanan 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 aynı anda bu kural kümelerinden yalnızca 50 tanesi etkinleştirilebilir. İkincisi ise MAX_NUMBER_OF_ENABLED_STATIC_RULESETS olarak adlandırılır. Bu kural kümeleri, toplu olarak en az 30.000 kural garanti edilir. Buna GUARANTEED_MINIMUM_STATIC_RULES adı verilir.

Bu süreden sonra kullanılabilecek kuralların sayısı, kullanıcının tarayıcısında yüklü tüm uzantıların kaç kuralı etkinleştirdiğine bağlıdır. Çalışma zamanında getAvailableStaticRuleCount() numaralı telefonu arayarak bu numarayı bulabilirsiniz. Kod örnekleri bölümünde bunun bir örneğini görebilirsiniz.

Oturum kuralları

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

Chrome 120'den önce toplam 5.000 dinamik ve oturum 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 30.000'lik daha büyük bir sınır bulunmaktadır. Bu sınır MAX_NUMBER_OF_DYNAMIC_RULES şeklindedir. 5.000 sınırını aşmayan güvenli olmayan kurallar da bu sınıra dahil edilir.

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

Normal ifadeleri kullanan kurallar

Tüm kural türleri normal ifadeler kullanabilir. Bununla birlikte, her türden normal ifade kurallarının toplam sayısı 1000'den fazla olamaz. Buna MAX_NUMBER_OF_REGEX_RULES denir.

Ayrıca, derlenen kuralların her biri 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. HTTP önbelleğinden gelen yanıtlar buna dahildir, ancak hizmet çalışanının onfetch işleyicisinden gelen yanıtları kapsamayabilir. declarativeNetRequest, hizmet çalışanı tarafından oluşturulan veya CacheStorage kaynağından alınan yanıtları etkilemez ancak hizmet çalışanında yapılan fetch() çağrılarını etkiler.

Web'den erişilebilen kaynaklar

Bir declarativeNetRequest kuralı, herkese açık kaynak isteğinden web erişimi olmayan bir kaynağa yönlendirme yapamaz. Aksi takdirde bir hata tetiklenir. Bu durum, belirtilen web erişilebilir kaynak, yönlendirme uzantısına ait olsa bile geçerlidir. declarativeNetRequest kaynaklarını bildirmek için manifestin "web_accessible_resources" dizisini kullanın.

Örnekler

Kod örnekleri

Dinamik kuralları güncelleme

Aşağıdaki örnekte updateDynamicRules() yönteminin 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, kural kümelerinin kullanılabilir ve etkin statik kural gruplarının maksimum sayısı dikkate alınarak nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. Bunu, ihtiyacınız olan statik kural sayısı izin verilen sayıyı aştığında yaparsınız. Bunun işe yaraması için bazı kural kümelerinizin, bazı kural kümeleriniz devre dışı bırakılmış şekilde yüklenmesi gerekir (manifest dosyasında "Enabled" ayarını false olarak belirleyin).

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çabilirsiniz.

"Öncelik" anahtarı

Bu örneklerde, *://*.example.com/* için ana makine izni gereklidir.

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

https://google.com adresine gidin
Bu URL'yi kapsayan iki kural vardır: 1 ve 4 kimliğine sahip kurallar. "block" işlemin önceliği "redirect" işleme göre daha yüksek olduğu için 1 kimliğine sahip kural geçerlidir. Diğer kurallar daha uzun URL'lere yönelik olduğu için geçerli değildir.
https://google.com/1234 adresine gidin
URL'nin daha uzun olması nedeniyle, kimliği 1 ve 4 olan kuralların yanı sıra kimliği 2 olan kural da artık eşleşmektedir. "allow", "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 tamamı bu URL ile eşleşiyor. Geliştirici tarafından tanımlanan öncelik grubun en yüksek olması nedeniyle 3 numaralı kural geçerlidir.
[
  {
    "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 örnekte, *://*.example.com/* için ana makine izni gereklidir.

Aşağıdaki örnekte, example.com'dan bir isteğin uzantının kendi 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 dosyasında /a.jpg öğesini web erişilebilir kaynak olarak beyan etmesi gerekir.

{
  "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 şema ile isteklere müdahale etmek için bir alan adı bağlayıcı ("||") kullanır. "transform" öğesindeki "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 öğesinden https://abc.xyz.com/path adresine yönlendirme yapmak için normal ifadeler kullanılmaktadır. "regexFilter" anahtarında, noktaların nasıl kod dışına alındığına ve yakalama grubunun "abc" veya "def" değerini seçtiğine dikkat edin. "regexSubstitution" anahtarı, "\1" kullanarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu durumda, "abc" değeri yönlendirilen URL'den alınır ve yerine koyulur.

{
  "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 örnek, hem ana çerçevedeki hem de alt çerçevelerdeki tüm çerezleri kaldırı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çeve için birinci taraf mı yoksa üçüncü taraf mı olduğunu açıklar. Bir isteğin, kaynaklandığı çerçeveyle aynı alan adına (eTLD+1) sahip olması durumunda isteğin birinci taraf olduğu kabul edilir.

Enum

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

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

ExtensionActionOptions

Chrome 88 ve sonraki sürümler

Özellikler

  • displayActionCountAsBadgeText

    boole isteğe bağlı

    Bir sayfaya ait işlem sayısının otomatik olarak uzantının rozet metni olarak gösterilip gösterilmeyeceğini belirler. Bu tercih, oturumlarda da aynı kalır.

  • 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 bir Ruleset'e karşılık gelen kimlik.

GetRulesFilter

Chrome 111 ve sonraki sürümler

Özellikler

  • ruleIds

    sayı[] isteğe bağlı

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

HeaderOperation

Chrome 86 ve sonraki sürümler

Bu, bir "modifyHeaders" kuralı için olası işlemleri açıklar.

Enum

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

"set"
Belirtilen üstbilgi için yeni bir değer ayarlayarak aynı ada sahip mevcut tüm üstbilgileri kaldırır.

"remove"
Belirtilen üstbilgi için 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 yanlış ise sağlanır.

MatchedRule

Özellikler

  • ruleId

    sayı

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

  • rulesetId

    dize

    Bu kuralın ait olduğu Ruleset öğesinin kimliği. Dinamik kural kümesinden kaynaklanan bir kural için bu değer, DYNAMIC_RULESET_ID değerine eşit olur.

MatchedRuleInfo

Özellikler

  • kural
  • tabId

    sayı

    Sekme hâlâ etkinse isteğin kaynaklandığı sekmenin tabId değeri. Diğer -1.

  • timeStamp

    sayı

    Kuralın eşleştirildiği zaman. Zaman damgaları, zaman için JavaScript kuralına karşılık gelir; diğer bir deyişle, dönemden bu yana geçen milisaniye sayısı.

MatchedRuleInfoDebug

Özellikler

MatchedRulesFilter

Özellikler

  • minTimeStamp

    sayı isteğe bağlı

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

  • tabId

    sayı isteğe bağlı

    Belirtilirse yalnızca belirtilen sekmenin kurallarını eşleştirir. -1 olarak ayarlanırsa etkin herhangi bir sekmeyle ilişkilendirilmeyen kurallarla eşleşir.

ModifyHeaderInfo

Chrome 86 ve sonraki sürümler

Özellikler

  • başlık

    dize

    Değiştirilecek başlığın adı.

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

  • value

    dize 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) ise, sorgu anahtarı yalnızca zaten varsa değiştirilir. Aksi takdirde, eksikse anahtar da eklenir. Varsayılan olarak yanlış 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

    dize isteğe bağlı

    Uzantı dizinine ilişkin yol. "/" ile başlamalıdır.

  • regexSubstitution

    dize isteğe bağlı

    regexFilter belirten kurallar için değiştirme kalıbı. URL'deki ilk regexFilter eşleşmesi bu kalıpla değiştirilecek. regexSubstitution içinde, karşılık gelen yakalama gruplarını eklemek için ters eğik çizgiyle çıkış karakterli rakamlar (\1 - \9) kullanılabilir. \0, eşleşen metnin tamamını belirtir.

  • transform

    URLTransform isteğe bağlı

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

  • url

    dize 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 expresson.

  • requireCapturing

    boole isteğe bağlı

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

RequestDetails

Özellikler

  • documentId

    dize isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir çerçeve içinyse ç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çinyse çerçevenin dokümanının yaşam döngüsü.

  • frameId

    sayı

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

  • frameType

    FrameType isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir çerçeve içinyse çerçevenin türü.

  • başlatan

    dize isteğe bağlı

    İsteğin başlatıldığı kaynak. Bu durum yönlendirmelere bağlı olarak değişmez. Kaynak opaksa "null" dizesi kullanılır.

  • method

    dize

    Standart HTTP yöntemi.

  • parentDocumentId

    dize isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir çerçeve içinse ve bir üst öğe içeriyorsa çerçevenin üst dokümanının benzersiz tanımlayıcısı.

  • parentFrameId

    sayı

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

  • requestId

    dize

    İsteğin kimliği. Bir tarayıcı oturumundaki istek kimlikleri 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

"connect"

"get"

"head"

"options"

"put"

ResourceType

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

Enum

"main_frame"

"sub_frame"

"stylesheet"

"script"

"image"

"font"

"object"

"xmlhttprequest"

"ping"

"csp_report"

"media"

"websocket"

"webtransport"

"webbundle"

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'den büyük olmalıdır.

  • önceliği

    sayı 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" olduğunda 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" olduğunda geçerlidir.

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

RuleActionType

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

Enum

"block"
Ağ isteğini engelleyin.

"redirect"
Ağ isteğini yönlendirir.

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

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

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

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

RuleCondition

Özellikler

  • domainType

    DomainType isteğe bağlı

    Ağ isteğinin, kaynağı olan alan için birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Atlanırsa tüm istekler kabul edilir.

  • alan

    string[] isteğe bağlı

    Chrome 101'den bu yana desteği sonlandırıldı

    Bunun yerine initiatorDomains kullan

    Kural, yalnızca domains listesinden gelen ağ isteklerini eşleştirir.

  • excludedDomains

    string[] isteğe bağlı

    Chrome 101'den bu yana desteği sonlandırıldı

    Bunun yerine excludedInitiatorDomains kullan

    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 özelliğine göre ö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ş alanlar için punycode kodlaması kullanın.
    • Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
    • Listelenen alanların alt alanları da hariç tutulur.
  • excludedRequestDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Alanlar excludedRequestDomains listesindekilerden biriyle eşleştiğinde kural ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu, requestDomains özelliğine göre ö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ş alanlar için punycode kodlaması kullanın.
    • Listelenen alanları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. Yalnızca bir requestMethods ve excludedRequestMethods 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. Yalnızca bir resourceTypes ve excludedResourceTypes belirtilmelidir. İkisi de belirtilmezse "main_frame" dışındaki tüm kaynak türleri engellenir.

  • excludedTabIds

    sayı[] 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 gelmeyen 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ğ isteklerini eşleştirir. 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ş alanlar için punycode kodlaması 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 belirtilmişse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, false'tur.

  • regexFilter

    dize isteğe bağlı

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

    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ı alan adlarında) ve ASCII olmayan diğer karakterlerin utf-8 biçiminde kodlanmış olduğu bir URL ile eşleştirilir.

  • requestDomains

    string[] isteğe bağlı

    Chrome 101 ve sonraki sürümler

    Kural, yalnızca alan adı requestDomains listesindekilerden biriyle 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ş alanlar için punycode kodlaması 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 istek yöntemlerinin listesi. Boş listeye izin verilmez.

    Not: requestMethods kural koşulu belirtildiğinde HTTP 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 ve main_frame kaynak türlerini içerebilir.

  • tabIds

    sayı[] 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 gelmeyen isteklerle eşleşir. Boş listeye izin verilmez. Yalnızca oturum kapsamlı kurallar için desteklenir.

  • urlFilter

    dize isteğe bağlı

    Ağ istek URL'si ile 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 ucunda kullanılırsa url'nin sırasıyla url'nin başını/sonunu belirtir.

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

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

    Bu nedenle urlFilter, şu bölümlerden oluşur: (isteğe bağlı sol/alan adı bağlantısı) + kalıp + (isteğe bağlı sağ bağlayıcı).

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

    ||* ile başlayan kalıba izin verilmiyor. 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ı alan adlarında) ve ASCII olmayan diğer karakterlerin utf-8 biçiminde kodlanmış olduğu bir URL ile eşleştirilir. Örneğin, istek URL'si http://abc.RU?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ım için ayrılmıştır.

  • yol

    dize

    JSON kural kümesinin uzantı dizinine göre 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ını artıracak 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

    dize 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" kullanılır, HTTP olmayan istekler için yoksayılır.

  • tabId

    sayı 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 -1'dir. Bu, isteğin bir sekmeyle ilgili olmadığı anlamına gelir.

  • 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 mevcut olmayan özellikleri 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

    sayı[] 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 bir Ruleset'e karşılık gelen kimlik grubu.

  • enableRulesetIds

    string[] isteğe bağlı

    Etkinleştirilmesi gereken statik bir Ruleset'e karşılık gelen kimlik grubu.

UpdateStaticRulesOptions

Chrome 111 ve sonraki sürümler

Özellikler

  • disableRuleIds

    sayı[] isteğe bağlı

    Devre dışı bırakılacak Ruleset içindeki kurallara karşılık gelen kimlik grubu.

  • enableRuleIds

    sayı[] isteğe bağlı

    Etkinleştirilecek Ruleset içindeki kurallara karşılık gelen kimlik grubu.

  • rulesetId

    dize

    Statik bir Ruleset'e karşılık gelen kimlik.

URLTransform

Özellikler

  • parça

    dize isteğe bağlı

    İsteğin yeni parçası. Boş olmalıdır, bu durumda mevcut parça temizlenir veya "#" ile başlamalıdır.

  • düzenleyen

    dize isteğe bağlı

    İsteğin yeni ana makinesi.

  • şifre

    dize isteğe bağlı

    İsteğin yeni şifresi.

  • yol

    dize isteğe bağlı

    İsteğin yeni yolu. Boşsa mevcut yol temizlenir.

  • bağlantı noktası

    dize isteğe bağlı

    İsteğin yeni bağlantı noktası. Boşsa mevcut bağlantı noktası temizlenir.

  • sorgu

    dize isteğe bağlı

    İstekle ilgili yeni sorgu. Boş olmalıdır. Bu durumda, mevcut sorgu temizlenir veya "?" ile başlamalıdır.

  • queryTransform

    QueryTransform isteğe bağlı

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

  • şema

    dize isteğe bağlı

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

  • kullanıcı adı

    dize 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 aramasının yapılabileceği zaman aralığı (dakika cinsinden). Ek aramalar hemen başarısız olur ve runtime.lastError olarak ayarlanır. Not: Kullanıcı hareketiyle ilişkili getMatchedRules çağrıları kotadan muaftır.

Değer

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89 ve sonraki sürümler

Etkin statik kural gruplarında bir uzantı için 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 öğesinin, GETMATCHEDRULES_QUOTA_INTERVAL süresi içinde kaç kez çağrılabileceği.

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ı ayrı değerlendirilir.

Değer

1.000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 ve sonraki sürümler

Bir uzantının ekleyebileceği, oturum kapsamlı kuralların maksimum 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()

Promise 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 kural sayısını döndürür.

Parametreler

  • geri çağırma

    işlev isteğe bağlı

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

    (count: number) => void

    • adet

      sayı

İlerlemeler

  • Taahhüt<sayı>

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

getDisabledRuleIds()

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

Belirtilen Ruleset içinde şu anda devre dışı olan statik kuralların listesini döndürür.

Parametreler

  • Sorgulanacak kural kümesini belirtir.

  • geri çağırma

    işlev 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 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.

getDynamicRules()

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

Uzantıya ilişkin 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

    işlev isteğe bağlı

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

    (rules: Rule[]) => void

İlerlemeler

  • Vaat<Kural[]>

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

getEnabledRulesets()

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

Geçerli etkin statik kural kümeleri grubunun kimliklerini döndürür.

Parametreler

  • geri çağırma

    işlev isteğe bağlı

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

    (rulesetIds: string[]) => void

    • rulesetIds

      dize[]

İlerlemeler

  • Promise<dize[]>

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

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 "declarativeNetRequestFeedback" izni olan veya filter politikasında belirtilen tabId için "activeTab" izni verilmiş olan uzantılar tarafından kullanılabilir. Not: Beş dakikadan uzun süre önce eşleştirilen etkin bir dokümanla ilişkilendirilmemiş kurallar döndürülmez.

Parametreler

İlerlemeler

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

getSessionRules()

Promise Chrome 90 ve sonraki sürümler
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Uzantının oturum kapsamlı 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

    işlev isteğe bağlı

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

    (rules: Rule[]) => void

İlerlemeler

  • Vaat<Kural[]>

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

isRegexSupported()

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

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

setExtensionActionOptions()

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

Sekmelerle ilgili işlem sayısının uzantı işleminin rozet metni olarak gösterilip gösterilmeyeceğ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

    işlev 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 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.

testMatchOutcome()

Promise Chrome 103 ve sonraki sürümler
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ılmak üzere tasarlandığından, yalnızca paketlenmemiş uzantılar için kullanılabilir.

Parametreler

İlerlemeler

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

updateDynamicRules()

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

Uzantının mevcut dinamik kural kümesini değiştirir. Öncelikle options.removeRuleIds politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules politikasında belirtilen kurallar eklenir. Notlar:

  • Bu güncelleme, tek bir atomik işlemle gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır veya 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_RULES, bir uzantının ekleyebileceği maksimum dinamik kural sayısıdır. Güvenli olmayan kuralların sayısı MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES'ı geçmemelidir.

Parametreler

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

    işlev 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 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.

updateEnabledRulesets()

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

Uzantı için etkin statik kural kümeleri grubunu günceller. İlk olarak options.disableRulesetIds içinde listelenen kimliklere sahip kural grupları kaldırılır, ardından options.enableRulesetIds politikasında listelenen kural grupları eklenir. Etkin statik kural kümeleri grubunun, uzantı güncellemeleri genelinde değil oturum genelinde devam ettiğini unutmayın. Yani rule_resources manifest anahtarı, her uzantı güncellemesinde etkin statik kural kümelerini belirler.

Parametreler

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

    işlev 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 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.

updateSessionRules()

Promise Chrome 90 ve sonraki sürümler
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

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

  • Bu güncelleme, tek bir atomik işlemle gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır veya hata döndürülür.
  • Bu kurallar, oturumlarda kalıcı değildir ve hafızaya kaydedilir.
  • MAX_NUMBER_OF_SESSION_RULES, bir uzantının ekleyebileceği maksimum oturum kuralı sayısıdır.

Parametreler

  • seçenekler
  • geri çağırma

    işlev 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 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.

updateStaticRules()

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

Ruleset'da tek tek statik kuralları devre dışı bırakır ve etkinleştirir. Devre dışı bırakılmış Ruleset kurallarında yapılan değişiklikler, etkinleştirildiği bir sonraki seferde geçerli olur.

Parametreler

  • geri çağırma

    işlev 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 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.

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ılması amaçlandığından, yalnızca "declarativeNetRequestFeedback" iznine sahip paketlenmemiş uzantılar için kullanılabilir.

Parametreler