chrome.declarativeNetRequest

Açıklama

chrome.declarativeNetRequest API, bildirim kuralları belirtilerek ağ isteklerini engellemek veya değiştirmek için kullanılır. Bu sayede uzantılar, ağ isteklerini engellemeden ve içeriklerini görüntülemeden değiştirebilir. Böylece daha fazla gizlilik sağlanır.

İzinler

declarativeNetRequest
declarativeNetRequestWithHostAccess

"declarativeNetRequest" ve "declarativeNetRequestWithHostAccess" izinleri aynı özellikleri sağlar. Bu izinler arasındaki fark, izinlerin istendiği veya verildiği zamandır.

"declarativeNetRequest"
Yükleme sırasında izin uyarısını tetikler ancak allow, allowAllRequests ve block kurallarına örtülü erişim sağlar. Toplantı sahiplerinden tam erişim isteğinde bulunmak zorunda kalmamak için mümkün olduğunda bu yöntemi kullanın.
"declarativeNetRequestFeedback"
Paketlenmemiş uzantılar için hata ayıklama özelliklerini etkinleştirir. Özellikle getMatchedRules() ve onRuleMatchedDebug.
"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. Bu, halihazırda ana makine izinlerine sahip bir uzantıda ek uyarılar oluşturmadan bildirimli ağ isteği kurallarını kullanmak istediğinizde uygundur.

Kullanılabilirlik

Chrome 84+

Manifest

