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ğ isteklerine müdahale edip içeriklerini görüntülemeden değişiklik yapabilir, böylece daha fazla gizlilik sağlar.
İzinler
declarativeNetRequest
declarativeNetRequestWithHostAccess
"declarativeNetRequest
" ve "declarativeNetRequestWithHostAccess
" izinleri aynı özellikleri sağlar. Aralarındaki fark, izinlerin istendiği veya verildiği zamanlardır.
"declarativeNetRequest"
- Yükleme sırasında bir izin uyarısı tetikler ancak
allow
,allowAllRequests
veblock
kurallarına dolaylı erişim sağlar. Ana makinelere tam erişim isteğinde bulunmanıza gerek kalmaması için mümkün olduğunda bunu kullanın. "declarativeNetRequestFeedback"
- Paketlenmemiş uzantılar, özellikle
getMatchedRules()
veonRuleMatchedDebug
için hata ayıklama özelliklerini etkinleştirir. "declarativeNetRequestWithHostAccess"
- Yükleme sırasında izin uyarısı gösterilmez ancak bir ana makine üzerinde herhangi bir işlem yapmadan önce ana makine izinleri istemeniz gerekir. Bu, ek uyarı oluşturmadan ana makine izinlerine sahip bir uzantıda bildirim temelli net istek kurallarını kullanmak istediğinizde uygundur.
Kullanılabilirlik
Manifest
Daha önce açıklanan izinlere ek olarak, belirli kural kümesi türleri ve özellikle statik kural kümeleri, "declarative_net_request"
manifest anahtarının tanımlanmasını gerektirir. Bu anahtar, "rule_resources"
adlı tek anahtarlı 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. ("Kurallaret" adının yalnızca bir dizi olduğu için manifest JSON dosyasında görünmediğini unutmayın.) Statik kural kümeleri bu dokümanın 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/*"
],
...
}
Kavramlar ve kullanım
Bu API'yi kullanmak için bir veya daha fazla kural kümesi belirtin. Kural kümesi, bir kural dizisi içerir. Tek bir kural aşağıdakilerden birini yapar:
- Bir ağ isteğini engelleyin.
- Şemayı yeni sürüme geçirin (http'den https'ye).
- Eşleşen engellenen kuralları iptal ederek isteğin engellenmesini önleyin.
- Ağ isteğini yönlendirin.
- İstek veya yanıt başlıklarını değiştirin.
Biraz farklı yöntemlerle yönetilen üç tür kural grubu vardır.
- Dinamik
- Tarayıcı oturumları ve uzantı yükseltmeleri arasında kalır ve uzantı kullanılırken JavaScript kullanılarak yönetilir.
- Oturum
- Tarayıcı kapandığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir. Oturum kuralları, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.
- Statik
- Uzantılar yüklendiğinde veya yeni sürüme geçirildiğinde paketlenir, yüklenir ve güncellenir. Statik kurallar, JSON biçimli kural dosyalarında depolanır ve manifest dosyasında listelenir.
Sonraki birkaç bölümde kural kümesi türleri ayrıntılı olarak açıklanmaktadır.
Dinamik ve oturum kapsamlı kural kümeleri
Dinamik ve oturum kural kümeleri, bir uzantı kullanılırken JavaScript kullanılarak yönetilir.
- Dinamik kurallar, tarayıcı oturumları arasında ve uzantı yükseltmelerinde korunur.
- Oturum kuralları, tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir.
Bu kural kümesi türlerinden yalnızca bir tane vardır. Bir uzantı, kural sınırlarının aşılmaması şartıyla updateDynamicRules()
ve updateSessionRules()
çağrılarını yaparak bunlara dinamik olarak kural ekleyebilir veya mevcut kuralları kaldırabilir. Kural sınırları hakkında bilgi için Kural sınırları başlıklı makaleyi inceleyin. Bunun bir örneğini, kod örnekleri altında görebilirsiniz.
Statik kural kümeleri
Dinamik kurallar ile 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ı ve bir veya daha fazla Ruleset
sözlüğü kullanılarak uzantıya belirtilen JSON biçiminde kural dosyalarında depolanır. Ruleset
sözlüğü, kural dosyasının yolunu, dosyadaki kural kümesinin kimliğini ve kural kümesinin etkin mi yoksa devre dışı mı olduğunu içerir. Bir kural kümesini programatik olarak etkinleştirdiğinizde veya devre dışı bıraktığınızda son ikisi ö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ı paketlenmemiş halde yükleyin. Geçersiz statik kurallarla ilgili hatalar ve uyarılar yalnızca paketlenmemiş uzantılar için gösterilir. Paketli uzantılarda geçersiz statik kurallar yoksayılır.
Hızlandırılmış yorum
Statik kural kümelerindeki değişiklikler hızlandırılmış inceleme için uygun olabilir. Uygun değişiklikler için hızlı inceleme bölümünü inceleyin.
Statik kuralları ve kural kümelerini etkinleştirin ve devre dışı bırakın
Çalışma zamanında hem bağımsız statik kurallar hem de tam statik kural grupları etkinleştirilebilir veya devre dışı bırakılabilir.
Etkinleştirilmiş statik kurallar ve kural kümeleri, tarayıcı oturumları genelinde korunur. Her ikisi de uzantı güncellemelerinde kalıcı olmaz. Yani, yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar güncellemeden sonra kullanılabilir.
Performansı korumak amacıyla, aynı anda etkinleştirilebilecek kuralların ve kural gruplarının sayısına yönelik sınırlar da vardır. Etkinleştirilebilecek ek kuralların sayısını kontrol etmek için getAvailableStaticRuleCount()
numaralı telefonu arayın. Kural sınırları hakkında bilgi için Kural sınırları başlıklı makaleyi inceleyin.
Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateStaticRules()
yöntemini çağırın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural kimliklerinin dizilerini içeren bir UpdateStaticRulesOptions
nesnesi alır. Kimlikler, Ruleset
sözlüğünün "id"
anahtarı kullanılarak tanımlanır.
Statik rulesets etkinleştirmek veya devre dışı bırakmak için updateEnabledRulesets()
çağrısı yapın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural gruplarının 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
Kural türü ne olursa olsun, aşağıda gösterildiği gibi dört alanla başlar. "id"
ve "priority"
anahtarları bir sayı alsa da "action"
ve "condition"
anahtarları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, "foo.com"
öğesinden gelen ve alt dize olarak "abc"
içeren tüm URL'lere yönelik tüm komut dosyası isteklerini engeller.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter eşleşen karakterleri
Bir kuralın "condition"
anahtarı, belirli bir alan altındaki URL'ler üzerinde 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 |
Şununla eşleşiyor: | Eşleşmez |
---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
Kural önceliği
Kurallar, web sayfalarından gönderilen istekler tarafından tetiklenir. Belirli bir istekle birden fazla kural eşleşiyorsa kurallara öncelik verilmelidir. Bu bölümde, bunların nasıl önceliklendirildiği açıklanmaktadır. Önceliklendirme iki aşamada gerçekleşir.
- Öncelik, bir uzantı içindeki kurallar için belirlenir.
- Bir isteğe birden fazla uzantı bir kural uygulayabiliyorsa belirli bir istekle eşleşen tüm uzantılar için öncelik belirlenir.
Şu şekilde eşleştirme yapılır: Belirli bir uzantının öncelik verdiği kural, diğer uzantılardaki kurallara göre önceliklendirilir.
Bir uzantı içinde kural önceliklendirme
Tek bir uzantıda, öncelik belirleme işlemi aşağıdaki süreç kullanılarak yapılır:
- Geliştirici tarafından tanımlanan en yüksek önceliğe sahip kural (yani
"priority"
alanı) döndürülür. Geliştirici tarafından tanımlanmış en yüksek önceliğe sahip birden fazla kural varsa kurallar,
"action"
alanı kullanılarak aşağıdaki sırada önceliklendirilir:allow
allowAllRequests
block
upgradeScheme
redirect
İşlem türü
block
veyaredirect
değilse eşleşen tümmodifyHeaders
kuralları değerlendirilir. Geliştirici tarafından tanımlanmış önceliğiallow
veallowAllRequests
için belirtilen öncelikten düşük olan kuralların yok sayılacağını unutmayın.Birden fazla kural aynı başlığı değiştirirse değişiklik, geliştirici tarafından tanımlanan
"priority"
alanı ve belirtilen işlemler tarafından belirlenir.- Üstbilgiye bir kural eklenirse düşük öncelikli kurallar yalnızca bu başlığa eklenebilir. Ayarlama ve kaldırma işlemlerine izin verilmez.
- Kural, bir başlık oluşturuyorsa düşük öncelikli kurallar yalnızca bu başlığa eklenebilir. Başka değişiklik yapılmasına izin verilmez.
- Kural bir başlığı kaldırırsa düşük öncelikli kurallar başlıkta daha fazla değişiklik yapamaz.
Uzantılar arasında kural önceliklendirme
Bir istekle eşleşen yalnızca bir uzantı varsa bu kural uygulanır. Ancak bir istekle birden fazla uzantı eşleşirse aşağıdaki süreç kullanılır:
Kurallar,
"action"
alanı kullanılarak aşağıdaki sıraya göre önceliklendirilir:block
redirect
veyaupgradeScheme
allow
veyaallowAllRequests
Birden fazla kural eşleşirse en son yüklenen uzantı öncelikli olur.
Kasa kuralları
Güvenli kurallar, block
, allow
, allowAllRequests
veya upgradeScheme
işlemi olan kurallar olarak tanımlanır. Bu kurallar, artırılmış dinamik kural kotasına tabidir.
Kural sınırları
Tarayıcıda kuralların yüklenmesi ve değerlendirilmesi sırasında ek performans söz konusu olur. Bu nedenle API'yi kullanırken bazı sınırlar uygulanır. Sınırlar, kullandığınız kuralın türüne bağlıdır.
Statik kurallar
Statik kurallar, manifest dosyasında belirtilen kural dosyalarında belirtilen kurallardır. Bir uzantı, "rule_resources"
manifest anahtarının bir parçası olarak en fazla 100 statik rulesets belirtebilir ancak tek seferde bu kural kümelerinden yalnızca 50 tanesi etkinleştirilebilir. İkincisi MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
olarak adlandırılır. Bu kural kümeleri için toplamda en az 30.000 kural garanti edilir. Buna GUARANTEED_MINIMUM_STATIC_RULES
adı verilir.
Bundan sonra kullanılabilir kuralların sayısı, bir kullanıcının tarayıcısında yüklü tüm uzantılar tarafından kaç kuralın etkinleştirildiğine bağlıdır. Bu numarayı çalışma zamanında getAvailableStaticRuleCount()
numaralı telefonu arayarak bulabilirsiniz. Bunun bir örneğini, kod örnekleri altında 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 dinamik kurallar ve oturum açma kurallarıyla ilgili toplam 5.000 kural sınırı vardı.
Dinamik kurallar
Bir uzantının en az 5.000 dinamik kuralı olabilir. Bu, MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
olarak gösterilir.
Chrome 121'den itibaren, güvenli dinamik kurallar için MAX_NUMBER_OF_DYNAMIC_RULES
olarak gösterilen 30.000 kurallık daha büyük bir sınır bulunmaktadır. 5.000 sınırı aşmayan güvenli olmayan kurallar da bu sınıra dahil edilir.
Chrome 120'den önce dinamik kurallar ve oturum kuralları için toplam 5.000 sınır vardı.
Normal ifadeler kullanan kurallar
Tüm kural türleri normal ifadeleri kullanabilir ancak her türden normal ifade kurallarının toplam 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, 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. Bu, HTTP önbelleğinden alınan 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
öğesinden alınan yanıtları etkilemez, ancak bir hizmet çalışanında yapılan fetch()
çağrılarını etkiler.
Web'den erişilebilen kaynaklar
DeclarativeNetRequest kuralı, herkese açık bir kaynak isteğinden web'e erişilemeyen bir kaynağa yönlendirme yapamaz. Aksi takdirde bir hata tetiklenir. Bu durum, belirtilen web'den erişilebilen kaynağın sahibi yönlendirme uzantısı olsa bile geçerlidir. declarativeNetRequest için kaynaklar bildirmek üzere manifestin "web_accessible_resources"
dizisini kullanın.
Örnekler
Kod örnekleri
Dinamik kuralları güncelleme
Aşağıdaki örnekte, updateDynamicRules()
hizmetinin 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, kullanılabilir ve maksimum etkin statik kural kümesi sayısını göz önünde bulundururken kural kümelerinin nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. İhtiyaç duyduğunuz statik kural sayısı, izin verilen sayıyı aştığında bunu yaparsınız. Bunu gerçekleştirmek için bazı kural kümelerinizin bazı kural kümeleri devre dışı olacak şekilde yüklenmesi gerekir (manifest dosyasında "Enabled"
, false
olarak ayarlanır).
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çmak isteyebilirsiniz.
"Öncelik" anahtarı
Bu örnekler, *://*.example.com/*
için barındırıcı izni gerektirir.
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ını ifade eder.
- https://google.com adresine gitme
- Bu URL için iki kural bulunur: Kimlikleri 1 ve 4 olan kurallar.
"block"
işlemleri,"redirect"
işlemden daha yüksek önceliğe sahip olduğu için kimlik 1'e sahip kural geçerlidir. Daha uzun URL'lere yönelik oldukları için geri kalan kurallar geçerli değildir. - https://google.com/1234 adresine gidin
- URL daha uzun olduğundan, kimlik 2 olan kural artık 1 ve 4 kimlik numaralı kuralların yanı sıra eşleşiyor.
"allow"
kimliğine sahip kural,"block"
ve"redirect"
ile karşılaştırıldığında daha yüksek önceliğe sahip olduğu için 2 numaralı kural geçerlidir. - https://google.com/12345 adresine gidin
- Dört kuralın tümü bu URL'yle eşleşiyor. Geliştirici tarafından tanımlanan öncelik, gruptaki en yüksek öncelik olduğu için kimlik 3'e sahip 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 örnek, *://*.example.com/*
için barındırıcı izni gerektirir.
Aşağıdaki örnekte, example.com adresinden alınan bir isteğin uzantının 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, /a.jpg
adresini web'de erişilebilir kaynak olarak tanımlamalıdır.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Aşağıda, example.com'un bir alt alan adına yönlendirme yapmak için "transform"
anahtarı kullanılmaktadır. Bu anahtar, example.com'dan gelen herhangi bir şemayla isteklere müdahale etmek için bir alan adı sabitleyici ("||") kullanır. "transform"
içindeki "scheme"
anahtarı, alt alan adına yapılan yönlendirmelerin her zaman "https" kullanacağını belirtir.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
Aşağıdaki örnekte, https://www.abc.xyz.com/path
konumundan https://abc.xyz.com/path
konumuna yönlendirme yapmak için normal ifadeler kullanılmaktadır. "regexFilter"
anahtarında noktaların nasıl çıkış yapıldığına ve yakalama grubunun "abc" veya "def" seçimini yaptığına dikkat edin. "regexSubstitution"
anahtarı, "\1" kullanılarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu durumda, "abc" ifadesi yönlendirilen URL'den 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 örnekte hem ana çerçevedeki hem de alt çerçevelerdeki tüm çerezler kaldırılmaktadı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çevede birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Bir istek, isteğin kaynaklandığı çerçeveyle aynı alan adına (eTLD+1) sahipse birinci taraf olarak kabul edilir.
Enum
"firstParty"
Ağ isteği, kaynaklandığı çerçevenin birinci tarafıdır.
"thirdParty"
Ağ isteği, kaynaklandığı çerçevenin üçüncü tarafı.
ExtensionActionOptions
Özellikler
-
displayActionCountAsBadgeText
boole isteğe bağlı
Bir sayfaya ilişkin işlem sayısının otomatik olarak uzantının rozet metni olarak görüntülenip görüntülenmeyeceğini belirtir. Bu tercih, oturumlar genelinde korunur.
-
tabUpdate
TabActionCountUpdate isteğe bağlı
Chrome 89 ve sonraki sürümlerSekmenin işlem sayısının nasıl ayarlanması gerektiğine ilişkin ayrıntılar.
GetDisabledRuleIdsOptions
Özellikler
-
rulesetId
dize
Statik
Ruleset
öğesine karşılık gelen kimlik.
GetRulesFilter
Özellikler
-
ruleIds
number[] isteğe bağlı
Belirtilirse yalnızca eşleşen kimliklere sahip kurallar dahil edilir.
HeaderOperation
Bu bölüm, bir "modifyHeaders" kuralı için olası işlemleri açıklar.
Enum
"append"
Belirtilen üstbilgiye yeni bir giriş ekler. Bu işlem, istek başlıkları için desteklenmez.
"set"
Aynı ada sahip mevcut üstbilgileri kaldırarak, belirtilen üstbilgi için yeni bir değer belirler.
"remove"
Belirtilen üstbilgideki 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
değeri 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 gelen bir kural için bu değerDYNAMIC_RULESET_ID
olur.
MatchedRuleInfo
Özellikler
-
kural
-
tabId
sayı
Sekme hâlâ etkinse, isteğin geldiği sekmenin tabId'si. Diğer -1.
-
timeStamp
sayı
Kuralın eşleştiği zaman. Zaman damgaları, zaman için JavaScript kuralına (yani sıfır zamandan bu yana geçen milisaniye sayısı) karşılık gelir.
MatchedRuleInfoDebug
Özellikler
-
istek
Kuralın eşleştiği istekle ilgili ayrıntılar.
-
kural
MatchedRulesFilter
Özellikler
-
minTimeStamp
numara isteğe bağlı
Belirtilirse yalnızca belirtilen zaman damgasından sonraki kurallarla eşleşir.
-
tabId
numara isteğe bağlı
Belirtilmişse yalnızca ilgili sekmenin kurallarıyla eşleşir. -1 olarak ayarlanırsa etkin herhangi bir sekmeyle ilişkili olmayan kurallarla eşleşir.
ModifyHeaderInfo
Özellikler
-
başlık
dize
Değiştirilecek üstbilginin adı.
-
işlem
Başlık üzerinde gerçekleştirilecek işlem.
-
value
string 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ümlerTrue (doğru) değerine ayarlanırsa sorgu anahtarı yalnızca zaten varsa değiştirilir. Aksi takdirde, anahtar yoksa 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
string isteğe bağlı
Uzantı dizinine göre yol. "/" ile başlamalıdır.
-
regexSubstitution
string isteğe bağlı
regexFilter
belirten kurallar için değiştirme kalıbı. URL içindeki ilkregexFilter
eşleşmesi bu kalıpla değiştirilir.regexSubstitution
içinde, ilgili yakalama gruplarını eklemek için ters eğik çizgiyle atlatılmış rakamlar (\1 ile \9 arası) kullanılabilir. \0, eşleşen metnin tamamına işaret eder. -
transform
URLTransform isteğe bağlı
Gerçekleştirilecek URL dönüşümleri.
-
url
string 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 ifade.
-
requireCapturing
boole isteğe bağlı
Belirtilen
regex
için yakalama gerekip gerekmediği. Yakalama, yalnızca birregexSubstition
işlemi belirten yönlendirme kuralları için gereklidir. Varsayılan, false (yanlış) değeridir.
RequestDetails
Özellikler
-
documentId
string isteğe bağlı
Chrome 106 ve sonraki sürümlerİstek 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çeve dokümanının yaşam döngüsü.
-
frameId
sayı
0 değeri, isteğin ana çerçevede, pozitif değer ise isteğin gerçekleştiği alt çerçevenin kimliğini ifade eder. 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 belirtir. Çerçeve kimlikleri bir sekme içinde benzersizdir. -
frameType
FrameType isteğe bağlı
Chrome 106 ve sonraki sürümlerBu istek bir kare içinse karenin türü.
-
başlatan
string isteğe bağlı
İsteğin başlatıldığı kaynak. Bu durum yönlendirmeler üzerinden değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.
-
method
dize
Standart HTTP yöntemi.
-
parentDocumentId
string isteğe bağlı
Chrome 106 ve sonraki sürümlerİstek bir çerçeveye yönelikse ve bir üst dokümanı varsa çerçevenin üst dokümanı için benzersiz tanımlayıcı.
-
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 bir tarayıcı oturumunda 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
"bağlan"
"get"
"head"
"put"
ResourceType
Bu değer, ağ isteğinin kaynak türünü açıklar.
Enum
"main_frame"
"sub_frame"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
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
numara 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şlemin türünü açıklar.
Enum
"block"
Ağ isteğini engelleyin.
"redirect" (yönlendirme)
Ağ isteğini yönlendirin.
"allow"
Ağ isteğine izin verir. Eşleşen bir izin verme kuralı varsa isteğe müdahale edilmez.
"upgradeScheme"
İstek http veya ftp ise ağ isteği URL'sinin şemasını https'ye yükseltin.
"modifyHeaders"
Ağ isteğindeki istek/yanıt başlıklarını değiştirin.
"allowAllRequests"
Çerçeve isteğinin kendisi dahil olmak üzere bir çerçeve hiyerarşisindeki tüm isteklere izin verilir.
RuleCondition
Özellikler
-
domainType
DomainType isteğe bağlı
Ağ isteğinin, kaynağı olan alanda birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Belirtilmezse tüm istekler kabul edilir.
-
alan
string[] isteğe bağlı
Chrome 101 sürümünden itibaren kullanımdan kaldırıldıBunun yerine
initiatorDomains
alanını kullanınKural, yalnızca
domains
listesinden gelen ağ istekleriyle eşleşecek. -
excludedDomains
string[] isteğe bağlı
Chrome 101 sürümünden itibaren kullanımdan kaldırıldıBunun yerine
excludedInitiatorDomains
alanını kullanınKural,
excludedDomains
listesinden gelen ağ istekleriyle eşleşmez. -
excludedInitiatorDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümlerKural,
excludedInitiatorDomains
listesinden gelen ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu,initiatorDomains
türüne göre daha önceliklidir.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
- Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
- Listelenen alan adlarının alt alanları da hariç tutulur.
-
excludedRequestDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümlerAlanlar,
excludedRequestDomains
listesindeki bir istekle eşleştiğinde, kural ağ istekleriyle eşleşmez. Liste boşsa veya atlanmışsa hiçbir alan hariç tutulmaz. Bu,requestDomains
türüne göre daha önceliklidir.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
- Listelenen alan adlarının alt alanları da hariç tutulur.
-
excludedRequestMethods
RequestMethod[] isteğe bağlı
Chrome 91 ve sonraki sürümlerKuralın eşleşmeyeceği istek yöntemlerinin listesi.
requestMethods
veexcludedRequestMethods
özelliklerinden yalnızca biri 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.
resourceTypes
veexcludedResourceTypes
özelliklerinden yalnızca biri belirtilmelidir. Bunların ikisi de belirtilmezse "main_frame" dışındaki tüm kaynak türleri engellenir. -
excludedTabIds
number[] isteğe bağlı
Chrome 92 ve sonraki sürümlerKuralın eşleşmemesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, bir sekmeden kaynaklanmayan istekleri hariç tutar. Yalnızca oturum kapsamlı kurallar için desteklenir. -
initiatorDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümlerKural, yalnızca
initiatorDomains
listesinden gelen ağ istekleriyle eşleşecek. Liste çıkarılırsa kural tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alan adları 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
boole isteğe bağlı
urlFilter
veyaregexFilter
öğesinin (hangisi belirtilirse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer, false (yanlış) değeridir. -
regexFilter
string isteğe bağlı
Ağ isteği URL'siyle eşleşecek normal ifade. Bu, RE2 söz dizimine uyar.
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ı hale getirilmiş alanlarda) ve diğer tüm ascii olmayan karakterlerin utf-8'de url ile kodlandığı bir URL ile eşleştirilir. -
requestDomains
string[] isteğe bağlı
Chrome 101 ve sonraki sürümlerKural, yalnızca alan
requestDomains
listesindeki bir alanla eşleştiğinde ağ istekleriyle eşleşir. Liste çıkarılırsa kural tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hale getirilmiş alan adları için punycode kodlamasını kullanın.
- Listelenen alanların alt alanları da eşleştirilir.
-
requestMethods
RequestMethod[] isteğe bağlı
Chrome 91 ve sonraki sürümlerKuralın eşleşebileceği HTTP isteği yöntemlerinin listesi. Boş listeye izin verilmez.
Not:
requestMethods
kural koşulu belirtildiğinde, HTTP(s) 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
ilemain_frame
kaynak türlerini içerebilir. -
tabIds
number[] isteğe bağlı
Chrome 92 ve sonraki sürümlerKuralın eşleşmesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, bir sekmeden kaynaklanmayan isteklerle eşleşir. Boş listeye izin verilmez. Yalnızca oturum kapsamlı kurallar için desteklenir. -
urlFilter
string isteğe bağlı
Ağ istek URL'siyle 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 sonunda kullanılırsa URL'nin başını/sonunu belirtir.
'||' : Alan adı bağlayıcı: Kalıbın başında kullanılıyorsa URL'nin bir (alt) alanının başlangıcını belirtir.
'^' : Ayırıcı karakter: Bir harf, rakam veya şunlardan biri hariç her şeyle eşleşir:
_
,-
,.
ya da%
. Bu, URL'nin sonuyla da eşleşir.Dolayısıyla,
urlFilter
şu bölümlerden oluşur: (isteğe bağlı Sol/Alan adı bağlayıcı) + kalıp + (isteğe bağlı Sağ bağlayıcı).Atlanırsa tüm URL'ler eşleştirilir. Boş dizeye izin verilmez.
||*
ile başlayan bir kalıba izin verilmez. 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ı hale getirilmiş alanlarda) ve diğer tüm ascii olmayan karakterlerin utf-8'de url ile 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ıma ayrılmıştır.
-
yol
dize
Uzantı dizinine göre JSON kural kümesinin yolu.
RulesMatchedDetails
Özellikler
-
rulesMatchedInfo
Belirtilen filtreyle eşleşen kurallar.
TabActionCountUpdate
Özellikler
-
artır
sayı
Sekmenin işlem sayısı artacak 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
string 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" değerine ayarlanır, HTTP olmayan istekler için yoksayılır.
-
tabId
numara 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 değer -1'dir. Diğer bir deyişle, istek bir sekmeyle ilgili değildir.
-
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 bulunmayan ö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
string isteğe bağlı
İsteğin yeni parçası. Ya boş olmalı, bu durumda mevcut parça temizlenmelidir ya da "#" ile başlamalıdır.
-
düzenleyen
string isteğe bağlı
İsteğin yeni barındırıcısı.
-
şifre
string isteğe bağlı
İsteğin yeni şifresi.
-
yol
string isteğe bağlı
İsteğin yeni yolu. Boş bırakılırsa mevcut yol temizlenir.
-
bağlantı noktası
string isteğe bağlı
İsteğin yeni bağlantı noktası. Boş bırakılırsa mevcut bağlantı noktası temizlenir.
-
sorgu
string isteğe bağlı
İsteğin yeni sorgusu. Boş olmalı ya da boş bırakılmalıdır. Bu durumda mevcut sorgu temizlenir veya "?" ile başlamalıdır.
-
queryTransform
QueryTransform isteğe bağlı
Sorgu anahtar/değer çiftleri ekleyin, kaldırın veya değiştirin.
-
şema
string isteğe bağlı
İsteğin yeni şeması. İzin verilen değerler "http", "https", "ftp" ve "chrome-extension"tır.
-
kullanıcı adı
string 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
çağrılarının yapılabileceği zaman aralığı. Dakika olarak belirtilir. Ek aramalar hemen başarısız olur ve runtime.lastError
olarak ayarlanır. Not: Bir kullanıcı hareketiyle ilişkilendirilen getMatchedRules
çağrıları kotadan muaftır.
Değer
10
GUARANTEED_MINIMUM_STATIC_RULES
Etkin 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
30.000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
GETMATCHEDRULES_QUOTA_INTERVAL
döneminde getMatchedRules
işlevinin çağrılma sayısı.
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ı olarak değerlendirilir.
Değer
1.000
MAX_NUMBER_OF_SESSION_RULES
Bir uzantının ekleyebileceği maksimum oturum kapsamlı kural 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
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" dinamik kural sayısı.
Değer
5.000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" oturum kapsamlı kural sayısı.
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 kuralların sayısını döndürür.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(count: number) => void
-
adet
sayı
-
İlerlemeler
-
Vaat<sayı>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Belirtilen Ruleset
içindeki devre dışı bırakılmış statik kuralların listesini döndürür.
Parametreler
-
seçenekler
Sorgulanacak kural kümesini belirtir.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(disabledRuleIds: number[]) => void
-
disabledRuleIds
numara[]
-
İlerlemeler
-
Vaat<sayı[]>
Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Uzantının geçerli dinamik kural grubunu döndürür. Arayanlar, isteğe bağlı olarak bir filter
belirterek getirilen kuralların listesini filtreleyebilir.
Parametreler
-
filter
GetRulesFilter isteğe bağlı
Chrome 111 ve sonraki sürümlerGetirilen kurallar listesini filtreleyecek bir nesne.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İlerlemeler
-
Söz<Kural[]>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Etkin statik kural kümeleri içeren geçerli grup için kimlikleri döndürür.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(rulesetIds: string[]) => void
-
rulesetIds
dize[]
-
İlerlemeler
-
Söz<dize[]>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getMatchedRules()
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 filter
içinde belirtilen tabId
için "declarativeNetRequestFeedback"
iznine veya "activeTab"
iznine sahip uzantılar tarafından kullanılabilir. Not: Beş dakikadan daha uzun süre önce eşleştirilmiş, etkin bir dokümanla ilişkili olmayan kurallar döndürülmez.
Parametreler
-
filter
MatchedRulesFilter isteğe bağlı
Eşleşen kuralların listesini filtreleyecek bir nesne.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(details: RulesMatchedDetails) => void
-
ayrıntılar
-
İlerlemeler
-
Promise<RulesMatchedDetails>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Uzantı için geçerli oturum kapsamlı kurallar grubunu döndürür. Arayanlar, isteğe bağlı olarak bir filter
belirterek getirilen kuralların listesini filtreleyebilir.
Parametreler
-
filter
GetRulesFilter isteğe bağlı
Chrome 111 ve sonraki sürümlerGetirilen kurallar listesini filtreleyecek bir nesne.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İlerlemeler
-
Söz<Kural[]>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Belirtilen normal ifadenin regexFilter
kural koşulu olarak desteklenip desteklenmeyeceğini kontrol eder.
Parametreler
-
regexOptions
Kontrol edilecek normal ifade.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(result: IsRegexSupportedResult) => void
-
sonuç
-
İlerlemeler
-
Promise<IsRegexSupportedResult>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Sekmeler için işlem sayısının uzantı işleminin rozet metni olarak görüntülenip görüntülenmeyeceğini yapılandırır ve bu işlem sayısının artırılması için bir yol sunar.
Parametreler
-
seçenekler
-
geri çağırma
Functions (isteğe bağlı)
Chrome 89 ve sonraki sürümlercallback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
testMatchOutcome()
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ılması amaçlandığından, yalnızca paketlenmemiş uzantılar için kullanılabilir.
Parametreler
-
istek
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(result: TestMatchOutcomeResult) => void
-
sonuç
-
İlerlemeler
-
Promise<TestMatchOutcomeResult>
Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Uzantının geçerli dinamik kural grubunda değişiklik yapar. Önce options.removeRuleIds
politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
politikasında verilen kurallar eklenir. Notlar:
- Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır ya da bir 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_AND_SESSION_RULES
, bir uzantının dinamik ve oturum kurallarının maksimum toplam sayısıdır.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Uzantı için etkin statik kural kümeleri grubunu günceller. options.disableRulesetIds
içinde listelenen kimliklere sahip kural kümeleri önce kaldırılır ve ardından, options.enableRulesetIds
içinde listelenen kural kümeleri eklenir.
Etkin statik kural kümeleri grubunun oturumlar genelinde korunduğunu, ancak uzantı güncellemelerinde devam etmediğini unutmayın. Yani rule_resources
manifest anahtarı, her uzantı güncellemesinde etkin statik kural kümesi grubunu belirleyecektir.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Uzantı için mevcut oturum kapsamlı kural grubunu değiştirir. Önce options.removeRuleIds
politikasında listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
politikasında verilen kurallar eklenir. Notlar:
- Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenip kaldırılır ya da bir hata döndürülür.
- Bu kurallar, oturumlar genelinde korunmaz ve bellekte yedeklenir.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
, bir uzantının dinamik ve oturum kurallarının maksimum toplam sayısıdır.
Parametreler
-
seçenekler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 91 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Bir Ruleset
da bağımsız statik kuralları devre dışı bırakır ve etkinleştirir. Devre dışı bırakılmış bir Ruleset
ya ait kurallarda yapılan değişiklikler, bir sonraki etkinleştirildiğinde etkili olur.
Parametreler
-
seçenekler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
Etkinlikler
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Bir kural bir istekle eşleştiğinde tetiklenir. Yalnızca hata ayıklama amacıyla kullanılmak üzere tasarlandığı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
-