Açıklama
chrome.declarativeNetRequest
API, bildirim temelli kurallar belirleyerek ağ isteklerini engellemek veya değiştirmek için kullanılır. Bu sayede uzantılar, ağ isteklerini müdahale etmeden ve içeriklerini görüntülemeden değiştirerek daha fazla gizlilik sağlar.
İzinler
declarativeNetRequest
declarativeNetRequestWithHostAccess
"declarativeNetRequest
" ve "declarativeNetRequestWithHostAccess
" izinler
olanak sağlar. Aralarındaki fark, izinlerin
emin olun.
"declarativeNetRequest"
- Yükleme sırasında bir izin uyarısı tetikler ancak şunlara dolaylı erişim sağlar:
allow
,allowAllRequests
veblock
kuralları. Kaçınmak için mümkün olduğunda bunu kullanın erişim izni isteyebilir. "declarativeNetRequestFeedback"
- Özellikle
getMatchedRules()
veonRuleMatchedDebug
olmak üzere, paketlenmemiş uzantılar için hata ayıklama özelliklerini etkinleştirir. "declarativeNetRequestWithHostAccess"
- Yükleme sırasında izin uyarısı gösterilmez ancak ana makine istemeniz gerekir izin vermeniz gerekir. Bu Bir ek oluşturmasa da zaten ana makine izinlerine sahip olan uzantı uyarılar.
Kullanılabilirlik
Manifest
Önceden açıklanan izinlere ek olarak belirli kural grubu türleri (özellikle statik kural grupları) için "declarative_net_request"
manifest anahtarının tanımlanması gerekir. Bu anahtar, "rule_resources"
adlı tek bir anahtara sahip bir sözlük olmalıdır. Bu anahtar, aşağıda gösterildiği gibi Ruleset
türünde sözlükleri içeren bir dizidir. ("Kurallaret" adı yalnızca bir dizi olduğundan, manifest dosyasının JSON dosyasında "Kurallaret" adının görünmediğini unutmayın.) Statik kural kümeleri bu belgenin ilerleyen bölümlerinde açıklanmaktadır.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
Kurallar ve kural kümeleri
Bu API'yi kullanmak için bir veya daha fazla kural kümesi belirtin. Kural kümesi, bir kural dizisi içerir. Tek bir kural aşağıdakilerden birini yapar:
- Bir ağ isteğini engelleyin.
- Şemayı yeni sürüme geçirin (http'den https'ye).
- Eşleşen tüm engellenmiş kuralları hariç tutarak bir isteğin engellenmesini önleyin.
- Bir ağ isteğini yönlendirme.
- İstek veya yanıt başlıklarını değiştirin.
Biraz farklı şekillerde yönetilen üç tür kural kümesi vardır.
- Dinamik
- Tarayıcı oturumları ve uzantı yükseltmeleri arasında kalır ve uzantı kullanılırken JavaScript ile yönetilir.
- Oturum
- Tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir. Oturum kuralları, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.
- Statik
- Uzantılar yüklendiğinde veya yeni sürüme geçirildiğinde paketlenir, yüklenir ve güncellenir. Statik kurallar, JSON biçimli kural dosyalarında depolanır ve manifest dosyasında listelenir.
Dinamik ve oturum kapsamlı kural kümeleri
Dinamik ve oturum kural kümeleri, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.
- Dinamik kurallar, tarayıcı oturumları ve uzantı yükseltmeleri genelinde geçerliliğini korur.
- Tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde oturum kuralları temizlenir.
Bu kural grubu türlerinden yalnızca bir tanesi bulunur. Kural sınırlarının aşılmaması durumunda bir uzantı, updateDynamicRules()
ve updateSessionRules()
çağrılarını yaparak kurallara dinamik olarak kural ekleyebilir veya mevcut kuralları kaldırabilir. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin. Kod örnekleri bölümünde bunun bir örneğini görebilirsiniz.
Statik kural kümeleri
Dinamik kurallar ve oturum kurallarından farklı olarak, statik kurallar bir uzantı yüklendiğinde veya yeni sürüme geçirildiğinde paketlenir, yüklenir ve güncellenir. Bunlar, yukarıda açıklandığı gibi "declarative_net_request"
ve "rule_resources"
anahtarları ile bir veya daha fazla Ruleset
sözlüğü kullanılarak uzantıya belirtilen kural dosyalarında JSON biçiminde depolanır. Ruleset
sözlüğü, kural dosyasının yolunu, dosyada bulunan kural grubunun kimliğini ve kural kümesinin etkin veya devre dışı olup olmadığını içerir. Son ikisi, bir kural kümesini programatik olarak etkinleştirdiğinizde veya devre dışı bıraktığınızda önemlidir.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Kural dosyalarını test etmek için uzantıyı paketlenmemiş olarak yükleyin. Geçersiz statik kurallarla ilgili hata ve uyarılar yalnızca paketlenmemiş uzantılar için gösterilir. Paketlenmiş uzantılardaki geçersiz statik kurallar yoksayılır.
Hızlandırılmış inceleme
Statik kural gruplarında yapılan değişiklikler hızlandırılmış inceleme için uygun olabilir. Görüntüleyin uygun değişikliklerin hızlı incelemesi.
Statik kuralları ve kural kümelerini etkinleştirme ve devre dışı bırakma
Çalışma zamanında hem bağımsız statik kurallar hem de tam statik kural kümeleri etkinleştirilebilir veya devre dışı bırakılabilir.
Etkinleştirilmiş statik kurallar ve kural kümeleri, tarayıcı oturumları genelinde korunur. İkisi de uzantı güncellemelerinde kalıcı olmaz. Yani, güncelleme sonrasında yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar kullanılabilir.
Performansı korumak amacıyla, tek seferde etkinleştirilebilecek kural ve kural gruplarının sayısı için de sınırlar söz konusudur. Etkinleştirilebilecek ek kuralların sayısını kontrol etmek için getAvailableStaticRuleCount()
numaralı telefonu arayın. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin.
Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateStaticRules()
çağrısını yapın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural kimlik dizilerini içeren bir UpdateStaticRulesOptions
nesnesini alır. Kimlikler, Ruleset
sözlüğünün "id"
anahtarı kullanılarak tanımlanır. Devre dışı bırakılan statik kural sayısı en fazla 5.000 olabilir.
Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateEnabledRulesets()
çağrısı yapın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural grubu kimlik dizilerini içeren bir UpdateRulesetOptions
nesnesini alır. Kimlikler, Ruleset
sözlüğünün "id"
anahtarı kullanılarak tanımlanır.
Kural oluşturma
Türü ne olursa olsun bir kural aşağıda gösterildiği gibi dört alanla başlar. "id"
ve "priority"
anahtarları sayı alırken "action"
ve "condition"
anahtarları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, alt dize olarak "abc"
içeren URL'lerden "foo.com"
kaynağından gelen tüm komut dosyası isteklerini engeller.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
URL eşleştirme
Bildirimli Net İstek, URL'leri bir kalıpla eşleştirebilme olanağı sağlar eşleşen söz dizimi veya normal ifadeler.
URL filtresi söz dizimi
Bir kuralın "condition"
anahtarı, belirli bir alan altındaki URL'lerde işlem yapmak için "urlFilter"
anahtarına izin verir. Kalıplar, dize kalıbı eşleştirme jetonlarını kullanarak oluşturursunuz. Aşağıda birkaç örnek verilmiştir.
urlFilter |
Şununla eşleşiyor: | Eşleşmez |
---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz https://a.example.company |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
Normal ifadeler
Koşullar, normal ifadeleri de kullanabilir. Bkz.
"regexFilter"
tuşuna basın.
bu koşullar için geçerli olan sınırlamaları inceleyin,
Normal ifadelerin kullanıldığı kurallar.
İyi URL koşulları yazma
Her zaman alanın tamamıyla eşleşecek kurallar yazarken dikkatli olun. Aksi halde beklenmedik durumlarda eşleşebilir. Örneğin, kalıp eşleştirme söz dizimi:
google.com
,https://example.com/?param=google.com
ile yanlış eşleşiyor||google.com
,https://google.company
ile yanlış eşleşiyorhttps://www.google.com
,https://example.com/?param=https://www.google.com
ile yanlış eşleşiyor
Şunları kullanabilirsiniz:
||google.com/
tüm yollar ve tüm alt alanlarla eşleşir.|https://www.google.com/
tüm yollarla eşleşir ve alt alan adı içermez.
Benzer şekilde, normal bir ifadeyi bağlamak için ^
ve /
karakterlerini kullanın. Örneğin,
örnek, ^https:\/\/www\.google\.com\/
sayfasındaki herhangi bir yolla eşleşir
https://www.google.com.
Kural değerlendirme
DNR kuralları, ağ isteği yaşam döngüsünün çeşitli aşamalarında tarayıcı tarafından uygulanır.
İstekten önce
İstek yapılmadan önce bir uzantı eşleşen bir kuralla onu engelleyebilir veya yönlendirebilir (şemayı HTTP'den HTTPS'ye yükseltmek dahil).
Tarayıcı, her uzantı için bir eşleşme kuralları listesi belirler. modifyHeaders
işlemi içeren kurallar daha sonra işleneceği için buraya dahil edilmemiştir. Ayrıca, responseHeaders
koşulu olan kurallar daha sonra (yanıt başlıkları kullanılabilir olduğunda) dikkate alınır ve dahil edilmez.
Ardından Chrome, her uzantı için istek başına en fazla bir aday seçer. Chrome, tüm eşleşen kuralları önceliğe göre sıralayarak eşleşen bir kural bulur. Aynı önceliğe sahip kurallar işleme göre sıralanır (allow
veya allowAllRequests
> block
> upgradeScheme
> redirect
).
Aday bir allow
veya allowAllRequests
kuralıysa ya da isteğin yapıldığı çerçeve daha önce bu uzantıdan daha yüksek veya eşit önceliğe sahip bir allowAllRequests
kuralıyla eşleştiyse isteğe "izin verilir" ve uzantının istek üzerinde herhangi bir etkisi olmaz.
Birden fazla uzantı bu isteği engellemek veya yönlendirmek isterse tek bir işlem seçilir. Chrome bunu kuralları block
> redirect
veya upgradeScheme
> allow
veya allowAllRequests
. Aynı türde iki kural olursa Chrome, en son yüklenen uzantıdan kuralı seçer.
İstek başlıkları gönderilmeden önce
Chrome, sunucuya istek üstbilgilerini göndermeden önce üstbilgiler, eşleşen modifyHeaders
kurallarına göre güncellenir.
Chrome, tek bir uzantıda eşleşen tüm modifyHeaders
kurallarını bularak yapılacak değişikliklerin listesini oluşturur. Öncekine benzer şekilde, yalnızca eşleşen allow
veya allowAllRequests
kurallarından daha yüksek önceliğe sahip olan kurallar dahil edilir.
Bu kurallar, Chrome tarafından, daha yeni yüklenen bir uzantıya ait kuralların her zaman eski bir uzantıya ait kurallardan önce değerlendirileceği sırayla uygulanır. Ayrıca, bir uzantıdan daha yüksek önceliğe sahip olan kurallar her zaman aynı uzantıdan daha düşük önceliğe sahip kurallardan önce uygulanır. Özellikle, uzantılarda bile:
- Üstbilgiye bir kural eklenirse düşük öncelikli kurallar yalnızca o başlığa eklenebilir. Ayarlama ve kaldırma işlemlerine izin verilmiyor.
- Bir kural bir üstbilgi ayarlarsa aynı uzantıdan yalnızca düşük öncelikli kurallar söz konusu başlığa eklenebilir. Başka değişiklik yapılmasına izin verilmez.
- Bir kural üstbilgiyi kaldırırsa düşük öncelikli kurallar daha fazla üstbilgide değişiklik yapamaz.
Yanıt alındığında
Yanıt başlıkları alındıktan sonra Chrome, responseHeaders
koşulu içeren kuralları değerlendirir.
Bu kuralları action
ve priority
ölçütlerine göre sıraladıktan ve eşleşen bir allow
veya allowAllRequests
kuralıyla gereksiz hale getirilen kuralları hariç tuttuktan sonra (bu işlem, "İstekten önce" bölümündeki adımlarla aynı şekilde gerçekleşir) Chrome, isteği bir uzantı adına engelleyebilir veya yönlendirebilir.
Bir istek bu aşamaya ulaştıysa isteğin sunucuya zaten gönderildiğini ve sunucunun, istek gövdesi gibi veriler aldığını unutmayın. Yanıt başlıkları koşulu olan bir engelleme veya yönlendirme kuralı çalışmaya devam eder ancak isteği engelleyemez ya da yönlendiremez.
Engelleme kuralı söz konusu olduğunda bu, isteğin engellenen bir yanıt almasını ve Chrome'un isteği erken sona erdirmesini sağlayan sayfa tarafından işlenir. Yönlendirme kuralı olması durumunda Chrome, yönlendirilen URL'ye yeni bir istekte bulunur. Bu davranışların, uzantınızla ilgili gizlilik beklentilerini karşılayıp karşılamadığını göz önünde bulundurduğunuzdan emin olun.
İstek engellenmezse veya yönlendirilmezse Chrome, tüm modifyHeaders
kurallarını uygular. Yanıt başlıklarında yapılan değişikliklerin uygulanması, "İstek başlıkları gönderilmeden önce" bölümünde açıklanan şekilde gerçekleştirilir. İstek önceden yapıldığı için istek başlıklarında değişiklik yapmanın herhangi bir etkisi olmaz.
Güvenli kurallar
Güvenli kurallar; block
, allow
,
allowAllRequests
veya upgradeScheme
. Bu kurallar,
dinamik kurallar kotası.
Kural sınırları
Tarayıcıda kuralları yükleyip değerlendirmenin performansı, Bu nedenle, API kullanılırken bazı sınırlar uygulanır. Sınırlar, kampanyanın kuralından bahsedeceğiz.
Statik kurallar
Statik kurallar, manifest dosyasında tanımlanan kural dosyalarında belirtilen kurallardır. Bir uzantı, "rule_resources"
manifest anahtarının bir parçası olarak en fazla 100 statik kural belirtebilir ancak aynı anda bu kural kümelerinden yalnızca 50 tanesi etkinleştirilebilir. İkincisi ise MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
olarak adlandırılır. Bu kural kümeleri, toplu olarak en az 30.000 kural garanti edilir. Buna GUARANTEED_MINIMUM_STATIC_RULES
adı verilir.
Bu süre sonunda kullanılabilecek kuralların sayısı, kullanıcının tarayıcısında yüklü tüm uzantıların kaç kuralı etkinleştirdiğine bağlıdır. Çalışma zamanında getAvailableStaticRuleCount()
numaralı telefonu arayarak bu numarayı bulabilirsiniz. Kod örnekleri bölümünde bunun bir örneğini görebilirsiniz.
Oturum kuralları
Bir uzantının en fazla 5.000 oturum kuralı olabilir. Bu gösterim
MAX_NUMBER_OF_SESSION_RULES
.
Chrome 120'den önce toplam 5.000 dinamik ve oturum kuralı sınırı vardı.
Dinamik kurallar
Bir uzantının en az 5.000 dinamik kuralı olabilir. Bu gösterim
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Chrome 121'den itibaren güvenli dinamik kurallar için 30.000 kurallık daha büyük bir sınır vardır.
MAX_NUMBER_OF_DYNAMIC_RULES
olarak gösterilir. Herhangi biri
5.000 sınırı içinde güvenli olmayan kurallar da bu sınıra dahil edilir.
Chrome 120'den önce toplam 5.000 dinamik ve oturum kuralları sınırı vardı.
Normal ifadeleri kullanan kurallar
Tüm kural türleri normal ifadeleri kullanabilir; Bununla birlikte, her türden normal ifade kurallarının toplam sayısı 1000'den fazla olamaz. Buna MAX_NUMBER_OF_REGEX_RULES denir.
Ayrıca, derlenen kuralların her biri 2 KB'tan küçük olmalıdır. Bu, kabaca kuralın karmaşıklığıyla ilişkilidir. Bu sınırı aşan bir kural yüklemeye çalışırsanız, aşağıdaki gibi bir uyarı görürsünüz ve kural yoksayılır.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
Service Worker'larla etkileşimler
declarativeNetRequest, yalnızca ağ yığınına ulaşan istekler için geçerlidir. Buna HTTP önbelleğinden gelen yanıtlar dahildir ancak hizmet çalışanının onfetch
işleyicisinden gelen yanıtlar bulunmayabilir. declarativeNetRequest, hizmet çalışanı tarafından oluşturulan veya CacheStorage
kaynağından alınan yanıtları etkilemez ancak hizmet çalışanında yapılan fetch()
çağrısını etkiler.
Web'den erişilebilen kaynaklar
Bir declarativeNetRequest kuralı, herkese açık kaynak isteğinden web erişimi olmayan bir kaynağa yönlendirme yapamaz. Aksi takdirde bir hata tetiklenir. Bu durum, belirtilen web erişilebilir kaynak, yönlendirme uzantısına ait olsa bile geçerlidir. declarativeNetRequest kaynaklarını bildirmek için manifestin "web_accessible_resources"
dizisini kullanın.
Başlık değişikliği
Ekleme işlemi yalnızca şu başlıklar için desteklenir: accept
, accept-encoding
, accept-language
, access-control-request-headers
, cache-control
, connection
, content-language
, cookie
, forwarded
, if-match
, if-none-match
, keep-alive
, range
, te
, trailer
, transfer-encoding
, upgrade
, user-agent
, via
, want-digest
, x-forwarded-for
.
Örnekler
Kod örnekleri
Dinamik kuralları güncelleme
Aşağıdaki örnekte updateDynamicRules()
yönteminin nasıl çağrılacağı gösterilmektedir. updateSessionRules()
için prosedür aynıdır.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Statik kural kümelerini güncelleme
Aşağıdaki örnekte, kural kümelerinin kullanılabilir ve etkin statik kural gruplarının maksimum sayısı dikkate alınarak nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. Bunu, ihtiyacınız olan statik kural sayısı izin verilen sayıyı aştığında yaparsınız. Bunun işe yaraması için bazı kural kümelerinizin, bazı kural kümeleriniz devre dışı bırakılmış şekilde yüklenmesi gerekir (manifest dosyasında "Enabled"
ayarını false
olarak belirleyin).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
Kural örnekleri
Aşağıdaki örneklerde, Chrome'un bir uzantıdaki kuralları nasıl önceliklendirdiği gösterilmektedir. Bunları incelerken, önceliklendirme kurallarını ayrı bir pencerede açabilirsiniz.
"Öncelik" anahtar
Bu örneklerde, *://*.example.com/*
için ana makine izni gereklidir.
Belirli bir URL'nin önceliğini belirlemek için (geliştirici tanımlı) "priority"
anahtarına, "action"
anahtarına ve "urlFilter"
anahtarına bakın. Bu örnekler, altlarında gösterilen örnek kural dosyasına aittir.
- https://google.com adresine gidin
- Bu URL'yi kapsayan iki kural vardır: 1 ve 4 kimliğine sahip kurallar.
"block"
işlemin önceliği"redirect"
işleme göre daha yüksek olduğu için 1 kimliğine sahip kural geçerlidir. Diğer kurallar daha uzun URL'lere yönelik olduğu için geçerli değildir. - https://google.com/1234 adresine gidin
- URL'nin daha uzun olması nedeniyle, kimliği 1 ve 4 olan kuralların yanı sıra kimliği 2 olan kural da artık eşleşmektedir.
"allow"
,"block"
ve"redirect"
ile kıyaslandığında daha yüksek önceliğe sahip olduğu için 2 numaralı kural geçerlidir. - https://google.com/12345 adresine gidin
- Dört kuralın tamamı bu URL ile eşleşiyor. Geliştirici tarafından tanımlanan öncelik grubun en yüksek olması nedeniyle 3 numaralı kural geçerlidir.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "||google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "||google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
},
]
Yönlendirmeler
Aşağıdaki örnekte, *://*.example.com/*
için ana makine izni gereklidir.
Aşağıdaki örnekte, example.com'dan bir isteğin uzantının kendi içindeki bir sayfaya nasıl yönlendirileceği gösterilmektedir. /a.jpg
uzantı yolu chrome-extension://EXTENSION_ID/a.jpg
olarak çözümlenir. Burada EXTENSION_ID
, uzantınızın kimliğidir. Bunun işe yaraması için manifest dosyasında /a.jpg
öğesini web erişilebilir kaynak olarak beyan etmesi gerekir.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "||https://www.example.com/",
"resourceTypes": ["main_frame"]
}
}
Aşağıda, example.com'un bir alt alan adına yönlendirme yapmak için "transform"
anahtarı kullanılmaktadır. example.com'dan gelen herhangi bir şemayla isteklere müdahale etmek için bir alan adı bağlayıcısı ("||") kullanır. "transform"
öğesindeki "scheme"
anahtarı, alt alan adına yönlendirmelerin her zaman "https" kullanacağını belirtir.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com/",
"resourceTypes": ["main_frame"]
}
}
Aşağıdaki örnekte https://www.abc.xyz.com/path
öğesinden https://abc.xyz.com/path
adresine yönlendirme yapmak için normal ifadeler kullanılmaktadır. "regexFilter"
anahtarında, noktaların nasıl kod dışına alındığına ve yakalama grubunun "abc"yi seçtiğine dikkat edin. veya "def" ekleyin. "regexSubstitution"
anahtarı, "\1" kullanarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu örnekte, "abc" değeri, yönlendirilen URL'den alınır ve yerine koyulur.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Üst bilgiler
Aşağıdaki örnek, hem ana çerçevedeki hem de alt çerçevelerdeki tüm çerezleri kaldırır.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Türler
DomainType
Bu, isteğin, kaynaklandığı çerçeve için birinci taraf mı yoksa üçüncü taraf mı olduğunu açıklar. Bir isteğin, kaynaklandığı çerçeveyle aynı alan adına (eTLD+1) sahip olması durumunda isteğin birinci taraf olduğu kabul edilir.
Enum
"firstParty"
Ağ isteği, kaynaklandığı çerçevenin birinci tarafıdır.
"thirdParty"
Ağ isteği, kaynaklandığı çerçevenin üçüncü tarafıdır.
ExtensionActionOptions
Özellikler
-
displayActionCountAsBadgeText
boole isteğe bağlı
Bir sayfaya ait işlem sayısının otomatik olarak uzantının rozet metni olarak gösterilip gösterilmeyeceğini belirler. Bu tercih, oturumlarda da aynı kalır.
-
tabUpdate
TabActionCountUpdate isteğe bağlı
Chrome 89 ve sonraki sürümler 'nı inceleyin.Sekmenin işlem sayısının nasıl ayarlanması gerektiğine ilişkin ayrıntılar.
GetDisabledRuleIdsOptions
Özellikler
-
rulesetId
dize
Statik bir
Ruleset
'e karşılık gelen kimlik.
GetRulesFilter
Özellikler
-
ruleIds
sayı[] isteğe bağlı
Belirtilirse yalnızca eşleşen kimliklere sahip kurallar dahil edilir.
HeaderInfo
Özellikler
-
excludedValues
string[] isteğe bağlı
Belirtilmişse bu koşul, üstbilginin mevcut olmasına rağmen değeri listede en az bir öğe içeriyorsa eşlenmez. Bu işlem,
values
ile aynı eşleşme kalıbı söz dizimini kullanır. -
başlık
dize
Üstbilginin adı. Bu koşul, yalnızca
values
veexcludedValues
belirtilmediyse adla eşleşir. -
values
string[] isteğe bağlı
Belirtilmişse bu koşul, başlığın değeri bu listedeki en az bir kalıpla eşleşir. Bu, büyük/küçük harfe duyarlı olmayan üstbilgi değeri eşleştirmesinin yanı sıra aşağıdaki yapıları destekler:
'*' : Herhangi bir sayıda karakterle eşleşir.
'?" : Sıfır veya bir karakterle eşleşir.
"*" ve "?" ters eğik çizgiyle kodlanabilir, ör. "\*" ve '\?'
HeaderOperation
Bu, "modifyHeaders" için olası işlemleri açıklar. kuralı.
Enum
"append"
Belirtilen üstbilgi için yeni bir giriş ekler. Bu işlem, istek başlıkları için desteklenmez.
"set"
Belirtilen üstbilgi için yeni bir değer ayarlayarak aynı ada sahip mevcut tüm üstbilgileri kaldırır.
"remove"
Belirtilen üstbilgi için tüm girişleri kaldırır.
IsRegexSupportedResult
Özellikler
-
isSupported
boolean
-
neden
UnsupportedRegexReason isteğe bağlı
Normal ifadenin neden desteklenmediğini belirtir. Yalnızca
isSupported
yanlış ise sağlanır.
MatchedRule
Özellikler
-
ruleId
sayı
Eşleşen kuralın kimliği.
-
rulesetId
dize
Bu kuralın ait olduğu
Ruleset
öğesinin kimliği. Dinamik kural kümesinden kaynaklanan bir kural için bu değer,DYNAMIC_RULESET_ID
değerine eşit olur.
MatchedRuleInfo
Özellikler
-
kural
-
tabId
sayı
Sekme hâlâ etkinse isteğin kaynaklandığı sekmenin tabId değeri. Diğer -1.
-
timeStamp
sayı
Kuralın eşleştirildiği zaman. Zaman damgaları, zaman için JavaScript kuralına karşılık gelir; diğer bir deyişle, dönemden bu yana geçen milisaniye sayısı.
MatchedRuleInfoDebug
Özellikler
-
istek
Kuralın eşleştiği istekle ilgili ayrıntılar.
-
kural
MatchedRulesFilter
Özellikler
-
minTimeStamp
sayı isteğe bağlı
Belirtilirse yalnızca belirtilen zaman damgasından sonraki kurallarla eşleşir.
-
tabId
sayı isteğe bağlı
Belirtilirse yalnızca belirtilen sekmenin kurallarını eşleştirir. -1 olarak ayarlanırsa etkin herhangi bir sekmeyle ilişkilendirilmeyen kurallarla eşleşir.
ModifyHeaderInfo
Özellikler
-
başlık
dize
Değiştirilecek başlığın adı.
-
işlem
Başlık üzerinde gerçekleştirilecek işlem.
-
value
dize isteğe bağlı
Üstbilginin yeni değeri.
append
veset
işlemleri için belirtilmelidir.
QueryKeyValue
Özellikler
-
anahtar
dize
-
replaceOnly
boole isteğe bağlı
Chrome 94 ve sonraki sürümler 'nı inceleyin.True (doğru) ise, sorgu anahtarı yalnızca zaten varsa değiştirilir. Aksi takdirde, eksikse anahtar da eklenir. Varsayılan olarak yanlış değerine ayarlanır.
-
value
dize
QueryTransform
Özellikler
-
addOrReplaceParams
QueryKeyValue[] isteğe bağlı
Eklenecek veya değiştirilecek sorgu anahtar/değer çiftlerinin listesi.
-
removeParams
string[] isteğe bağlı
Kaldırılacak sorgu anahtarlarının listesi.
Redirect
Özellikler
-
extensionPath
dize isteğe bağlı
Uzantı dizinine ilişkin yol. "/" ile başlamalıdır.
-
regexSubstitution
dize isteğe bağlı
regexFilter
belirten kurallar için değiştirme kalıbı. URL'deki ilkregexFilter
eşleşmesi bu kalıpla değiştirilecek.regexSubstitution
içinde, karşılık gelen yakalama gruplarını eklemek için ters eğik çizgiyle çıkış karakterli rakamlar (\1 - \9) kullanılabilir. \0, eşleşen metnin tamamını belirtir. -
transform
URLTransform isteğe bağlı
Gerçekleştirilecek URL dönüşümleri.
-
url
dize isteğe bağlı
Yönlendirme URL'si. JavaScript URL'lerine yönlendirmelere izin verilmez.
RegexOptions
Özellikler
-
isCaseSensitive
boole isteğe bağlı
Belirtilen
regex
öğesinin büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, doğru değeridir. -
normal ifade : regex
dize
Kontrol edilecek normal expresson.
-
requireCapturing
boole isteğe bağlı
Belirtilen
regex
için yakalama gerekip gerekmediği. Yakalama yalnızcaregexSubstition
işlemi belirten yönlendirme kuralları için gereklidir. Varsayılan değer, false (yanlış) değeridir.
RequestDetails
Özellikler
-
documentId
dize isteğe bağlı
Chrome 106 ve sonraki sürümler 'nı inceleyin.Bu istek bir çerçeve içinyse çerçevenin dokümanının benzersiz tanımlayıcısı.
-
documentLifecycle
DocumentLifecycle isteğe bağlı
Chrome 106 ve sonraki sürümler 'nı inceleyin.Bu istek bir çerçeve içinyse çerçevenin dokümanının yaşam döngüsü.
-
frameId
sayı
0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir; pozitif değer, isteğin gerçekleştiği alt çerçevenin kimliğini belirtir. Bir (alt) çerçevenin dokümanı yüklenirse (
type
değerimain_frame
veyasub_frame
ise)frameId
, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini belirtir. Sekme içinde çerçeve kimlikleri benzersizdir. -
frameType
FrameType isteğe bağlı
Chrome 106 ve sonraki sürümler 'nı inceleyin.Bu istek bir çerçeve içinyse çerçevenin türü.
-
başlatan
dize isteğe bağlı
İsteğin başlatıldığı kaynak. Bu durum yönlendirmelere bağlı olarak değişmez. Bu opak bir kaynaksa 'null' dizesi oluşturmak için kullanılır.
-
method
dize
Standart HTTP yöntemi.
-
parentDocumentId
dize isteğe bağlı
Chrome 106 ve sonraki sürümler 'nı inceleyin.Bu istek bir çerçeve içinse ve bir üst öğe içeriyorsa çerçevenin üst dokümanının benzersiz tanımlayıcısı.
-
parentFrameId
sayı
İsteği gönderen çerçeveyi saran çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.
-
requestId
dize
İsteğin kimliği. Bir tarayıcı oturumundaki istek kimlikleri benzersizdir.
-
tabId
sayı
İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.
-
tür
İsteğin kaynak türü.
-
url
dize
İsteğin URL'si.
RequestMethod
Bu, bir ağ isteğinin HTTP istek yöntemini tanımlar.
Enum
"connect"
"sil"
"get"
"head"
"options"
"yama"
"yayın"
"put"
"diğer"
ResourceType
Bu, ağ isteğinin kaynak türünü açıklar.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"diğer"
Rule
Özellikler
-
işlem
Bu kural eşleşirse yapılacak işlem.
-
koşul
Bu kuralın tetiklendiği koşul.
-
id
sayı
Bir kuralı benzersiz şekilde tanımlayan kimlik. Zorunludur ve 1'den büyük olmalıdır.
-
önceliği
sayı isteğe bağlı
Kural önceliği. Varsayılan olarak 1 değerine ayarlanır. Belirtildiğinde >= 1 olmalıdır.
RuleAction
Özellikler
-
yönlendir
Yönlendirme isteğe bağlı
Yönlendirmenin nasıl yapılması gerektiğini açıklar. Yalnızca yönlendirme kuralları için geçerlidir.
-
requestHeaders
ModifyHeaderInfo[] isteğe bağlı
Chrome 86 ve sonraki sürümler 'nı inceleyin.İstek için değiştirilecek istek başlıkları. Yalnızca RuleActionType "modifyHeaders" olduğunda geçerlidir.
-
responseHeaders
ModifyHeaderInfo[] isteğe bağlı
Chrome 86 ve sonraki sürümler 'nı inceleyin.İstek için değiştirilecek yanıt başlıkları. Yalnızca RuleActionType "modifyHeaders" olduğunda geçerlidir.
-
tür
Gerçekleştirilecek işlemin türü.
RuleActionType
Belirli bir RuleCondition eşleştiğinde yapılacak işlemin türünü açıklar.
Enum
"block"
Ağ isteğini engelleyin.
"redirect"
Ağ isteğini yönlendirir.
"allow"
Ağ isteğine izin ver. Eşleşen bir izin verme kuralı varsa isteke müdahale edilmez.
"upgradeScheme"
İstek http veya ftp ise ağ isteği URL'sinin şemasını https olarak yükseltin.
"modifyHeaders"
Ağ isteğinden istek/yanıt başlıklarını değiştirin.
"allowAllRequests"
Çerçeve isteğinin kendisi de dahil olmak üzere bir çerçeve hiyerarşisindeki tüm isteklere izin verin.
RuleCondition
Özellikler
-
domainType
DomainType isteğe bağlı
Ağ isteğinin, kaynağı olan alan için birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Atlanırsa tüm istekler kabul edilir.
-
alan adları
string[] isteğe bağlı
Chrome 101'den bu yana desteği sonlandırıldıBunun yerine
initiatorDomains
kullanKural, yalnızca
domains
listesinden gelen ağ isteklerini eşleştirir. -
excludedDomains
string[] isteğe bağlı
Chrome 101'den bu yana desteği sonlandırıldıBunun yerine
excludedInitiatorDomains
kullanKural,
excludedDomains
listesinden gelen ağ istekleriyle eşleşmez. -
excludedInitiatorDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümler 'nı inceleyin.Kural,
excludedInitiatorDomains
listesinden gelen ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu,initiatorDomains
özelliğine göre önceliklidir.Notlar:
- "a.example.com" gibi alt alan adları karakterlerinin de kullanılmasına izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alanlar için punycode kodlaması kullanın.
- Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
- Listelenen alanların alt alanları da hariç tutulur.
-
excludedRequestDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümler 'nı inceleyin.Alanlar
excludedRequestDomains
listesindekilerden biriyle eşleştiğinde kural ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu,requestDomains
özelliğine göre önceliklidir.Notlar:
- "a.example.com" gibi alt alan adları karakterlerinin de kullanılmasına izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alanlar için punycode kodlaması kullanın.
- Listelenen alanların alt alanları da hariç tutulur.
-
excludedRequestMethods
RequestMethod[] isteğe bağlı
Chrome 91 ve sonraki sürümler 'nı inceleyin.Kuralın eşleşmeyeceği istek yöntemlerinin listesi. Yalnızca bir
requestMethods
veexcludedRequestMethods
belirtilmelidir. İkisi de belirtilmezse tüm istek yöntemleri eşleştirilir. -
excludedResourceTypes
ResourceType[] isteğe bağlı
Kuralın eşleşmeyeceği kaynak türlerinin listesi. Yalnızca bir
resourceTypes
veexcludedResourceTypes
belirtilmelidir. İkisi de belirtilmezse "main_frame" dışındaki tüm kaynak türleri engellendi. -
excludedResponseHeaders
HeaderInfo[] isteğe bağlı
Chrome 128 ve sonraki sürümler 'nı inceleyin.İstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşmez. Hem
excludedResponseHeaders
hem deresponseHeaders
belirtilirseexcludedResponseHeaders
özelliği öncelikli olur. -
excludedTabIds
sayı[] isteğe bağlı
Chrome 92 ve sonraki sürümler 'nı inceleyin.Kuralın eşleşmemesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, bir sekmeden gelmeyen istekleri hariç tutar. Yalnızca oturum kapsamlı kurallar için desteklenir. -
initiatorDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümler 'nı inceleyin.Kural, yalnızca
initiatorDomains
listesinden gelen ağ isteklerini eşleştirir. Liste çıkarılırsa kural, tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adları karakterlerinin de kullanılmasına izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alanlar için punycode kodlaması kullanın.
- Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
- Listelenen alanların alt alanları da eşleştirilir.
-
isUrlFilterCaseSensitive
boole isteğe bağlı
urlFilter
veyaregexFilter
öğesinin (hangisi belirtilmişse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, false'tur. -
regexFilter
dize isteğe bağlı
Ağ isteği URL'siyle eşleşecek normal ifade. Bu, RE2 söz dizimine uygundur.
Not:
urlFilter
veyaregexFilter
özelliklerinden yalnızca biri belirtilebilir.Not:
regexFilter
yalnızca ASCII karakterlerden oluşmalıdır. Bu, ana makinenin punycode biçiminde (uluslararası alan adlarında) ve ASCII olmayan diğer karakterlerin utf-8 biçiminde kodlanmış olduğu bir URL ile eşleştirilir. -
requestDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümler 'nı inceleyin.Kural, yalnızca alan adı
requestDomains
listesindekilerden biriyle eşleştiğinde ağ istekleriyle eşleşir. Liste çıkarılırsa kural, tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adları karakterlerinin de kullanılmasına izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alanlar için punycode kodlaması kullanın.
- Listelenen alanların alt alanları da eşleştirilir.
-
requestMethods
RequestMethod[] isteğe bağlı
Chrome 91 ve sonraki sürümler 'nı inceleyin.Kuralın eşleşebileceği HTTP istek yöntemlerinin listesi. Boş listeye izin verilmez.
Not:
requestMethods
kural koşulu belirtildiğinde HTTP olmayan istekler de hariç tutulur,excludedRequestMethods
belirtildiğinde ise hariç tutulmaz. -
resourceTypes
ResourceType[] isteğe bağlı
Kuralın eşleşebileceği kaynak türlerinin listesi. Boş listeye izin verilmez.
Not: Bu,
allowAllRequests
kuralları için belirtilmelidir ve yalnızcasub_frame
vemain_frame
kaynak türlerini içerebilir. -
responseHeaders
HeaderInfo[] isteğe bağlı
Chrome 128 ve sonraki sürümler 'nı inceleyin.İstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşir.
-
tabIds
sayı[] isteğe bağlı
Chrome 92 ve sonraki sürümler 'nı inceleyin.Kuralın eşleşmesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, bir sekmeden gelmeyen isteklerle eşleşir. Boş listeye izin verilmez. Yalnızca oturum kapsamlı kurallar için desteklenir. -
urlFilter
dize isteğe bağlı
Ağ istek URL'si ile eşleşen kalıp Desteklenen yapılar:
'*' : Joker karakter: Herhangi bir sayıda karakterle eşleşir.
'|' : Sol/sağ bağlayıcı: Kalıbın herhangi bir ucunda kullanılırsa url'nin sırasıyla url'nin başını/sonunu belirtir.
'||' : Alan adı bağlayıcı: Kalıbın başında kullanılırsa URL'nin bir (alt) alan adının başlangıcını belirtir.
'^' : Ayırıcı karakter: Bir harf, rakam veya şunlardan biri dışındaki her şeyle eşleşir:
_
,-
,.
veya%
. Bu, URL'nin sonuyla da eşleşir.Bu nedenle
urlFilter
, şu bölümlerden oluşur: (isteğe bağlı sol/alan adı bağlantısı) + kalıp + (isteğe bağlı sağ bağlayıcı).Atlanırsa tüm URL'ler eşleşir. Boş dizelere izin verilmez.
||*
ile başlayan kalıba izin verilmiyor. Bunun yerine*
politikasını kullanın.Not:
urlFilter
veyaregexFilter
özelliklerinden yalnızca biri belirtilebilir.Not:
urlFilter
yalnızca ASCII karakterlerden oluşmalıdır. Bu, ana makinenin punycode biçiminde (uluslararası alan adlarında) ve ASCII olmayan diğer karakterlerin utf-8 biçiminde kodlanmış olduğu bir URL ile eşleştirilir. Örneğin, istek URL'si http://abc.RU?q=Ä olduğunda,urlFilter
http://abc.xn--p1ai/?q=%D1%84 URL'siyle eşleştirilir.
Ruleset
Özellikler
-
etkin
boolean
Kural kümesinin varsayılan olarak etkin olup olmadığı.
-
id
dize
Kural kümesini benzersiz şekilde tanımlayan boş olmayan bir dize. "_" ile başlayan kimlikler dahili kullanıma ayrılmıştır.
-
yol
dize
JSON kural kümesinin uzantı dizinine göre yolu.
RulesMatchedDetails
Özellikler
-
rulesMatchedInfo
Belirtilen filtreyle eşleşen kurallar.
TabActionCountUpdate
Özellikler
-
artır
sayı
Sekmenin işlem sayısını artıracak miktar. Negatif değerler sayıyı azaltır.
-
tabId
sayı
İşlem sayısının güncelleneceği sekme.
TestMatchOutcomeResult
Ö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. Varsayılan olarak "get" kullanılır HTTP istekleri için geçerli olur ve HTTP olmayan istekler için yoksayılır.
-
responseHeaders
nesne isteğe bağlı
Beklemedeİstek, gönderilmeden önce engellenmez veya yönlendirilmezse varsayımsal bir yanıt tarafından sağlanan başlıklar. Başlık adını bir dize değerleri listesiyle eşleyen bir nesne olarak temsil edilir. Belirtilmezse varsayımsal yanıt, başlıkların olmamasıyla eşleşen kurallarla eşleşebilecek boş yanıt başlıkları döndürür. Ör.
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
-
tabId
sayı isteğe bağlı
Varsayımsal isteğin gerçekleştiği sekmenin kimliği. Gerçek bir sekme kimliğine karşılık gelmesi gerekmez. Varsayılan -1'dir. Bu, isteğin bir sekmeyle ilgili olmadığı anlamına gelir.
-
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 dizimsel olarak yanlış veya RE2 söz diziminde mevcut olmayan özellikleri kullanıyor.
"memoryLimitExceeded"
Normal ifade, bellek sınırını aşıyor.
UpdateRuleOptions
Özellikler
-
addRules
Kural[] isteğe bağlı
Eklenecek kurallar.
-
removeRuleIds
sayı[] isteğe bağlı
Kaldırılacak kuralların kimlikleri. Geçersiz kimlikler yoksayılır.
UpdateRulesetOptions
Özellikler
UpdateStaticRulesOptions
Özellikler
URLTransform
Özellikler
-
parça
dize isteğe bağlı
İsteğin yeni parçası. Boş olmalıdır, bu durumda mevcut parça temizlenir; veya '#' ile başlamalıdır.
-
düzenleyen
dize isteğe bağlı
İsteğin yeni ana makinesi.
-
şifre
dize isteğe bağlı
İsteğin yeni şifresi.
-
yol
dize isteğe bağlı
İsteğin yeni yolu. Boşsa mevcut yol temizlenir.
-
bağlantı noktası
dize isteğe bağlı
İsteğin yeni bağlantı noktası. Boşsa mevcut bağlantı noktası temizlenir.
-
sorgu
dize isteğe bağlı
İstekle ilgili yeni sorgu. Boş olmalıdır; bu durumda mevcut sorgu temizlenir; veya '?' ile başlamalıdır.
-
queryTransform
QueryTransform isteğe bağlı
Sorgu anahtar/değer çiftlerini ekleyin, kaldırın veya değiştirin.
-
şema
dize isteğe bağlı
İsteğin yeni şeması. İzin verilen değerler: "http", "https", "ftp" ve "chrome-extension" öğelerini içerir.
-
kullanıcı adı
dize isteğe bağlı
İsteğin yeni kullanıcı adı.
Özellikler
DYNAMIC_RULESET_ID
Uzantı tarafından eklenen dinamik kuralların kural kümesi kimliği.
Değer
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
aramasının yapılabileceği zaman aralığı (dakika cinsinden). Ek aramalar hemen başarısız olur ve runtime.lastError
olarak ayarlanır. Not: Kullanıcı hareketiyle ilişkili getMatchedRules
çağrıları kotadan muaftır.
Değer
10
GUARANTEED_MINIMUM_STATIC_RULES
Etkin statik kural gruplarında bir uzantı için garanti edilen minimum statik kural sayısı. Bu sınırın üzerindeki tüm kurallar genel statik kural sınırına dahil edilir.
Değer
30.000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
getMatchedRules
öğesinin, GETMATCHEDRULES_QUOTA_INTERVAL
süresi içinde kaç kez çağrılabileceği.
Değer
20
MAX_NUMBER_OF_DYNAMIC_RULES
Bir uzantının ekleyebileceği maksimum dinamik kural sayısı.
Değer
30.000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Bir uzantının herhangi bir zamanda etkinleştirebileceği maksimum statik Rulesets
sayısı.
Değer
50
MAX_NUMBER_OF_REGEX_RULES
Bir uzantının ekleyebileceği maksimum normal ifade kuralı sayısı. Bu sınır, dinamik kural grubu ve kural kaynakları dosyasında belirtilenler için ayrı ayrı değerlendirilir.
Değer
1.000
MAX_NUMBER_OF_SESSION_RULES
Bir uzantının ekleyebileceği, oturum kapsamlı kuralların maksimum sayısı.
Değer
5.000
MAX_NUMBER_OF_STATIC_RULESETS
Bir uzantının "rule_resources"
manifest anahtarının bir parçası olarak belirtebileceği maksimum statik Rulesets
sayısı.
Değer
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Maksimum "güvenli olmayan" sayısı bir uzantının ekleyebileceği dinamik kurallardır.
Değer
5.000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Maksimum "güvenli olmayan" sayısı veya uzantının ekleyebileceği oturum kapsamlı kurallar.
Değer
5.000
SESSION_RULESET_ID
Uzantı tarafından eklenen oturum kapsamlı kuralların kural kümesi kimliği.
Değer
"_session"
Yöntemler
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
Genel statik kural sınırına ulaşılmadan önce bir uzantının etkinleştirebileceği statik kural sayısını döndürür.
Parametreler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(count: number) => void
-
sayı
sayı
-
İadeler
-
Promise<number>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Belirtilen Ruleset
içinde şu anda devre dışı olan statik kuralların listesini döndürür.
Parametreler
-
seçenekler
Sorgulanacak kural kümesini belirtir.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(disabledRuleIds: number[]) => void
-
disabledRuleIds
numara[]
-
İadeler
-
Vaat<sayı[]>
Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Uzantıya ilişkin geçerli dinamik kural grubunu döndürür. Arayanlar isteğe bağlı olarak bir filter
belirterek getirilen kuralların listesini filtreleyebilir.
Parametreler
-
filtrele
GetRulesFilter isteğe bağlı
Chrome 111 ve sonraki sürümler 'nı inceleyin.Getirilen kurallar listesini filtreleyecek bir nesne.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İadeler
-
Vaat<Kural[]>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Geçerli etkin statik kural kümeleri grubunun kimliklerini döndürür.
Parametreler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rulesetIds: string[]) => void
-
rulesetIds
dize[]
-
İadeler
-
Promise<string[]>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
Uzantıyla eşleşen tüm kuralları döndürür. Arayanlar isteğe bağlı olarak bir filter
belirterek eşleşen kuralların listesini filtreleyebilir. Bu yöntem yalnızca "declarativeNetRequestFeedback"
izni olan veya filter
politikasında belirtilen tabId
için "activeTab"
izni verilmiş olan uzantılar tarafından kullanılabilir. Not: Beş dakikadan uzun süre önce eşleştirilen etkin bir dokümanla ilişkilendirilmemiş kurallar döndürülmez.
Parametreler
-
filtrele
MatchedRulesFilter isteğe bağlı
Eşleşen kurallar listesini filtreleyecek bir nesne.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(details: RulesMatchedDetails) => void
-
ayrıntılar
-
İadeler
-
Promise<RulesMatchedDetails>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Uzantının oturum kapsamlı kural grubunu döndürür. Arayanlar isteğe bağlı olarak bir filter
belirterek getirilen kuralların listesini filtreleyebilir.
Parametreler
-
filtrele
GetRulesFilter isteğe bağlı
Chrome 111 ve sonraki sürümler 'nı inceleyin.Getirilen kurallar listesini filtreleyecek bir nesne.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İadeler
-
Vaat<Kural[]>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Verilen normal ifadenin, regexFilter
kural koşulu olarak desteklenip desteklenmeyeceğini kontrol eder.
Parametreler
-
regexOptions
Kontrol edilecek normal ifadedir.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: IsRegexSupportedResult) => void
-
sonuç
-
İadeler
-
Promise<IsRegexSupportedResult>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Sekmelerle ilgili işlem sayısının uzantı işleminin rozet metni olarak gösterilip gösterilmeyeceğini yapılandırır ve bu işlem sayısının artırılması için bir yöntem sunar.
Parametreler
-
seçenekler
-
geri çağırma
işlev isteğe bağlı
Chrome 89 ve sonraki sürümler 'nı inceleyin.callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
Uzantının declarativeNetRequest kurallarından herhangi birinin varsayımsal bir istekle eşleşip eşleşmediğini kontrol eder. Not: Yalnızca uzantı geliştirme sırasında kullanılmak üzere tasarlandığından, yalnızca paketlenmemiş uzantılar için kullanılabilir.
Parametreler
-
istek
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: TestMatchOutcomeResult) => void
-
sonuç
-
İadeler
-
Promise<TestMatchOutcomeResult>
Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Uzantının mevcut dinamik kural grubunu değiştirir. Öncelikle options.removeRuleIds
politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
öğesinde belirtilen kurallar eklenir. Notlar:
- Bu güncelleme, tek bir atomik işlemle gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır veya hata döndürülür.
- Bu kurallar, tarayıcı oturumları ve uzantı güncellemeleri genelinde korunur.
- Uzantı paketinin bir parçası olarak belirtilen statik kurallar bu işlev kullanılarak kaldırılamaz.
MAX_NUMBER_OF_DYNAMIC_RULES
, bir uzantının ekleyebileceği maksimum dinamik kural sayısıdır. Güvenli olmayan kuralların sayısıMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
'ı geçmemelidir.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler 'nı inceleyin.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Uzantı için etkin statik kural kümeleri grubunu günceller. İlk olarak options.disableRulesetIds
içinde listelenen kimliklere sahip kural grupları kaldırılır, ardından options.enableRulesetIds
politikasında listelenen kural grupları eklenir.
Etkin statik kural kümeleri grubunun, uzantı güncellemeleri genelinde değil oturum genelinde devam ettiğini unutmayın. Yani rule_resources
manifest anahtarı, her uzantı güncellemesinde etkin statik kural kümelerini belirler.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler 'nı inceleyin.
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Uzantının oturum kapsamlı mevcut kural grubunu değiştirir. Öncelikle options.removeRuleIds
politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
öğesinde belirtilen kurallar eklenir. Notlar:
- Bu güncelleme, tek bir atomik işlemle gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır veya hata döndürülür.
- Bu kurallar, oturumlarda kalıcı değildir ve hafızaya kaydedilir.
MAX_NUMBER_OF_SESSION_RULES
, bir uzantının ekleyebileceği maksimum oturum kuralı sayısıdır.
Parametreler
-
seçenekler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Chrome 91 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Ruleset
'da tek tek statik kuralları devre dışı bırakır ve etkinleştirir. Devre dışı bırakılan bir Ruleset
kurala ait kurallarda yapılan değişiklikler, tekrar etkinleştirildiğinde geçerli olur.
Parametreler
-
seçenekler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Taahhüt<void>
Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
Etkinlikler
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Bir kural, bir istekle eşleştiğinde tetiklenir. Yalnızca hata ayıklama amacıyla kullanılması amaçlandığından, yalnızca "declarativeNetRequestFeedback"
iznine sahip paketlenmemiş uzantılar için kullanılabilir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(info: MatchedRuleInfoDebug) => void
-
bilgi
-