Daha önce açıklanan izinlere ek olarak, belirli kural grubu türleri (özellikle statik kural grupları) "declarative_net_request" manifest anahtarının bildirilmesini gerektirir. 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ükler içeren bir dizidir. (Yalnızca bir dizi olduğundan "Ruleset" adının manifestin JSON'ında görünmediğini unutmayın.) Statik kural kümeleri bu belgenin ilerleyen kısımlarında açıklanmaktadır.

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

Kurallar ve kural kümeleri

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

  • Bir ağ isteğini engelleme
  • Şemayı yükseltin (http'den https'ye).
  • Eşleşen engellenen kuralları geçersiz kılarak isteğin engellenmesini önleyin.
  • Bir ağ isteğini yönlendirin.
  • İstek veya yanıt başlıklarını değiştirme

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

Dinamik
Tarayıcı oturumlarında ve uzantı yükseltmelerinde kalıcıdır ve bir 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 ile yönetilir.
Statik
Uzantı yüklendiğinde veya yükseltildiğ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 kuralları, bir uzantı kullanılırken JavaScript ile yönetilir.

  • Dinamik kurallar, tarayıcı oturumları ve uzantı yükseltmeleri boyunca kalıcı olur.
  • 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 birer tane vardır. Bir uzantı, kural sınırları aşılmadığı sürece updateDynamicRules() ve updateSessionRules() işlevlerini çağırarak kuralları dinamik olarak ekleyebilir veya 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 bununla ilgili bir örnek görebilirsiniz.

Statik kural kümeleri

Dinamik ve oturum kurallarının aksine, statik kurallar bir uzantı yüklendiğinde veya yükseltildiğinde paketlenir, yüklenir ve güncellenir. Bu dosyalar, yukarıda açıklandığı gibi "declarative_net_request" ve "rule_resources" anahtarları kullanılarak uzantıya belirtilen JSON biçimindeki kural dosyalarında ve bir veya daha fazla Ruleset sözlüğünde depolanır. Ruleset sözlüğü, kural dosyasına giden bir yolu, dosyada bulunan kural kümesinin kimliğini ve kural kümesinin etkinleştirilip devre dışı bırakıldığını içerir. Son ikisi, bir kural grubunu 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ınızı paketi açılmış olarak yükleyin. Geçersiz statik kurallarla ilgili hata ve uyarılar yalnızca açılmış uzantılar için gösterilir. Paketlenmiş uzantılardaki geçersiz statik kurallar yoksayılır.

Hızlı inceleme

Statik kural kümelerinde yapılan değişiklikler, hızlandırılmış incelemeye uygun olabilir. Uygun değişiklikler için hızlandırılmış inceleme başlıklı makaleyi inceleyin.

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

Hem tek tek statik kurallar hem de eksiksiz statik kural kümeleri çalışma zamanında etkinleştirilebilir veya devre dışı bırakılabilir.

Etkinleştirilen statik kurallar ve kural kümeleri, tarayıcı oturumları arasında korunur. Her ikisi de uzantı güncellemelerinde kalıcı değildir. Bu nedenle, güncellemeden sonra yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar kullanılabilir.

Performansı korumak amacıyla aynı anda etkinleştirilebilecek kural ve kural grubu sayısı da sınırlıdır. Etkinleştirilebilecek ek kural 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() numaralı telefonu arayın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kuralların kimlik dizilerini içeren bir UpdateStaticRulesOptions nesnesi alır. Kimlikler, Ruleset sözlüğünün "id" anahtarı kullanılarak tanımlanır. En fazla 5.000 devre dışı bırakılmış statik kural olabilir.

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

Kural oluşturma

Türden bağımsız olarak, bir kural aşağıdaki şekilde gösterildiği gibi dört alanla başlar. "id" ve "priority" tuşları bir sayı alırken "action" ve "condition" tuşları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, "foo.com" adresinden kaynaklanan ve alt dize olarak "abc" içeren tüm URL'lere yönelik 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 Request, URL'leri kalıp eşleme söz dizimi veya normal ifadelerle eşleştirme olanağı sağlar.

URL filtresi söz dizimi

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

urlFilter Eşleşmeler 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şullarda normal ifadeler de kullanılabilir. "regexFilter" tuşuna bakın. Bu koşullara uygulanan sınırlar hakkında bilgi edinmek için Normal ifadeler kullanan kurallar başlıklı makaleyi inceleyin.

İyi URL koşulları yazma

Kuralları yazarken her zaman alanın tamamıyla eşleşecek şekilde yazmaya özen gösterin. Aksi takdirde, kuralınız beklenmedik durumlarda eşleşebilir. Örneğin, kalıp eşleştirme söz dizimini kullanırken:

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

Şunları kullanabilirsiniz:

  • ||google.com/, tüm yollar ve tüm alt alan adlarıyla eşleşir.
  • |https://www.google.com/ tüm yollarla eşleşir ve alt alan adlarıyla eşleşmez.

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

Kural değerlendirmesi

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

İstekten önce

Bir istek yapılmadan önce, uzantı eşleşen bir kural kullanarak isteği engelleyebilir veya yönlendirebilir (şemayı HTTP'den HTTPS'ye yükseltme dahil).

Tarayıcı, her uzantı için eşleşen kuralların listesini belirler. modifyHeaders işlemi içeren kurallar daha sonra ele alınacağından buraya dahil edilmemiştir. Ayrıca, responseHeaders koşuluna sahip kurallar daha sonra (yanıt başlıkları kullanılabilir olduğunda) değerlendirilir ve dahil edilmez.

Ardından, Chrome her uzantı için istek başına en fazla bir aday seçer. Chrome, eşleşen tüm 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 öncelikli bir allowAllRequests kuralıyla eşleştiyse istek "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 ya da allowAllRequests sırasına göre sıralayarak yapar. İki kural aynı türdeyse Chrome, en son yüklenen uzantının kuralını seçer.

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

Chrome, istek üst bilgilerini sunucuya göndermeden önce üst bilgiler, 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. Eskiden olduğu gibi, yalnızca eşleşen allow veya allowAllRequests kurallarından daha yüksek önceliğe sahip kurallar dahil edilir.

Bu kurallar, Chrome tarafından daha yakın zamanda yüklenen bir uzantının kuralları her zaman daha eski bir uzantının kurallarından önce değerlendirilecek şekilde uygulanır. Ayrıca, bir uzantıdaki daha yüksek öncelikli kurallar, aynı uzantıdaki daha düşük öncelikli kurallardan önce uygulanır. Özellikle uzantılar arasında bile:

  • Bir kural bir başlığa ekleme yaparsa daha düşük öncelikli kurallar yalnızca bu başlığa ekleme yapabilir. Ayarlama ve kaldırma işlemlerine izin verilmez.
  • Bir kural başlık ayarlarsa yalnızca aynı uzantıdaki daha düşük öncelikli kurallar bu başlığa ekleme yapabilir. Başka değişikliklere izin verilmez.
  • Bir kural bir başlığı kaldırırsa daha düşük öncelikli kurallar başlığı daha fazla değiştiremez.

Yanıt alındıktan sonra

Yanıt başlıkları alındıktan sonra Chrome, responseHeaders koşuluna sahip kuralları değerlendirir.

Bu kuralları action ve priority'ye göre sıralayıp eşleşen bir allow veya allowAllRequests kuralı tarafından 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 zaten sunucuya gönderildiğini ve sunucunun istek gövdesi gibi verileri aldığını unutmayın. Yanıt üstbilgileri koşulu içeren bir engelleme veya yönlendirme kuralı yine de çalışır ancak isteği gerçekten engelleyemez ya da yönlendiremez.

Bir engelleme kuralı söz konusu olduğunda, bu durum isteği yapan sayfanın engellenmiş bir yanıt alması ve Chrome'un isteği erken sonlandırmasıyla ele alınır. Yönlendirme kuralı söz konusu olduğunda Chrome, yönlendirilen URL'ye yeni bir istek gönderir. Bu davranışların uzantınızın gizlilik beklentilerini karşılayıp karşılamadığını değerlendirin.

İstek engellenmez veya yönlendirilmezse Chrome, modifyHeaders kurallarını uygular. Yanıt başlıklarında değişiklik yapma, "İstek başlıkları gönderilmeden önce" bölümünde açıklandığı şekilde çalışır. İstek başlıklarında değişiklik yapmak, istek zaten yapıldığından hiçbir işe yaramaz.

Güvenli kurallar

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

Kural sınırları

Kuralların tarayıcıda yüklenmesi ve değerlendirilmesi performans açısından ek yük oluşturur. Bu nedenle, API kullanılırken bazı sınırlar geçerlidir. Sınırlar, kullandığınız kuralın türüne bağlıdır.

Statik kurallar

Statik kurallar, manifest dosyasında belirtilen kural dosyalarında tanımlanan kurallardır. Bir uzantı, "rule_resources" manifest anahtarı kapsamında en fazla 100 statik kural grubu belirtebilir ancak bu kural gruplarından yalnızca 50'si aynı anda etkinleştirilebilir. İkincisine MAX_NUMBER_OF_ENABLED_STATIC_RULESETS denir. Bu kural kümeleri toplu olarak en az 30.000 kural içerir. Buna GUARANTEED_MINIMUM_STATIC_RULES denir.

Bundan sonra kullanılabilecek kural sayısı, kullanıcının tarayıcısına yüklenen tüm uzantılar tarafından kaç kuralın etkinleştirildiğine bağlıdır. Bu numarayı çalışma zamanında getAvailableStaticRuleCount() numarasını arayarak bulabilirsiniz. Kod örnekleri bölümünde bununla ilgili bir örnek görebilirsiniz.

Oturum kuralları

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

Chrome 120'den önce, birleştirilmiş 5.000 dinamik ve oturum kuralı sınırı vardı.

Dinamik kurallar

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

Chrome 121'den itibaren, güvenli dinamik kurallar için 30.000 kural sınırı uygulanmaktadır. Bu sınır, MAX_NUMBER_OF_DYNAMIC_RULES olarak gösterilir. 5.000 sınırı içinde eklenen güvenli olmayan kurallar da bu sınıra dahil edilir.

Chrome 120'den önce, 5.000 birleşik dinamik ve oturum kuralı sınırı vardı.

Normal ifadeleri kullanan kurallar

Tüm kural türlerinde normal ifadeler kullanılabilir ancak her türden toplam normal ifade kuralı sayısı 1.000'i aşamaz. Buna MAX_NUMBER_OF_REGEX_RULES adı verilir.

Ayrıca, her kural derlendikten sonra 2 KB'tan küçük olmalıdır. Bu, kuralın karmaşıklığıyla kabaca 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 yok sayı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

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

Web'de erişilebilen kaynaklar

Bir declarativeNetRequest kuralı, herkese açık bir kaynak isteğinden web'e erişilemeyen bir kaynağa yönlendirme yapamaz. Bu durumda hata tetiklenir. Bu durum, belirtilen web'de erişilebilen kaynak, yönlendiren uzantıya ait olsa bile geçerlidir. declarativeNetRequest için kaynakları bildirmek üzere manifest dosyasının "web_accessible_resources" dizisini kullanın.

Üstbilgi 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()'nın nasıl çağrılacağı gösterilmektedir. updateSessionRules() için de aynı prosedür geçerlidir.

// Get arrays containing new and old rules const newRules = await getNewRules(); const oldRules = await chrome.declarativeNetRequest.getDynamicRules(); const oldRuleIds = oldRules.map(rule => rule.id);  // Use the arrays to update the dynamic rules await chrome.declarativeNetRequest.updateDynamicRules({   removeRuleIds: oldRuleIds,   addRules: newRules }); 

Statik kural kümelerini güncelleme

Aşağıdaki örnekte, kullanılabilir kural kümelerinin sayısı ve etkinleştirilen statik kural kümelerinin maksimum sayısı dikkate alınarak kural kümelerinin nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. Bu işlemi, ihtiyacınız olan statik kural sayısı izin verilen sayıyı aştığında yaparsınız. Bu özelliğin çalışması için bazı kural kümelerinizin yüklenmesi, bazılarının ise devre dışı bırakılması (manifest dosyasında "Enabled" ayarının false olarak belirlenmesi) gerekir.

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 kurallara nasıl öncelik verdiği gösterilmektedir. Bu kuralları incelerken önceliklendirme kurallarını ayrı bir pencerede açmak isteyebilirsiniz.

"priority" anahtarı

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

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

https://google.com adresine gitme
Bu URL'yi kapsayan iki kural var: 1 ve 4 kimlikli kurallar. "block" işlemleri, "redirect" işlemlerinden daha yüksek önceliğe sahip olduğundan 1 kimlikli kural uygulanır. Diğer kurallar daha uzun URL'ler için olduğundan geçerli değildir.
https://google.com/1234 adresine gitme
Daha uzun URL nedeniyle, 1 ve 4 kimlikli kurallara ek olarak 2 kimlikli kural da artık eşleşiyor. "allow", "block" ve "redirect"'den daha yüksek önceliğe sahip olduğundan 2 kimlikli kural uygulanır.
https://google.com/12345 adresine gitme
Bu URL, dört kuralın tümüyle eşleşiyor. Geliştirici tarafından tanımlanan önceliği gruptaki en yüksek öncelik olduğundan 3 kimlikli kural uygulanır.
[   {     "id": 1,     "priority": 1,     "action": { "type": "block" },     "condition": {"urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }   },   {     "id": 2,     "priority": 1,     "action": { "type": "allow" },     "condition": { "urlFilter": "||google.com/123", "resourceTypes": ["main_frame"] }   },   {     "id": 3,     "priority": 2,     "action": { "type": "block" },     "condition": { "urlFilter": "||google.com/12345", "resourceTypes": ["main_frame"] }   },   {     "id": 4,     "priority": 1,     "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },     "condition": { "urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }   }, ] 

Yönlendirmeler

Aşağıdaki örnekte, *://*.example.com/* için ana makine izni gerekir.

Aşağıdaki örnekte, example.com'dan gelen bir isteğin uzantının içindeki bir sayfaya nasıl yönlendirileceği gösterilmektedir. Uzantı yolu /a.jpg, chrome-extension://EXTENSION_ID/a.jpg olarak çözümlenir. Burada EXTENSION_ID, uzantınızın kimliğidir. Bu özelliğin çalışması için manifest, /a.jpg uygulamasını web'de erişilebilen kaynak olarak bildirmelidir.

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

Aşağıdaki örnekte, example.com'un bir alt alanına yönlendirmek için "transform" anahtarı kullanılmaktadır. example.com'dan gelen tüm şemaları içeren istekleri yakalamak için bir alan adı sabitleyicisi ("||") kullanılır. "transform" içindeki "scheme" anahtarı, alt alana yönlendirmelerde her zaman "https" kullanılacağı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 adresinden https://abc.xyz.com/path adresine yönlendirmek için normal ifadeler kullanılmaktadır. "regexFilter" anahtarında, noktaların nasıl kaçırıldığına ve yakalama grubunun "abc" veya "def"i nasıl seçtiğine dikkat edin. "regexSubstitution" anahtarı, "\1" kullanılarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu durumda, yönlendirilen URL'den "abc" yakalanır ve yerine yerleştirilir.

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

Üst bilgiler

Aşağıdaki ö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çeveye göre birinci taraf mı yoksa üçüncü taraf mı olduğunu açıklar. Bir isteğin, isteğin kaynaklandığı çerçeveyle aynı alana (eTLD+1) sahip olması durumunda birinci taraf olduğu söylenir.

Enum

"firstParty"
Ağ isteği, kaynaklandığı çerçeveye ait birinci taraf isteğidir.

"thirdParty"
Ağ isteği, kaynaklandığı çerçeveye göre üçüncü taraftır.

ExtensionActionOptions

Chrome 88 ve sonraki sürümler

Özellikler

  • displayActionCountAsBadgeText

    boolean isteğe bağlı

    Bir sayfanın işlem sayısının, uzantının rozet metni olarak otomatik olarak gösterilip gösterilmeyeceği. Bu tercih, oturumlar arasında korunur.

  • tabUpdate

    TabActionCountUpdate isteğe bağlı

    Chrome 89 ve sonraki sürümler

    Sekmenin işlem sayısının nasıl ayarlanması gerektiğiyle ilgili ayrıntılar.

GetDisabledRuleIdsOptions

Chrome 111 veya daha yeni bir sürüm

Özellikler

  • rulesetId

    dize

    Statik bir Ruleset ile eşleşen kimlik.

GetRulesFilter

Chrome 111 veya daha yeni bir sürüm

Özellikler

  • ruleIds

    number[] isteğe bağlı

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

HeaderInfo

Chrome 128 veya daha yeni bir sürüm

Özellikler

  • excludedValues

    string[] isteğe bağlı

    Belirtilmişse başlık mevcut olsa bile değeri bu listedeki öğelerden en az birini içeriyorsa bu koşul eşleşmez. Bu, 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 belirtilmediğinde adla eşleşir.

  • values

    string[] isteğe bağlı

    Belirtilirse bu koşul, üstbilginin değeri bu listedeki en az bir kalıpla eşleştiğinde eşleşir. Bu, büyük/küçük harfe duyarsız üst bilgi değeri eşleşmesinin yanı sıra aşağıdaki yapıları destekler:

    "*" : Herhangi bir karakter sayısıyla eşleşir.

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

    "*" ve "?" karakterleri ters eğik çizgiyle çıkılabilir. Örneğin, "\*" ve "\?"

HeaderOperation

Chrome 86 ve sonraki sürümler

Bu, "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 başlık için yeni bir değer ayarlar ve aynı ada sahip mevcut başlıkları kaldırır.

"remove"
Belirtilen başlığa ait 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ışsa sağlanır.

MatchedRule

Özellikler

  • ruleId

    sayı

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

  • rulesetId

    dize

    Bu kuralın ait olduğu Ruleset kimliği. Dinamik kurallar grubundan kaynaklanan bir kural için bu değer DYNAMIC_RULESET_ID'a eşit olur.

MatchedRuleInfo

Özellikler

  • kural
  • tabId

    sayı

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

  • timeStamp

    sayı

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

MatchedRuleInfoDebug

Özellikler

MatchedRulesFilter

Özellikler

  • minTimeStamp

    number isteğe bağlı

    Belirtilmişse yalnızca verilen zaman damgasından sonraki kurallarla eşleşir.

  • tabId

    number isteğe bağlı

    Belirtilirse yalnızca söz konusu sekmedeki kurallarla eşleşir. -1 olarak ayarlanırsa etkin bir sekmeyle ilişkilendirilmemiş 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ıkta gerçekleştirilecek işlem.

  • value

    dize isteğe bağlı

    Başlığın yeni değeri. append ve set işlemleri için belirtilmelidir.

QueryKeyValue

Özellikler

  • anahtar

    dize

  • replaceOnly

    boolean isteğe bağlı

    Chrome 94 veya daha yeni bir sürüm

    Doğruysa sorgu anahtarı yalnızca zaten mevcutsa değiştirilir. Aksi takdirde, eksikse anahtar da eklenir. Varsayılan olarak false değerine ayarlanır.

  • value

    dize

QueryTransform

Özellikler

  • addOrReplaceParams

    QueryKeyValue[] isteğe bağlı

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

  • removeParams

    string[] isteğe bağlı

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

Redirect

Özellikler

  • extensionPath

    dize isteğe bağlı

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

  • regexSubstitution

    dize isteğe bağlı

    regexFilter belirten kurallar için değiştirme kalıbı. URL'deki regexFilter ile eşleşen ilk kısım bu kalıpla değiştirilir. regexSubstitution içinde, ters eğik çizgiyle çıkış karakteri eklenmiş rakamlar (\1 - \9) kullanılarak ilgili yakalama grupları eklenebilir. \0, eşleşen metnin tamamını ifade eder.

  • 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

    boolean isteğe bağlı

    Belirtilen regex büyük/küçük harfe duyarlı mı? Varsayılan değer true'dur.

  • normal ifade : regex

    dize

    Kontrol edilecek normal ifade.

  • requireCapturing

    boolean isteğe bağlı

    Belirtilen regex için yakalama gerekip gerekmediği. Yalnızca regexSubstition işlemi belirten yönlendirme kuralları için yakalama gerekir. Varsayılan değer false'tur.

RequestDetails

Özellikler

  • documentId

    dize isteğe bağlı

    Chrome 106 ve sonraki sürümler

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

  • documentLifecycle

    DocumentLifecycle isteğe bağlı

    Chrome 106 ve sonraki sürümler

    Bu istek bir çerçeve içinse çerç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 bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

  • frameType

    FrameType isteğe bağlı

    Chrome 106 ve sonraki sürümler

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

  • başlatan

    dize isteğe bağlı

    İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "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 üst öğesi varsa çerçevenin üst dokümanının benzersiz tanımlayıcısı.

  • parentFrameId

    sayı

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

  • requestId

    dize

    İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde 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 veya daha yeni bir sürüm

Bu, bir ağ isteğinin HTTP istek yöntemini açıklar.

Enum

"connect"

"delete"

"get"

"head"

"options"

"patch"

"post"

"put"

"other"

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"

"other"

Rule

Özellikler

  • işlem

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

  • koşul

    Bu kuralın tetiklendiği koşul.

  • id

    sayı

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

  • önceliği

    number isteğe bağlı

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

RuleAction

Özellikler

  • yönlendir

    Yönlendirme isteğe bağlı

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

  • requestHeaders

    ModifyHeaderInfo[] isteğe bağlı

    Chrome 86 ve sonraki sürümler

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

  • responseHeaders

    ModifyHeaderInfo[] isteğe bağlı

    Chrome 86 ve sonraki sürümler

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

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

RuleActionType

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

Enum

"block"
Ağ isteğini engelle.

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

"allow"
Ağ isteğine izin verin. İstek, kendisiyle eşleşen bir izin verme kuralı varsa engellenmez.

"upgradeScheme"
İstek http veya ftp ise ağ isteği URL'sinin düzenini https'ye yükseltin.

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

"allowAllRequests"
Çerçeve isteğinin kendisi de dahil olmak üzere, çerçeve hiyerarşisi içindeki tüm isteklere izin verin.

RuleCondition

Özellikler

  • domainType

    DomainType isteğe bağlı

    Ağ isteğinin, kaynaklandığı 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 beri kullanımdan kaldırıldı

    Bunun yerine initiatorDomains kullanın

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

  • excludedDomains

    string[] isteğe bağlı

    Chrome 101'den beri kullanımdan kaldırıldı

    Bunun yerine excludedInitiatorDomains kullanın

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

  • excludedInitiatorDomains

    string[] isteğe bağlı

    Chrome 101+

    Kural, excludedInitiatorDomains listesinden kaynaklanan ağ istekleriyle eşleşmez. Liste boşsa veya atlanırsa hiçbir alan adı hariç tutulmaz. Bu, initiatorDomains politikasına 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ı hâle getirilmiş alanlar için punycode kodlamasını kullanın.
    • Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
    • Listelenen alanların alt alanları da hariç tutulur.
  • excludedRequestDomains

    string[] isteğe bağlı

    Chrome 101+

    Alan adları excludedRequestDomains listesindeki bir alan adıyla eşleştiğinde kural, ağ istekleriyle eşleşmez. Liste boşsa veya atlanırsa hiçbir alan adı hariç tutulmaz. Bu, requestDomains politikasına 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ı hâle getirilmiş alanlar için punycode kodlamasını kullanın.
    • Listelenen alanların alt alanları da hariç tutulur.
  • excludedRequestMethods

    RequestMethod[] isteğe bağlı

    Chrome 91 veya daha yeni bir sürüm

    Kuralın eşleşmeyeceği istek yöntemlerinin listesi. Yalnızca bir requestMethods ve excludedRequestMethods belirtilmelidir. İkisinden hiçbiri 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 belirtilmemişse "main_frame" dışındaki tüm kaynak türleri engellenir.

  • excludedResponseHeaders

    HeaderInfo[] isteğe bağlı

    Chrome 128 veya daha yeni bir sürüm

    İ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 belirtilmişse excludedResponseHeaders özelliği öncelikli olur.

  • excludedTabIds

    number[] isteğe bağlı

    Chrome 92 veya daha yeni bir sürüm

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

  • initiatorDomains

    string[] isteğe bağlı

    Chrome 101+

    Kural yalnızca initiatorDomains listesinden gelen ağ istekleriyle eşleşir. Liste atlanı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ı hâle getirilmiş alanlar için punycode kodlamasını kullanın.
    • Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
    • Listelenen alanların alt alanları da eşleştirilir.
  • isUrlFilterCaseSensitive

    boolean isteğe bağlı

    urlFilter veya regexFilter'nin (hangisi belirtilmişse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer yanlış (false) değeridir.

  • regexFilter

    dize isteğe bağlı

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

    Not: Yalnızca bir urlFilter veya regexFilter belirtilebilir.

    Not: regexFilter yalnızca ASCII karakterlerinden oluşmalıdır. Bu, ana makinenin punycode biçiminde kodlandığı (uluslararası alan adları için) ve diğer tüm ASCII dışı karakterlerin UTF-8'de URL olarak kodlandığı bir URL ile eşleştirilir.

  • requestDomains

    string[] isteğe bağlı

    Chrome 101+

    Kural yalnızca alan adı requestDomains listesindeki bir alan adıyla eşleştiğinde ağ istekleriyle eşleşir. Liste atlanı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ı hâle getirilmiş alanlar için punycode kodlamasını kullanın.
    • Listelenen alanların alt alanları da eşleştirilir.
  • requestMethods

    RequestMethod[] isteğe bağlı

    Chrome 91 veya daha yeni bir sürüm

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

    Not: requestMethods kural koşulunun belirtilmesi, HTTP(s) olmayan istekleri de hariç tutar. excludedRequestMethods koşulunun belirtilmesi ise bu istekleri hariç tutmaz.

  • resourceTypes

    ResourceType[] isteğe bağlı

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

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

  • responseHeaders

    HeaderInfo[] isteğe bağlı

    Chrome 128 veya daha yeni bir sürüm

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

  • tabIds

    number[] isteğe bağlı

    Chrome 92 veya daha yeni bir sürüm

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

  • urlFilter

    dize isteğe bağlı

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

    "*" : Joker karakter: Herhangi bir karakter sayısıyla eşleşir.

    '|' : Sol/sağ sabitleme: Kalıbın iki ucundan birinde kullanılıyorsa URL'nin başlangıcını/sonunu belirtir.

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

    '^' : Ayırıcı karakter: Harf, rakam veya şu karakterler dışında 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ı sabitleyicisi) + desen + (isteğe bağlı sağ sabitleyicisi).

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

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

    Not: Yalnızca bir urlFilter veya regexFilter belirtilebilir.

    Not: urlFilter yalnızca ASCII karakterlerinden oluşmalıdır. Bu, ana makinenin punycode biçiminde kodlandığı (uluslararası alan adları için) ve diğer tüm ASCII dışı karakterlerin UTF-8'de URL olarak kodlandığı bir URL ile eşleştirilir. Örneğin, istek URL'si http://abc.рф?q=ф olduğunda urlFilter, http://abc.xn--p1ai/?q=%D1%84 URL'siyle eşleştirilir.

Ruleset

Özellikler

  • etkin

    boolean

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

  • id

    dize

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

  • yol

    dize

    JSON kurallarının 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ın artırılacağı tutar. Negatif değerler sayıyı azaltır.

  • tabId

    sayı

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

TestMatchOutcomeResult

Chrome 103 veya daha yeni bir sürüm

Özellikler

  • matchedRules

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

TestMatchRequestDetails

Chrome 103 veya daha yeni bir sürüm

Ö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" olur ve HTTP dışı istekler için yoksayılır.

  • responseHeaders

    object isteğe bağlı

    Chrome 129 veya daha yeni bir sürüm

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

  • tabId

    number isteğe bağlı

    Varsayımsal isteğin gerçekleştiği sekmenin kimliği. Gerçek bir sekme kimliğiyle eşleşmesi gerekmez. Varsayılan değer -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 dizimi açısından yanlış veya RE2 söz diziminde kullanılamayan özellikler kullanıyor.

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

UpdateRuleOptions

Chrome 87 ve sonraki sürümler

Özellikler

  • addRules

    Kural[] isteğe bağlı

    Eklenecek kurallar.

  • removeRuleIds

    number[] isteğe bağlı

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

UpdateRulesetOptions

Chrome 87 ve sonraki sürümler

Özellikler

  • disableRulesetIds

    string[] isteğe bağlı

    Devre dışı bırakılması gereken statik Ruleset ile ilişkili kimlikler kümesi.

  • enableRulesetIds

    string[] isteğe bağlı

    Etkinleştirilmesi gereken statik bir Ruleset ile eşleşen kimlikler grubu.

UpdateStaticRulesOptions

Chrome 111 veya daha yeni bir sürüm

Özellikler

  • disableRuleIds

    number[] isteğe bağlı

    Devre dışı bırakılacak Ruleset içindeki kurallara karşılık gelen kimlikler kümesi.

  • enableRuleIds

    number[] isteğe bağlı

    Etkinleştirilecek Ruleset içindeki kurallara karşılık gelen kimlikler kümesi.

  • rulesetId

    dize

    Statik bir Ruleset ile eşleşen kimlik.

URLTransform

Özellikler

  • parça

    dize isteğe bağlı

    İstek için yeni parça. 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ı

    İstek için yeni şifre.

  • yol

    dize isteğe bağlı

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

  • bağlantı noktası

    dize isteğe bağlı

    İstek için yeni bağlantı noktası. Boşsa mevcut bağlantı noktası temizlenir.

  • sorgu

    dize isteğe bağlı

    İstek için 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 ekleme, kaldırma veya değiştirme.

  • şema

    dize isteğe bağlı

    İstek için yeni şema. İzin verilen değerler "http", "https", "ftp" ve "chrome-extension"dır.

  • kullanıcı adı

    dize isteğe bağlı

    İstek için yeni kullanıcı adı.

Özellikler

DYNAMIC_RULESET_ID

Uzantı tarafından eklenen dinamik kurallar için kural grubu kimliği.

Değer

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules görüşmelerinin yapılabileceği, dakika cinsinden belirtilen zaman aralığı. Ek aramalar hemen başarısız olur ve runtime.lastError ayarlanır. Not: Kullanıcı hareketiyle ilişkili getMatchedRules çağrıları kotaya dahil değildir.

Değer

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89 ve sonraki sürümler

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

Değer

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

getMatchedRules işlevinin GETMATCHEDRULES_QUOTA_INTERVAL süresi içinde çağrılabileceği sayı.

Değer

20

MAX_NUMBER_OF_DYNAMIC_RULES

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

Değer

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 veya daha yeni bir sürüm

Bir uzantının aynı anda 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 kurallar kümesi ve kural kaynakları dosyasında belirtilenler için ayrı ayrı değerlendirilir.

Değer

1000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 ve sonraki sürümler

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

Değer

5000

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

5000

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

5000

SESSION_RULESET_ID

Chrome 90 veya daha yeni bir sürüm

Uzantı tarafından eklenen oturum kapsamlı kurallar için kural grubu kimliği.

Değer

"_session"

Yöntemler

getAvailableStaticRuleCount()

Chrome 89 ve sonraki sürümler
chrome.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>

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

İadeler

  • Promise<number>

    Chrome 91 veya daha yeni bir sürüm

getDisabledRuleIds()

Chrome 111 veya daha yeni bir sürüm
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
)
: Promise<number[]>

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

Parametreler

İadeler

  • Promise<number[]>

getDynamicRules()

chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
)
: Promise<Rule[]>

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

Parametreler

  • filtrele

    GetRulesFilter isteğe bağlı

    Chrome 111 veya daha yeni bir sürüm

    Getirilen kurallar listesini filtrelemek için kullanılan bir nesne.

İadeler

  • Promise<Rule[]>

    Chrome 91 veya daha yeni bir sürüm

getEnabledRulesets()

chrome.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>

Etkinleştirilmiş statik kural kümelerinin geçerli grubunun kimliklerini döndürür.

İadeler

  • Promise<string[]>

    Chrome 91 veya daha yeni bir sürüm

getMatchedRules()

chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
)
: Promise<RulesMatchedDetails>

