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" izinler olanak sağlar. Aralarındaki fark, izinlerin emin olun.

"declarativeNetRequest"
Yükleme sırasında bir izin uyarısı tetikler ancak şunlara dolaylı erişim sağlar: allow, allowAllRequests ve block kuralları. Kaçınmak için mümkün olduğunda bunu kullanın erişim izni isteyebilir.
"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 ana makine istemeniz gerekir izin vermeniz gerekir. Bu Bir ek oluşturmasa da zaten ana makine izinlerine sahip olan uzantı uyarılar.

Kullanılabilirlik

Chrome 84 ve sonraki sürümler 'nı inceleyin.

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/*"
  ],
  ...
}

Kurallar ve kural kümeleri

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.

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. Görüntüleyin uygun değişikliklerin hızlı incelemesi.

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üncellemelerinde kalıcı olmaz. Yani, 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 nesnesini alır. Kimlikler, Ruleset sözlüğünün "id" anahtarı kullanılarak tanımlanır. Devre dışı bırakılan statik kural sayısı en fazla 5.000 olabilir.

Statik kuralları 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"]
  }
}

URL eşleştirme

Bildirimli Net İstek, URL'leri bir kalıpla eşleştirebilme olanağı sağlar eşleşen söz dizimi veya normal ifadeler.

URL filtresi söz dizimi

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://a.example.company
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

Normal ifadeler

Koşullar, normal ifadeleri de kullanabilir. Bkz. "regexFilter" tuşuna basın. bu koşullar için geçerli olan sınırlamaları inceleyin, Normal ifadelerin kullanıldığı kurallar.

İyi URL koşulları yazma

Her zaman alanın tamamıyla eşleşecek kurallar yazarken dikkatli olun. Aksi halde beklenmedik durumlarda eşleşebilir. Örneğin, kalıp eşleştirme söz dizimi:

  • google.com, https://example.com/?param=google.com ile yanlış eşleşiyor
  • ||google.com, https://google.company ile yanlış eşleşiyor
  • https://www.google.com, https://example.com/?param=https://www.google.com ile yanlış eşleşiyor

Şunları kullanabilirsiniz:

  • ||google.com/ tüm yollar ve tüm alt alanlarla eşleşir.
  • |https://www.google.com/ tüm yollarla eşleşir ve alt alan adı içermez.

Benzer şekilde, normal bir ifadeyi bağlamak için ^ ve / karakterlerini kullanın. Örneğin, örnek, ^https:\/\/www\.google\.com\/ sayfasındaki herhangi bir yolla eşleşir https://www.google.com.

Kural değerlendirme

DNR kuralları, ağ isteği yaşam döngüsünün çeşitli aşamalarında tarayıcı tarafından uygulanır.

İstekten önce

İstek yapılmadan önce bir uzantı eşleşen bir kuralla onu engelleyebilir veya yönlendirebilir (şemayı HTTP'den HTTPS'ye yükseltmek dahil).

Tarayıcı, her uzantı için bir eşleşme kuralları listesi belirler. modifyHeaders işlemi içeren kurallar daha sonra işleneceği için buraya dahil edilmemiştir. Ayrıca, responseHeaders koşulu olan kurallar daha sonra (yanıt başlıkları kullanılabilir olduğunda) dikkate alınır ve dahil edilmez.

Ardından Chrome, her uzantı için istek başına en fazla bir aday seçer. Chrome, tüm eşleşen kuralları önceliğe göre sıralayarak eşleşen bir kural bulur. Aynı önceliğe sahip kurallar işleme göre sıralanır (allow veya allowAllRequests > block > upgradeScheme > redirect).

Aday bir allow veya allowAllRequests kuralıysa ya da isteğin yapıldığı çerçeve daha önce bu uzantıdan daha yüksek veya eşit önceliğe sahip bir allowAllRequests kuralıyla eşleştiyse isteğe "izin verilir" ve uzantının istek üzerinde herhangi bir etkisi olmaz.

Birden fazla uzantı bu isteği engellemek veya yönlendirmek isterse tek bir işlem seçilir. Chrome bunu kuralları block > redirect veya upgradeScheme > allow veya allowAllRequests. Aynı türde iki kural olursa Chrome, en son yüklenen uzantıdan kuralı seçer.

İstek başlıkları gönderilmeden önce

Chrome, sunucuya istek üstbilgilerini göndermeden önce üstbilgiler, eşleşen modifyHeaders kurallarına göre güncellenir.

Chrome, tek bir uzantıda eşleşen tüm modifyHeaders kurallarını bularak yapılacak değişikliklerin listesini oluşturur. Öncekine benzer şekilde, yalnızca eşleşen allow veya allowAllRequests kurallarından daha yüksek önceliğe sahip olan kurallar dahil edilir.

Bu kurallar, Chrome tarafından, daha yeni yüklenen bir uzantıya ait kuralların her zaman eski bir uzantıya ait kurallardan önce değerlendirileceği sırayla uygulanır. Ayrıca, bir uzantıdan daha yüksek önceliğe sahip olan kurallar her zaman aynı uzantıdan daha düşük önceliğe sahip kurallardan önce uygulanır. Özellikle, uzantılarda bile:

  • Ü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 üstbilgi ayarlarsa aynı uzantıdan yalnızca düşük öncelikli kurallar 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.

Yanıt alındığında

Yanıt başlıkları alındıktan sonra Chrome, responseHeaders koşulu içeren kuralları değerlendirir.

Bu kuralları action ve priority ölçütlerine göre sıraladıktan ve eşleşen bir allow veya allowAllRequests kuralıyla gereksiz hale getirilen kuralları hariç tuttuktan sonra (bu işlem, "İstekten önce" bölümündeki adımlarla aynı şekilde gerçekleşir) Chrome, isteği bir uzantı adına engelleyebilir veya yönlendirebilir.

Bir istek bu aşamaya ulaştıysa isteğin sunucuya zaten gönderildiğini ve sunucunun, istek gövdesi gibi veriler aldığını unutmayın. Yanıt başlıkları koşulu olan bir engelleme veya yönlendirme kuralı çalışmaya devam eder ancak isteği engelleyemez ya da yönlendiremez.

Engelleme kuralı söz konusu olduğunda bu, isteğin engellenen bir yanıt almasını ve Chrome'un isteği erken sona erdirmesini sağlayan sayfa tarafından işlenir. Yönlendirme kuralı olması durumunda Chrome, yönlendirilen URL'ye yeni bir istekte bulunur. Bu davranışların, uzantınızla ilgili gizlilik beklentilerini karşılayıp karşılamadığını göz önünde bulundurduğunuzdan emin olun.

İstek engellenmezse veya yönlendirilmezse Chrome, tüm modifyHeaders kurallarını uygular. Yanıt başlıklarında yapılan değişikliklerin uygulanması, "İstek başlıkları gönderilmeden önce" bölümünde açıklanan şekilde gerçekleştirilir. İstek önceden yapıldığı için istek başlıklarında değişiklik yapmanın herhangi bir etkisi olmaz.

Güvenli kurallar

Güvenli kurallar; block, allow, allowAllRequests veya upgradeScheme. Bu kurallar, dinamik kurallar kotası.

Kural sınırları

Tarayıcıda kuralları yükleyip değerlendirmenin performansı, Bu nedenle, API kullanılırken bazı sınırlar uygulanır. Sınırlar, kampanyanın kuralından bahsedeceğiz.

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 kural 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üre sonunda 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 gösterim MAX_NUMBER_OF_SESSION_RULES.

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 gösterim MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.

Chrome 121'den itibaren güvenli dinamik kurallar için 30.000 kurallık daha büyük bir sınır vardır. MAX_NUMBER_OF_DYNAMIC_RULES olarak gösterilir. Herhangi biri 5.000 sınırı içinde 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 ifadeleri 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. Buna HTTP önbelleğinden gelen yanıtlar dahildir ancak hizmet çalışanının onfetch işleyicisinden gelen yanıtlar bulunmayabilir. 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ısı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.

Başlık değişikliği

Ekleme işlemi yalnızca şu başlıklar için desteklenir: accept, accept-encoding, accept-language, access-control-request-headers, cache-control, connection, content-language, cookie, forwarded, if-match, if-none-match, keep-alive, range, te, trailer, transfer-encoding, upgrade, user-agent, via, want-digest, x-forwarded-for.

Ö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 kıyaslandığı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. example.com'dan gelen herhangi bir şemayla isteklere müdahale etmek için bir alan adı bağlayıcısı ("||") kullanır. "transform" öğesindeki "scheme" anahtarı, alt alan adına 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"yi seçtiğine dikkat edin. veya "def" ekleyin. "regexSubstitution" anahtarı, "\1" kullanarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu örnekte, "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 'nı inceleyin.

Ö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 'nı inceleyin.

    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 'nı inceleyin.

Özellikler

  • rulesetId

    dize

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

GetRulesFilter

Chrome 111 ve sonraki sürümler 'nı inceleyin.

Özellikler

  • ruleIds

    sayı[] isteğe bağlı

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

HeaderInfo

Chrome 128 ve sonraki sürümler 'nı inceleyin.

Özellikler

  • excludedValues

    string[] isteğe bağlı

    Belirtilmişse bu koşul, üstbilginin mevcut olmasına rağmen değeri listede en az bir öğe içeriyorsa eşlenmez. Bu işlem, values ile aynı eşleşme kalıbı söz dizimini kullanır.

  • başlık

    dize

    Üstbilginin adı. Bu koşul, yalnızca values ve excludedValues belirtilmediyse adla eşleşir.

  • values

    string[] isteğe bağlı

    Belirtilmişse bu koşul, başlığın değeri bu listedeki en az bir kalıpla eşleşir. Bu, büyük/küçük harfe duyarlı olmayan üstbilgi değeri eşleştirmesinin yanı sıra aşağıdaki yapıları destekler:

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

    '?" : Sıfır veya bir karakterle eşleşir.

    "*" ve "?" ters eğik çizgiyle kodlanabilir, ör. "\*" ve '\?'

HeaderOperation

Chrome 86 ve sonraki sürümler 'nı inceleyin.

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

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 'nı inceleyin.

Ö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 'nı inceleyin.

Ö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 'nı inceleyin.

    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 'nı inceleyin.

Ö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 'nı inceleyin.

    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 'nı inceleyin.

    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 gösterir; pozitif değer, 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 'nı inceleyin.

    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. Bu opak bir kaynaksa 'null' dizesi oluşturmak için kullanılır.

  • method

    dize

    Standart HTTP yöntemi.

  • parentDocumentId

    dize isteğe bağlı

    Chrome 106 ve sonraki sürümler 'nı inceleyin.

    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 'nı inceleyin.

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

Enum

"connect"

"sil"

"get"

"head"

"options"

"yama"

"yayın"

"put"

"diğer"

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"

"diğer"

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 'nı inceleyin.

    İ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 'nı inceleyin.

    İ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 adları

    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 'nı inceleyin.

    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ı karakterlerinin de kullanılmasına 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 'nı inceleyin.

    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ı karakterlerinin de kullanılmasına 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 'nı inceleyin.

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

  • excludedResponseHeaders

    HeaderInfo[] isteğe bağlı

    Chrome 128 ve sonraki sürümler 'nı inceleyin.

    İstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşmez. Hem excludedResponseHeaders hem de responseHeaders belirtilirse excludedResponseHeaders özelliği öncelikli olur.

  • excludedTabIds

    sayı[] isteğe bağlı

    Chrome 92 ve sonraki sürümler 'nı inceleyin.

    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 'nı inceleyin.

    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ı karakterlerinin de kullanılmasına 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 'nı inceleyin.

    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ı karakterlerinin de kullanılmasına 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 'nı inceleyin.

    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.

  • responseHeaders

    HeaderInfo[] isteğe bağlı

    Chrome 128 ve sonraki sürümler 'nı inceleyin.

    İstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşir.

  • tabIds

    sayı[] isteğe bağlı

    Chrome 92 ve sonraki sürümler 'nı inceleyin.

    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ıma 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 'nı inceleyin.

Ö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 'nı inceleyin.

Özellikler

  • matchedRules

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

TestMatchRequestDetails

Chrome 103 ve sonraki sürümler 'nı inceleyin.

Ö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. Varsayılan olarak "get" kullanılır HTTP istekleri için geçerli olur ve HTTP olmayan istekler için yoksayılır.

  • responseHeaders

    nesne isteğe bağlı

    Beklemede

    İstek, gönderilmeden önce engellenmez veya yönlendirilmezse varsayımsal bir yanıt tarafından sağlanan başlıklar. Başlık adını bir dize değerleri listesiyle eşleyen bir nesne olarak temsil edilir. Belirtilmezse varsayımsal yanıt, başlıkların olmamasıyla eşleşen kurallarla eşleşebilecek boş yanıt başlıkları döndürür. Ör. {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • 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 'nı inceleyin.

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 'nı inceleyin.

Ö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 'nı inceleyin.

Ö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 'nı inceleyin.

Ö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" öğelerini içerir.

  • 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 'nı inceleyin.

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 'nı inceleyin.

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 'nı inceleyin.

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 'nı inceleyin.

Maksimum "güvenli olmayan" sayısı bir uzantının ekleyebileceği dinamik kurallardır.

Değer

5.000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120 ve sonraki sürümler 'nı inceleyin.

Maksimum "güvenli olmayan" sayısı veya uzantının ekleyebileceği oturum kapsamlı kurallar.

Değer

5.000

SESSION_RULESET_ID

Chrome 90 ve sonraki sürümler 'nı inceleyin.

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

    • sayı

      sayı

İadeler

  • Promise<number>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

getDisabledRuleIds()

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

İadeler

  • Vaat<sayı[]>

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

getDynamicRules()

Söz 'nı inceleyin.
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

  • filtrele

    GetRulesFilter isteğe bağlı

    Chrome 111 ve sonraki sürümler 'nı inceleyin.

    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

İadeler

  • Vaat<Kural[]>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

getEnabledRulesets()

Söz 'nı inceleyin.
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[]

İadeler

  • Promise&lt;string[]&gt;

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

getMatchedRules()

Söz 'nı inceleyin.
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

İadeler

  • Promise&lt;RulesMatchedDetails&gt;

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

getSessionRules()

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

  • filtrele

    GetRulesFilter isteğe bağlı

    Chrome 111 ve sonraki sürümler 'nı inceleyin.

    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

İadeler

  • Vaat<Kural[]>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, 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,
)

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

Parametreler

İadeler

  • Promise&lt;IsRegexSupportedResult&gt;

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, 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,
)

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 yöntem sunar.

Parametreler

  • geri çağırma

    işlev isteğe bağlı

    Chrome 89 ve sonraki sürümler 'nı inceleyin.

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

    () => void

İadeler

  • Taahhüt<void>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

testMatchOutcome()

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

İadeler

  • Promise&lt;TestMatchOutcomeResult&gt;

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

updateDynamicRules()

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

Uzantının mevcut dinamik kural grubunu değiştirir. Öncelikle options.removeRuleIds politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules öğesinde 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 'nı inceleyin.
  • geri çağırma

    işlev isteğe bağlı

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

    () => void

İadeler

  • Taahhüt<void>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

updateEnabledRulesets()

Söz 'nı inceleyin.
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 'nı inceleyin.
  • geri çağırma

    işlev isteğe bağlı

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

    () => void

İadeler

  • Taahhüt<void>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

updateSessionRules()

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

İadeler

  • Taahhüt<void>

    Chrome 91 ve sonraki sürümler 'nı inceleyin.

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.

updateStaticRules()

Söz 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ılan bir Ruleset kurala ait kurallarda yapılan değişiklikler, tekrar etkinleştirildiğinde geçerli olur.

Parametreler

  • geri çağırma

    işlev isteğe bağlı

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

    () => void

İadeler

  • Taahhüt<void>

    Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, 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