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
veblock
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()
veonRuleMatchedDebug
. "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
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şiyorhttps://example.com/?param=google.com
||google.com
ile yanlış eşleşiyorhttps://google.company
https://www.google.com
ile yanlış eşleşiyorhttps://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
Ö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ümlerSekmenin işlem sayısının nasıl ayarlanması gerektiğiyle ilgili ayrıntılar.
GetDisabledRuleIdsOptions
Özellikler
- rulesetId
dize
Statik bir
Ruleset
ile eşleşen kimlik.
GetRulesFilter
Özellikler
- ruleIds
number[] isteğe bağlı
Belirtilmişse yalnızca eşleşen kimliklere sahip kurallar dahil edilir.
HeaderInfo
Ö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
veexcludedValues
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
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
Ö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ğerDYNAMIC_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
- istek
Kuralın eşleştiği istek hakkında ayrıntılar.
- kural
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
Özellikler
- başlık
dize
Değiştirilecek başlığın adı.
- işlem
Başlıkta gerçekleştirilecek işlem.
- value
dize isteğe bağlı
Başlığın yeni değeri.
append
veset
işlemleri için belirtilmelidir.
QueryKeyValue
Özellikler
- anahtar
dize
- replaceOnly
boolean isteğe bağlı
Chrome 94 veya daha yeni bir sürümDoğ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'dekiregexFilter
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
Ö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ızcaregexSubstition
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ümlerBu 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ümlerBu 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
veyasub_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ümlerBu 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ümlerBu 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.
- tür
İsteğin kaynak türü.
- url
dize
İsteğin URL'si.
RequestMethod
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.
- tür
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ınKural 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ınKural,
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ümKuralın eşleşmeyeceği istek yöntemlerinin listesi. Yalnızca bir
requestMethods
veexcludedRequestMethods
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
veexcludedResourceTypes
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 deresponseHeaders
belirtilmişseexcludedResponseHeaders
özelliği öncelikli olur. - excludedTabIds
number[] isteğe bağlı
Chrome 92 veya daha yeni bir sürümKuralı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
veyaregexFilter
'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
veyaregexFilter
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ümKuralı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ızcasub_frame
ilemain_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ümKuralı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
veyaregexFilter
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ğundaurlFilter
, 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
Ö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
Özellikler
- matchedRules
Varsayımsal istekle eşleşen kurallar (varsa).
TestMatchRequestDetails
Ö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.
- tür
Varsayımsal isteğin kaynak türü.
- url
dize
Varsayımsal isteğin URL'si.
UnsupportedRegexReason
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
Ö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
Özellikler
UpdateStaticRulesOptions
Özellikler
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
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
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
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
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" dinamik kural sayısı.
Değer
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" oturum kapsamlı kural sayısı.
Değer
5000
SESSION_RULESET_ID
Uzantı tarafından eklenen oturum kapsamlı kurallar için kural grubu kimliği.
Değer
"_session"
Yöntemler
getAvailableStaticRuleCount()
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.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
): Promise<number[]>
Belirtilen Ruleset
içinde şu anda devre dışı olan statik kuralların listesini döndürür.
Parametreler
- seçenekler
Sorgulanacak kural kümesini belirtir.
İ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ümGetirilen 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
-
Promise<RulesMatchedDetails>
Chrome 91 veya daha yeni bir sürüm
getSessionRules()
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ümGetirilen kurallar listesini filtrelemek için kullanılan bir nesne.
İadeler
-
Promise<Rule[]>
Chrome 91 veya daha yeni bir sürüm
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
): Promise<IsRegexSupportedResult>
Belirtilen normal ifadenin regexFilter
kural koşulu olarak desteklenip desteklenmeyeceğini kontrol eder.
Parametreler
- regexOptions
Kontrol edilecek normal ifade.
İadeler
-
Promise<IsRegexSupportedResult>
Chrome 91 veya daha yeni bir sürüm
setExtensionActionOptions()
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
- seçenekler
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürüm
testMatchOutcome()
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
- istek
İadeler
-
Promise<TestMatchOutcomeResult>
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
- seçeneklerChrome 87 ve sonraki sürümler
İ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
- seçeneklerChrome 87 ve sonraki sürümler
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürüm
updateSessionRules()
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
- seçenekler
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürüm
updateStaticRules()
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
- seçenekler
İ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
- callback
işlev
callback
parametresi şu şekilde görünür:(info: MatchedRuleInfoDebug) => void
- bilgi
-