Uzantı için eşleşen tüm kuralları döndürür. Arayanlar, filter belirterek eşleşen kurallar listesini isteğe bağlı olarak filtreleyebilir. Bu yöntem yalnızca "declarativeNetRequestFeedback" izni olan veya filter içinde belirtilen tabId için "activeTab" izni verilmiş uzantılar tarafından kullanılabilir. Not: Etkin bir dokümanla ilişkilendirilmeyen ve beş dakikadan uzun süre önce eşleştirilen kurallar döndürülmez.

Parametreler

  • filtrele

    MatchedRulesFilter isteğe bağlı

    Eşleşen kurallar listesini filtrelemek için kullanılan bir nesne.

İadeler

getSessionRules()

Chrome 90 veya daha yeni bir sürüm
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
)
: Promise<Rule[]>

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

Parametreler

  • filtrele

    GetRulesFilter isteğe bağlı

    Chrome 111 veya daha yeni bir sürüm

    Getirilen kurallar listesini filtrelemek için kullanılan bir nesne.

İadeler

  • Promise<Rule[]>

    Chrome 91 veya daha yeni bir sürüm

isRegexSupported()

Chrome 87 ve sonraki sürümler
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
)
: Promise<IsRegexSupportedResult>

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

Parametreler

İadeler

setExtensionActionOptions()

Chrome 88 ve sonraki sürümler
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
)
: Promise<void>

Sekmeler için 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 sağlar.

Parametreler

İadeler

  • Promise<void>

    Chrome 91 veya daha yeni bir sürüm

testMatchOutcome()

Chrome 103 veya daha yeni bir sürüm
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
)
: Promise<TestMatchOutcomeResult>

Uzantının declarativeNetRequest kurallarından herhangi birinin varsayımsal bir istekle eşleşip eşleşmeyeceğini kontrol eder. Not: Bu özellik yalnızca uzantı geliştirme sırasında kullanılmak üzere tasarlandığından yalnızca paketi açılmamış uzantılar için kullanılabilir.

Parametreler

İadeler

updateDynamicRules()

chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
)
: Promise<void>

Uzantının mevcut dinamik kurallarını değiştirir. Önce options.removeRuleIds içinde listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules içinde verilen kurallar eklenir. Notlar:

  • Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenir ve kaldırılır ya da bir hata döndürülür.
  • Bu kurallar, tarayıcı oturumlarında ve uzantı güncellemelerinde kalıcı olarak saklanır.
  • 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'i aşmamalıdır.

Parametreler

İadeler

  • Promise<void>

    Chrome 91 veya daha yeni bir sürüm

updateEnabledRulesets()

chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
)
: Promise<void>

Uzantı için etkinleştirilen statik kural kümelerini günceller. Önce options.disableRulesetIds içinde listelenen kimliklere sahip kural kümeleri kaldırılır, ardından options.enableRulesetIds içinde listelenen kural kümeleri eklenir. Etkinleştirilen statik kurallar kümelerinin oturumlar arasında kalıcı olduğunu ancak uzantı güncellemeleri arasında kalıcı olmadığını unutmayın. Yani rule_resources manifest anahtarı, her uzantı güncellemesinde etkinleştirilen statik kurallar kümelerini belirler.

Parametreler

İadeler

  • Promise<void>

    Chrome 91 veya daha yeni bir sürüm

updateSessionRules()

Chrome 90 veya daha yeni bir sürüm
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
)
: Promise<void>

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

  • Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenir ve kaldırılır ya da bir hata döndürülür.
  • Bu kurallar oturumlar arasında kalıcı olmaz ve bellekte yedeklenir.
  • MAX_NUMBER_OF_SESSION_RULES, bir uzantının ekleyebileceği maksimum oturum kuralı sayısıdır.

Parametreler

İadeler

  • Promise<void>

    Chrome 91 veya daha yeni bir sürüm

updateStaticRules()

Chrome 111 veya daha yeni bir sürüm
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
)
: Promise<void>

Ruleset içindeki statik kuralları tek tek devre dışı bırakır ve etkinleştirir. Devre dışı bırakılmış bir Ruleset'a ait kurallarda yapılan değişiklikler, bu Ruleset bir sonraki sefer etkinleştirildiğinde geçerli olur.

Parametreler

İadeler

  • Promise<void>

Etkinlikler

onRuleMatchedDebug

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

Bir kural, istek ile eşleştiğinde tetiklenir. Yalnızca hata ayıklama amacıyla kullanılmak üzere tasarlandığından, yalnızca "declarativeNetRequestFeedback" izni olan açılmamış uzantılar için kullanılabilir.

Parametreler