Açıklama
chrome.declarativeNetRequest
API, bildirim kuralları belirtilerek ağ isteklerini engellemek veya değiştirmek için kullanılır. Bu sayede uzantılar, ağ isteklerini engellemeden ve içeriklerini görüntülemeden değiştirebilir. Böylece daha fazla gizlilik sağlanır.
İzinler
declarativeNetRequest
declarativeNetRequestWithHostAccess
declarativeNetRequestFeedback
host_permissions
Kullanılabilirlik
Manifest
Yukarıda açıklanan izinlere ek olarak, belirli kural grubu türleri (özellikle statik kural grupları) "declarative_net_request"
manifest anahtarının bildirilmesini gerektirir. Bu anahtar, "rule_resources"
adlı tek bir anahtara sahip bir sözlük olmalıdır. Bu anahtar, aşağıda gösterildiği gibi Ruleset
türünde sözlükler içeren bir dizidir. (Yalnızca bir dizi olduğundan "Ruleset" adının manifestin JSON'ında görünmediğini unutmayın.) Statik kural kümeleri bu belgenin ilerleyen kısımlarında açıklanmaktadır.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
Kavramlar ve kullanım
Bu API'yi kullanmak için bir veya daha fazla kural grubu belirtin. Kural grubu, bir dizi kural içerir. Tek bir kural aşağıdakilerden birini yapar:
- Bir ağ isteğini engelleme
- Şemayı yükseltin (http'den https'ye).
- Eşleşen engellenen kuralları geçersiz kılarak isteğin engellenmesini önleyin.
- Bir ağ isteğini yönlendirin.
- İstek veya yanıt başlıklarını değiştirme
Biraz farklı şekillerde yönetilen üç tür kural grubu vardır.
- Dinamik
- Tarayıcı oturumlarında ve uzantı yükseltmelerinde kalıcıdır ve bir uzantı kullanılırken JavaScript ile yönetilir.
- Oturum
- Tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde temizlenir. Oturum kuralları, bir uzantı kullanılırken JavaScript ile yönetilir.
- Statik
- Uzantı yüklendiğinde veya yükseltildiğinde paketlenir, yüklenir ve güncellenir. Statik kurallar, JSON biçimli kural dosyalarında depolanır ve manifest dosyasında listelenir.
Sonraki birkaç bölümde kurallar grubu türleri ayrıntılı olarak açıklanmaktadır.
Dinamik ve oturum kapsamlı kural kümeleri
Dinamik ve oturum kuralları, bir uzantı kullanılırken JavaScript ile yönetilir.
- Dinamik kurallar, tarayıcı oturumları ve uzantı yükseltmeleri boyunca kalıcı olur.
- Tarayıcı kapatıldığında ve uzantının yeni bir sürümü yüklendiğinde oturum kuralları temizlenir.
Bu kural grubu türlerinden yalnızca birer tane vardır. Bir uzantı, kural sınırları aşılmadığı sürece updateDynamicRules()
ve updateSessionRules()
işlevlerini çağırarak kuralları dinamik olarak ekleyebilir veya kaldırabilir. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin. Kod örnekleri bölümünde bununla ilgili bir örnek görebilirsiniz.
Statik kural kümeleri
Dinamik ve oturum kurallarının aksine, statik kurallar bir uzantı yüklendiğinde veya yükseltildiğinde paketlenir, yüklenir ve güncellenir. Bu dosyalar, yukarıda açıklandığı gibi "declarative_net_request"
ve "rule_resources"
anahtarları kullanılarak uzantıya belirtilen JSON biçimindeki kural dosyalarında ve bir veya daha fazla Ruleset
sözlüğünde depolanır. Ruleset
sözlüğü, kural dosyasına giden bir yolu, dosyada bulunan kural kümesinin kimliğini ve kural kümesinin etkinleştirilip devre dışı bırakıldığını içerir. Son ikisi, bir kural grubunu programatik olarak etkinleştirdiğinizde veya devre dışı bıraktığınızda önemlidir.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Kural dosyalarını test etmek için uzantınızı paketi açılmış olarak yükleyin. Geçersiz statik kurallarla ilgili hata ve uyarılar yalnızca açılmış uzantılar için gösterilir. Paketlenmiş uzantılardaki geçersiz statik kurallar yoksayılır.
Statik kuralları ve kural kümelerini etkinleştirme ve devre dışı bırakma
Hem tek tek statik kurallar hem de eksiksiz statik kural kümeleri çalışma zamanında etkinleştirilebilir veya devre dışı bırakılabilir.
Etkinleştirilen statik kurallar ve kural kümeleri, tarayıcı oturumları arasında korunur. Her ikisi de uzantı güncellemelerinde kalıcı değildir. Bu nedenle, güncellemeden sonra yalnızca kural dosyalarınızda bırakmayı seçtiğiniz kurallar kullanılabilir.
Performansı korumak amacıyla aynı anda etkinleştirilebilecek kural ve kural grubu sayısı da sınırlıdır. Etkinleştirilebilecek ek kural sayısını kontrol etmek için getAvailableStaticRuleCount()
numaralı telefonu arayın. Kural sınırları hakkında bilgi edinmek için Kural sınırları başlıklı makaleyi inceleyin.
Statik kuralları etkinleştirmek veya devre dışı bırakmak için updateStaticRules()
numaralı telefonu arayın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kuralların kimlik dizilerini içeren bir UpdateStaticRulesOptions
nesnesi alır. Kimlikler, Ruleset
sözlüğünün "id"
anahtarı kullanılarak tanımlanır.
Statik kural kümelerini etkinleştirmek veya devre dışı bırakmak için updateEnabledRulesets()
numaralı telefonu arayın. Bu yöntem, etkinleştirilecek veya devre dışı bırakılacak kural kümelerinin kimlik dizilerini içeren bir UpdateRulesetOptions
nesnesi alır. Kimlikler, Ruleset
sözlüğünün "id"
anahtarı kullanılarak tanımlanır.
Kural oluşturma
Türden bağımsız olarak, bir kural aşağıdaki gibi dört alanla başlar. "id"
ve "priority"
tuşları bir sayı alırken "action"
ve "condition"
tuşları çeşitli engelleme ve yönlendirme koşulları sağlayabilir. Aşağıdaki kural, "foo.com"
adresinden kaynaklanan ve alt dize olarak "abc"
içeren tüm URL'lere yönelik komut dosyası isteklerini engeller.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter eşleşen karakterleri
Bir kuralın "condition"
anahtarı, belirtilen bir alan altındaki URL'lerde işlem yapmak için "urlFilter"
anahtarına izin verir. Kalıp eşleştirme jetonlarını kullanarak kalıplar oluşturursunuz. Aşağıda birkaç örnek verilmiştir.
urlFilter |
Eşleşmeler | Eşleşmez |
---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz |
https://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 önceliklendirmesi
Kurallar, web sayfalarından gönderilen isteklerle tetiklenir. Belirli bir istekle birden fazla kural eşleşirse kurallara öncelik verilmelidir. Bu bölümde, bu kuralların nasıl önceliklendirildiği açıklanmaktadır. Önceliklendirme iki aşamada gerçekleşir.
- Öncelik, bir uzantıdaki kurallar için belirlenir.
- Birden fazla uzantı bir isteğe kural uygulayabiliyorsa belirli bir istekle eşleşen tüm uzantılar için öncelik belirlenir.
Bu şekilde eşleştirme yapıldığında, belirli bir uzantının öncelik verdiği kural, diğer uzantıların kurallarına göre öncelik kazanır.
Uzantı içindeki kural önceliklendirmesi
Tek bir uzantıda önceliklendirme aşağıdaki işlem kullanılarak belirlenir:
- Geliştirici tarafından tanımlanan en yüksek önceliğe sahip kural (diğer bir deyişle
"priority"
alanı) döndürülür. Geliştirici tarafından tanımlanan en yüksek önceliğe sahip birden fazla kural varsa kurallar,
"action"
alanı kullanılarak aşağıdaki sırayla önceliklendirilir:allow
allowAllRequests
block
upgradeScheme
redirect
İşlem türü
block
veyaredirect
değilse eşleşenmodifyHeaders
kuralları değerlendirilir.allow
veallowAllRequests
için belirtilen öncelikten daha düşük bir geliştirici tanımlı önceliğe sahip kurallar varsa bu kuralların yoksayılacağını unutmayın.Aynı başlığı birden fazla kural değiştiriyorsa değişiklik, geliştirici tarafından tanımlanan
"priority"
alanı ve belirtilen işlemler tarafından belirlenir.- Bir kural bir başlığa ekleme yaparsa daha düşük öncelikli kurallar yalnızca bu başlığa ekleme yapabilir. Ayarlama ve kaldırma işlemlerine izin verilmez.
- Bir kural bir başlık ayarlarsa daha düşük öncelikli kurallar yalnızca bu başlığa ekleme yapabilir. Başka değişikliklere izin verilmez.
- Bir kural bir başlığı kaldırırsa daha düşük öncelikli kurallar başlığı daha fazla değiştiremez.
Uzantılar arasında kural önceliklendirmesi
Yalnızca bir uzantının istekle eşleşen bir kuralı varsa bu kural uygulanır. Ancak bir istekle birden fazla uzantı eşleşirse aşağıdaki işlem kullanılır:
Kurallar,
"action"
alanı kullanılarak aşağıdaki sırayla önceliklendirilir:block
redirect
veyaupgradeScheme
allow
veyaallowAllRequests
Birden fazla kural eşleşirse en son yüklenen uzantı öncelikli olur.
Kural sınırları
Kuralların tarayıcıda yüklenmesi ve değerlendirilmesi performans açısından ek yük oluşturur. Bu nedenle, API kullanılırken bazı sınırlar geçerlidir. Sınırlar, kullandığınız kuralın türüne bağlıdır.
Statik kurallar
Statik kurallar, manifest dosyasında belirtilen kural dosyalarında tanımlanan kurallardır. Bir uzantı, "rule_resources"
manifest anahtarı kapsamında en fazla 50 statik kural grubu belirtebilir ancak bu kural gruplarından yalnızca 10'u aynı anda etkinleştirilebilir. İkincisine MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
denir. Bu kural kümeleri toplu olarak en az 30.000 kural içerir. Buna GUARANTEED_MINIMUM_STATIC_RULES
denir.
Bundan sonra kullanılabilecek kural sayısı, kullanıcının tarayıcısına yüklenen tüm uzantılar tarafından kaç kuralın etkinleştirildiğine bağlıdır. Bu numarayı çalışma zamanında getAvailableStaticRuleCount()
numarasını arayarak bulabilirsiniz. Kod örnekleri bölümünde bununla ilgili bir örnek görebilirsiniz.
Dinamik ve oturum kuralları
Dinamik ve oturum kurallarına uygulanan sınırlar, statik kurallara göre daha basittir. İkisinin toplam sayısı 5.000'i aşamaz. Buna MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
denir.
Normal ifade kullanan kurallar
Tüm kural türlerinde normal ifadeler kullanılabilir ancak her türdeki 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, kuralın karmaşıklığıyla kabaca ilişkilidir. Bu sınırı aşan bir kural yüklemeye çalışırsanız aşağıdaki gibi bir uyarı görürsünüz ve kural yok sayılır.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Service worker'larla etkileşimler
Bildirimsel ağ isteği yalnızca ağ yığınına ulaşan istekler için geçerlidir. Bu, HTTP önbelleğinden gelen yanıtları içerir ancak bir hizmet çalışanının onfetch
işleyicisinden geçen yanıtları içermeyebilir. declarativeNetRequest, hizmet çalışanı tarafından oluşturulan veya CacheStorage
adresinden alınan yanıtları etkilemez ancak bir hizmet çalışanında yapılan fetch()
çağrılarını etkiler.
Web'de erişilebilen kaynaklar
Bir declarativeNetRequest kuralı, herkese açık bir kaynak isteğinden web'e erişilemeyen bir kaynağa yönlendirme yapamaz. Bu durumda hata tetiklenir. Bu durum, belirtilen web'de erişilebilen kaynak, yönlendiren uzantıya ait olsa bile geçerlidir. declarativeNetRequest için kaynakları bildirmek üzere manifest dosyasının "web_accessible_resources"
dizisini kullanın.
Örnekler
Kod örnekleri
Dinamik kuralları güncelleme
Aşağıdaki örnekte updateDynamicRules()
'nın nasıl çağrılacağı gösterilmektedir. updateSessionRules()
için de aynı prosedür geçerlidir.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Statik kural kümelerini güncelleme
Aşağıdaki örnekte, kullanılabilir kural kümelerinin sayısı ve etkinleştirilen statik kural kümelerinin maksimum sayısı dikkate alınarak kural kümelerinin nasıl etkinleştirileceği ve devre dışı bırakılacağı gösterilmektedir. Bu işlemi, ihtiyacınız olan statik kural sayısı izin verilen sayıyı aştığında yaparsınız. Bu özelliğin çalışması için bazı kural kümelerinizin yüklenmesi, bazılarının ise devre dışı bırakılması (manifest dosyasında "Enabled"
ayarının false
olarak belirlenmesi) gerekir.
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
Kural örnekleri
Aşağıdaki örneklerde, Chrome'un bir uzantıdaki kurallara nasıl öncelik verdiği gösterilmektedir. Bu kuralları incelerken önceliklendirme kurallarını ayrı bir pencerede açmak isteyebilirsiniz.
"priority" anahtarı
Bu örneklerde *://*.example.com/*
için ana makine izni gerekir.
Belirli bir URL'nin önceliğini belirlemek için (geliştirici tarafından tanımlanan) "priority"
anahtarına, "action"
anahtarına ve "urlFilter"
anahtarına bakın. Bu örnekler, altlarında gösterilen örnek kural dosyasına atıfta bulunur.
- https://google.com adresine gitme
- Bu URL'yi kapsayan iki kural var: 1 ve 4 kimlikli kurallar.
"block"
işlemleri,"redirect"
işlemlerinden daha yüksek önceliğe sahip olduğundan 1 kimlikli kural uygulanır. Diğer kurallar daha uzun URL'ler için olduğundan geçerli değildir. - https://google.com/1234 adresine gitme
- Daha uzun URL nedeniyle, 1 ve 4 kimlikli kurallara ek olarak 2 kimlikli kural da artık eşleşiyor.
"allow"
,"block"
ve"redirect"
'den daha yüksek önceliğe sahip olduğundan 2 kimlikli kural uygulanır. - https://google.com/12345 adresine gitme
- Bu URL, dört kuralın tümüyle eşleşiyor. Geliştirici tarafından tanımlanan önceliği gruptaki en yüksek öncelik olduğundan 3 kimlikli kural uygulanır.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
]
Yönlendirmeler
Aşağıdaki örnekte, *://*.example.com/*
için ana makine izni gerekir.
Aşağıdaki örnekte, example.com'dan gelen bir isteğin uzantının içindeki bir sayfaya nasıl yönlendirileceği gösterilmektedir. Uzantı yolu /a.jpg
, chrome-extension://EXTENSION_ID/a.jpg
olarak çözümlenir. Burada EXTENSION_ID
, uzantınızın kimliğidir. Bu özelliğin çalışması için manifest, /a.jpg
uygulamasını web'de erişilebilen kaynak olarak bildirmelidir.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Aşağıdaki örnekte, example.com'un bir alt alanına yönlendirmek için "transform"
anahtarı kullanılmaktadır. example.com'dan gelen tüm şemaları içeren istekleri yakalamak için bir alan adı sabitleyicisi ("||") kullanılır. "transform"
içindeki "scheme"
anahtarı, alt alana yönlendirmelerde her zaman "https" kullanılacağını belirtir.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
Aşağıdaki örnekte, https://www.abc.xyz.com/path
adresinden https://abc.xyz.com/path
adresine yönlendirmek için normal ifadeler kullanılmaktadır. "regexFilter"
anahtarında, noktaların nasıl kaçırıldığına ve yakalama grubunun "abc" veya "def"i nasıl seçtiğine dikkat edin. "regexSubstitution"
anahtarı, "\1" kullanılarak normal ifadenin döndürülen ilk eşleşmesini belirtir. Bu durumda, yönlendirilen URL'den "abc" yakalanır ve yerine yerleştirilir.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Üst bilgiler
Aşağıdaki örnek, hem ana çerçevedeki hem de alt çerçevelerdeki tüm çerezleri kaldırır.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Türler
DomainType
Bu, isteğin kaynaklandığı çerçeveye göre birinci taraf mı yoksa üçüncü taraf mı olduğunu açıklar. Bir isteğin, isteğin kaynaklandığı çerçeveyle aynı alana (eTLD+1) sahip olması durumunda birinci taraf olduğu söylenir.
Enum
"firstParty"
Ağ isteği, kaynaklandığı çerçeveye ait birinci taraf isteğidir.
"thirdParty"
Ağ isteği, kaynaklandığı çerçeveye göre üçüncü taraftır.
ExtensionActionOptions
Özellikler
-
displayActionCountAsBadgeText
boolean isteğe bağlı
Bir sayfanın işlem sayısının, uzantının rozet metni olarak otomatik olarak gösterilip gösterilmeyeceği. Bu tercih, oturumlar arasında korunur.
-
tabUpdate
TabActionCountUpdate isteğe bağlı
Chrome 89 ve sonraki sürümlerSekmenin işlem sayısının nasıl ayarlanması gerektiğiyle ilgili ayrıntılar.
GetDisabledRuleIdsOptions
Özellikler
-
rulesetId
dize
Statik bir
Ruleset
ile eşleşen kimlik.
GetRulesFilter
Özellikler
-
ruleIds
number[] isteğe bağlı
Belirtilmişse yalnızca eşleşen kimliklere sahip kurallar dahil edilir.
HeaderInfo
Özellikler
-
excludedValues
string[] isteğe bağlı
Belirtilmişse başlık mevcut olsa bile değeri bu listedeki öğelerden en az birini içeriyorsa bu koşul eşleşmez. Bu,
values
ile aynı eşleşme kalıbı söz dizimini kullanır. -
başlık
dize
Üstbilginin adı. Bu koşul, yalnızca
values
veexcludedValues
belirtilmediğinde adla eşleşir. -
values
string[] isteğe bağlı
Belirtilirse bu koşul, üstbilginin değeri bu listedeki en az bir kalıpla eşleştiğinde eşleşir. Bu, büyük/küçük harfe duyarsız üst bilgi değeri eşleşmesinin yanı sıra aşağıdaki yapıları destekler:
"*" : Herhangi bir karakter sayısıyla eşleşir.
"?" : Sıfır veya bir karakterle eşleşir.
"*" ve "?" karakterleri ters eğik çizgiyle çıkılabilir. Örneğin, "\*" ve "\?"
HeaderOperation
Bu, "modifyHeaders" kuralı için olası işlemleri açıklar.
Enum
"append"
Belirtilen üstbilgi için yeni bir giriş ekler. Bu işlem, istek başlıkları için desteklenmez.
"set"
Belirtilen başlık için yeni bir değer ayarlar ve aynı ada sahip mevcut başlıkları kaldırır.
"remove"
Belirtilen başlığa ait tüm girişleri kaldırır.
IsRegexSupportedResult
Özellikler
-
isSupported
boolean
-
neden
UnsupportedRegexReason isteğe bağlı
Normal ifadenin neden desteklenmediğini belirtir. Yalnızca
isSupported
yanlışsa sağlanır.
MatchedRule
Özellikler
-
ruleId
sayı
Eşleşen bir kuralın kimliği.
-
rulesetId
dize
Bu kuralın ait olduğu
Ruleset
kimliği. Dinamik kurallar grubundan kaynaklanan bir kural için bu değerDYNAMIC_RULESET_ID
'a eşit olur.
MatchedRuleInfo
Özellikler
-
kural
-
tabId
sayı
Sekme hâlâ etkinse isteğin geldiği sekmenin tabId'si. Else -1.
-
timeStamp
sayı
Kuralın eşleştiği zaman. Zaman damgaları, zamanlar için Javascript kuralına (ör. sıfır zamandan itibaren geçen milisaniye sayısı) karşılık gelir.
MatchedRuleInfoDebug
Özellikler
-
istek
Kuralın eşleştiği istek hakkında ayrıntılar.
-
kural
MatchedRulesFilter
Özellikler
-
minTimeStamp
number isteğe bağlı
Belirtilmişse yalnızca verilen zaman damgasından sonraki kurallarla eşleşir.
-
tabId
number isteğe bağlı
Belirtilirse yalnızca söz konusu sekmedeki kurallarla eşleşir. -1 olarak ayarlanırsa etkin bir sekmeyle ilişkilendirilmemiş kurallarla eşleşir.
ModifyHeaderInfo
Özellikler
-
başlık
dize
Değiştirilecek başlığın adı.
-
işlem
Başlıkta gerçekleştirilecek işlem.
-
value
dize isteğe bağlı
Başlığın yeni değeri.
append
veset
işlemleri için belirtilmelidir.
QueryKeyValue
Özellikler
-
anahtar
dize
-
replaceOnly
boolean isteğe bağlı
Chrome 94 veya daha yeni bir sürümDoğruysa sorgu anahtarı yalnızca zaten mevcutsa değiştirilir. Aksi takdirde, eksikse anahtar da eklenir. Varsayılan olarak false değerine ayarlanır.
-
value
dize
QueryTransform
Özellikler
-
addOrReplaceParams
QueryKeyValue[] isteğe bağlı
Eklenecek veya değiştirilecek sorgu anahtar/değer çiftlerinin listesi.
-
removeParams
string[] isteğe bağlı
Kaldırılacak sorgu anahtarlarının listesi.
Redirect
Özellikler
-
extensionPath
dize isteğe bağlı
Uzantı dizinine göreli yol. "/" ile başlamalıdır.
-
regexSubstitution
dize isteğe bağlı
regexFilter
belirten kurallar için değiştirme kalıbı. URL'dekiregexFilter
ile eşleşen ilk kısım bu kalıpla değiştirilir.regexSubstitution
içinde, ters eğik çizgiyle çıkış karakteri eklenmiş rakamlar (\1 - \9) kullanılarak ilgili yakalama grupları eklenebilir. \0, eşleşen metnin tamamını ifade eder. -
transform
URLTransform isteğe bağlı
Gerçekleştirilecek URL dönüşümleri.
-
url
dize isteğe bağlı
Yönlendirme URL'si. JavaScript URL'lerine yönlendirmelere izin verilmez.
RegexOptions
Özellikler
-
isCaseSensitive
boolean isteğe bağlı
Belirtilen
regex
büyük/küçük harfe duyarlı mı? Varsayılan değer true'dur. -
normal ifade : regex
dize
Kontrol edilecek normal ifade.
-
requireCapturing
boolean isteğe bağlı
Belirtilen
regex
için yakalama gerekip gerekmediği. YalnızcaregexSubstition
işlemi belirten yönlendirme kuralları için yakalama gerekir. Varsayılan değer false'tur.
RequestDetails
Özellikler
-
documentId
dize isteğe bağlı
Chrome 106 ve sonraki sürümlerBu istek bir çerçeve içinse çerçevenin dokümanının benzersiz tanımlayıcısı.
-
documentLifecycle
DocumentLifecycle isteğe bağlı
Chrome 106 ve sonraki sürümlerBu istek bir çerçeve içinse çerçevenin dokümanının yaşam döngüsü.
-
frameId
sayı
0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (
type
main_frame
veyasub_frame
ise)frameId
, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir. -
frameType
FrameType isteğe bağlı
Chrome 106 ve sonraki sürümlerBu istek bir çerçeve içinse çerçevenin türü.
-
başlatan
dize isteğe bağlı
İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.
-
method
dize
Standart HTTP yöntemi.
-
parentDocumentId
dize isteğe bağlı
Chrome 106 ve sonraki sürümlerBu istek bir çerçeve içinse ve üst öğesi varsa çerçevenin üst dokümanının benzersiz tanımlayıcısı.
-
parentFrameId
sayı
İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.
-
requestId
dize
İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir.
-
tabId
sayı
İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.
-
tür
İsteğin kaynak türü.
-
url
dize
İsteğin URL'si.
RequestMethod
Bu, bir ağ isteğinin HTTP istek yöntemini açıklar.
Enum
"connect"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
Bu, ağ isteğinin kaynak türünü açıklar.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
Özellikler
-
işlem
Bu kural eşleşirse yapılacak işlem.
-
koşul
Bu kuralın tetiklendiği koşul.
-
id
sayı
Bir kuralı benzersiz şekilde tanımlayan kimlik. Zorunludur ve >= 1 olmalıdır.
-
önceliği
number isteğe bağlı
Kural önceliği. Varsayılan olarak 1 değerine ayarlanır. Belirtildiğinde >= 1 olmalıdır.
RuleAction
Özellikler
-
yönlendir
Yönlendirme isteğe bağlı
Yönlendirmenin nasıl yapılması gerektiğini açıklar. Yalnızca yönlendirme kuralları için geçerlidir.
-
requestHeaders
ModifyHeaderInfo[] isteğe bağlı
Chrome 86 ve sonraki sürümlerİstek için değiştirilecek istek başlıkları. Yalnızca RuleActionType "modifyHeaders" ise geçerlidir.
-
responseHeaders
ModifyHeaderInfo[] isteğe bağlı
Chrome 86 ve sonraki sürümlerİstek için değiştirilecek yanıt başlıkları. Yalnızca RuleActionType "modifyHeaders" ise geçerlidir.
-
tür
Gerçekleştirilecek işlemin türü.
RuleActionType
Belirli bir RuleCondition eşleşirse yapılacak işlem türünü açıklar.
Enum
"block"
Ağ isteğini engelle.
"redirect"
Ağ isteğini yönlendirin.
"allow"
Ağ isteğine izin verin. İstek, kendisiyle eşleşen bir izin verme kuralı varsa engellenmez.
"upgradeScheme"
İstek http veya ftp ise ağ isteği URL'sinin düzenini https'ye yükseltin.
"modifyHeaders"
Ağ isteğindeki istek/yanıt başlıklarını değiştirin.
"allowAllRequests"
Çerçeve isteğinin kendisi de dahil olmak üzere, çerçeve hiyerarşisi içindeki tüm isteklere izin verin.
RuleCondition
Özellikler
-
domainType
DomainType isteğe bağlı
Ağ isteğinin, kaynaklandığı alan için birinci taraf mı yoksa üçüncü taraf mı olduğunu belirtir. Atlanırsa tüm istekler kabul edilir.
-
alan adları
string[] isteğe bağlı
Chrome 101'den beri kullanımdan kaldırıldıBunun yerine
initiatorDomains
kullanınKural yalnızca
domains
listesinden gelen ağ istekleriyle eşleşir. -
excludedDomains
string[] isteğe bağlı
Chrome 101'den beri kullanımdan kaldırıldıBunun yerine
excludedInitiatorDomains
kullanınKural,
excludedDomains
listesinden kaynaklanan ağ istekleriyle eşleşmez. -
excludedInitiatorDomains
string[] isteğe bağlı
Chrome 101+Kural,
excludedInitiatorDomains
listesinden kaynaklanan ağ istekleriyle eşleşmez. Liste boşsa veya atlanırsa hiçbir alan adı hariç tutulmaz. Bu,initiatorDomains
politikasına göre önceliklidir.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hâle getirilmiş alanlar için punycode kodlamasını kullanın.
- Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
- Listelenen alanların alt alanları da hariç tutulur.
-
excludedRequestDomains
string[] isteğe bağlı
Chrome 101+Alan adları
excludedRequestDomains
listesindeki bir alan adıyla eşleştiğinde kural, ağ istekleriyle eşleşmez. Liste boşsa veya atlanırsa hiçbir alan adı hariç tutulmaz. Bu,requestDomains
politikasına göre önceliklidir.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hâle getirilmiş alanlar için punycode kodlamasını kullanın.
- Listelenen alanların alt alanları da hariç tutulur.
-
excludedRequestMethods
RequestMethod[] isteğe bağlı
Chrome 91 veya daha yeni bir sürümKuralın eşleşmeyeceği istek yöntemlerinin listesi. Yalnızca bir
requestMethods
veexcludedRequestMethods
belirtilmelidir. İkisinden hiçbiri belirtilmezse tüm istek yöntemleri eşleştirilir. -
excludedResourceTypes
ResourceType[] isteğe bağlı
Kuralın eşleşmeyeceği kaynak türlerinin listesi. Yalnızca bir
resourceTypes
veexcludedResourceTypes
belirtilmelidir. İkisi de belirtilmemişse "main_frame" dışındaki tüm kaynak türleri engellenir. -
excludedResponseHeaders
HeaderInfo[] isteğe bağlı
Chrome 128 veya daha yeni bir sürümİstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşmez. Hem
excludedResponseHeaders
hem deresponseHeaders
belirtilmişseexcludedResponseHeaders
özelliği öncelikli olur. -
excludedTabIds
number[] isteğe bağlı
Chrome 92 veya daha yeni bir sürümKuralın eşleşmemesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, sekmeden kaynaklanmayan istekleri hariç tutar. Yalnızca oturum kapsamlı kurallar için desteklenir. -
initiatorDomains
string[] isteğe bağlı
Chrome 101+Kural yalnızca
initiatorDomains
listesinden gelen ağ istekleriyle eşleşir. Liste atlanırsa kural, tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hâle getirilmiş alanlar için punycode kodlamasını kullanın.
- Bu, istek URL'siyle değil, isteği başlatanla eşleşir.
- Listelenen alanların alt alanları da eşleştirilir.
-
isUrlFilterCaseSensitive
boolean isteğe bağlı
urlFilter
veyaregexFilter
'nin (hangisi belirtilmişse) büyük/küçük harfe duyarlı olup olmadığı. Varsayılan değer yanlış (false) değeridir. -
regexFilter
dize isteğe bağlı
Ağ isteği URL'siyle eşleşecek normal ifade. Bu, RE2 söz dizimine uygundur.
Not: Yalnızca bir
urlFilter
veyaregexFilter
belirtilebilir.Not:
regexFilter
yalnızca ASCII karakterlerinden oluşmalıdır. Bu, ana makinenin punycode biçiminde kodlandığı (uluslararası alan adları için) ve diğer tüm ASCII dışı karakterlerin UTF-8'de URL olarak kodlandığı bir URL ile eşleştirilir. -
requestDomains
string[] isteğe bağlı
Chrome 101+Kural yalnızca alan adı
requestDomains
listesindeki bir alan adıyla eşleştiğinde ağ istekleriyle eşleşir. Liste atlanırsa kural, tüm alanlardan gelen isteklere uygulanır. Boş listeye izin verilmez.Notlar:
- "a.example.com" gibi alt alan adlarına da izin verilir.
- Girişler yalnızca ASCII karakterlerinden oluşmalıdır.
- Uluslararası hâle getirilmiş alanlar için punycode kodlamasını kullanın.
- Listelenen alanların alt alanları da eşleştirilir.
-
requestMethods
RequestMethod[] isteğe bağlı
Chrome 91 veya daha yeni bir sürümKuralın eşleşebileceği HTTP istek yöntemlerinin listesi. Boş listeye izin verilmez.
Not:
requestMethods
kural koşulunun belirtilmesi, HTTP(s) olmayan istekleri de hariç tutar.excludedRequestMethods
koşulunun belirtilmesi ise bu istekleri hariç tutmaz. -
resourceTypes
ResourceType[] isteğe bağlı
Kuralın eşleşebileceği kaynak türlerinin listesi. Boş listeye izin verilmez.
Not: Bu,
allowAllRequests
kuralları için belirtilmelidir ve yalnızcasub_frame
ilemain_frame
kaynak türlerini içerebilir. -
responseHeaders
HeaderInfo[] isteğe bağlı
Chrome 128 veya daha yeni bir sürümİstek, bu listedeki herhangi bir yanıt başlığı koşuluyla eşleşirse (belirtilmişse) kural eşleşir.
-
tabIds
number[] isteğe bağlı
Chrome 92 veya daha yeni bir sürümKuralın eşleşmesi gereken
tabs.Tab.id
listesi.tabs.TAB_ID_NONE
kimliği, sekmeden kaynaklanmayan isteklerle eşleşir. Boş listeye izin verilmez. Yalnızca oturum kapsamlı kurallar için desteklenir. -
urlFilter
dize isteğe bağlı
Ağ isteği URL'siyle eşleşen kalıp. Desteklenen yapılar:
"*" : Joker karakter: Herhangi bir karakter sayısıyla eşleşir.
'|' : Sol/sağ sabitleme: Kalıbın iki ucundan birinde kullanılıyorsa URL'nin başlangıcını/sonunu belirtir.
'||' : Alan adı sabitleme: Kalıbın başında kullanılıyorsa URL'nin (alt) alan adının başlangıcını belirtir.
'^' : Ayırıcı karakter: Harf, rakam veya şu karakterler dışında her şeyle eşleşir:
_
,-
,.
veya%
. Bu, URL'nin sonuyla da eşleşir.Bu nedenle
urlFilter
şu bölümlerden oluşur: (isteğe bağlı sol/alan adı sabitleyicisi) + desen + (isteğe bağlı sağ sabitleyicisi).Boş bırakılırsa tüm URL'ler eşleştirilir. Boş dizeye izin verilmez.
||*
ile başlayan bir desene izin verilmez. Bunun yerine*
politikasını kullanın.Not: Yalnızca bir
urlFilter
veyaregexFilter
belirtilebilir.Not:
urlFilter
yalnızca ASCII karakterlerinden oluşmalıdır. Bu, ana makinenin punycode biçiminde kodlandığı (uluslararası alan adları için) ve diğer tüm ASCII dışı karakterlerin UTF-8'de URL olarak kodlandığı bir URL ile eşleştirilir. Örneğin, istek URL'si http://abc.рф?q=ф olduğundaurlFilter
, http://abc.xn--p1ai/?q=%D1%84 URL'siyle eşleştirilir.
Ruleset
Özellikler
-
etkin
boolean
Kural kümesinin varsayılan olarak etkin olup olmadığı.
-
id
dize
Kural kümesini benzersiz şekilde tanımlayan, boş olmayan bir dize. "_" ile başlayan kimlikler dahili kullanım için ayrılmıştır.
-
yol
dize
JSON kurallarının uzantı dizinine göre yolu.
RulesMatchedDetails
Özellikler
-
rulesMatchedInfo
Belirtilen filtreyle eşleşen kurallar.
TabActionCountUpdate
Özellikler
-
artır
sayı
Sekmenin işlem sayısının artırılacağı tutar. Negatif değerler sayıyı azaltır.
-
tabId
sayı
İşlem sayısının güncelleneceği sekme.
TestMatchOutcomeResult
Özellikler
-
matchedRules
Varsayımsal istekle eşleşen kurallar (varsa).
TestMatchRequestDetails
Özellikler
-
başlatan
dize isteğe bağlı
Varsayımsal isteğin başlatıcı URL'si (varsa).
-
method
RequestMethod isteğe bağlı
Varsayımsal isteğin standart HTTP yöntemi. HTTP istekleri için varsayılan olarak "get" olur ve HTTP dışı istekler için yoksayılır.
-
responseHeaders
object isteğe bağlı
Chrome 129 veya daha yeni bir sürümİstek gönderilmeden önce engellenmezse veya yönlendirilmezse, varsayımsal bir yanıt tarafından sağlanan başlıklar. Başlık adını dize değerleri listesiyle eşleyen bir nesne olarak gösterilir. Belirtilmezse varsayımsal yanıt, boş yanıt başlıkları döndürür. Bu başlıklar, başlıkların olmamasıyla eşleşen kurallarla eşleşebilir. Ör.
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
-
tabId
number isteğe bağlı
Varsayımsal isteğin gerçekleştiği sekmenin kimliği. Gerçek bir sekme kimliğiyle eşleşmesi gerekmez. Varsayılan değer -1'dir. Bu, isteğin bir sekmeyle ilgili olmadığı anlamına gelir.
-
tür
Varsayımsal isteğin kaynak türü.
-
url
dize
Varsayımsal isteğin URL'si.
UnsupportedRegexReason
Belirli bir normal ifadenin neden desteklenmediğini açıklar.
Enum
"syntaxError"
Normal ifade söz dizimi açısından yanlış veya RE2 söz diziminde kullanılamayan özellikler kullanıyor.
"memoryLimitExceeded"
Normal ifade, bellek sınırını aşıyor.
UpdateRuleOptions
Özellikler
-
addRules
Kural[] isteğe bağlı
Eklenecek kurallar.
-
removeRuleIds
number[] isteğe bağlı
Kaldırılacak kuralların kimlikleri. Geçersiz kimlikler yoksayılır.
UpdateRulesetOptions
Özellikler
UpdateStaticRulesOptions
Özellikler
URLTransform
Özellikler
-
parça
dize isteğe bağlı
İstek için yeni parça. Boş olmalıdır. Bu durumda mevcut parça temizlenir veya "#" ile başlamalıdır.
-
düzenleyen
dize isteğe bağlı
İsteğin yeni ana makinesi.
-
şifre
dize isteğe bağlı
İstek için yeni şifre.
-
yol
dize isteğe bağlı
İsteğin yeni yolu. Boşsa mevcut yol temizlenir.
-
bağlantı noktası
dize isteğe bağlı
İstek için yeni bağlantı noktası. Boşsa mevcut bağlantı noktası temizlenir.
-
sorgu
dize isteğe bağlı
İstek için yeni sorgu. Boş olmalıdır. Bu durumda mevcut sorgu temizlenir veya "?" ile başlamalıdır.
-
queryTransform
QueryTransform isteğe bağlı
Sorgu anahtar/değer çiftlerini ekleme, kaldırma veya değiştirme.
-
şema
dize isteğe bağlı
İstek için yeni şema. İzin verilen değerler "http", "https", "ftp" ve "chrome-extension"dır.
-
kullanıcı adı
dize isteğe bağlı
İstek için yeni kullanıcı adı.
Özellikler
DYNAMIC_RULESET_ID
Uzantı tarafından eklenen dinamik kurallar için kural grubu kimliği.
Değer
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
görüşmelerinin yapılabileceği, dakika cinsinden belirtilen zaman aralığı. Ek aramalar hemen başarısız olur ve runtime.lastError
ayarlanır. Not: Kullanıcı hareketiyle ilişkili getMatchedRules
çağrıları kotaya dahil değildir.
Değer
10
GUARANTEED_MINIMUM_STATIC_RULES
Etkinleştirilmiş statik kural kümeleri genelinde bir uzantıya garanti edilen minimum statik kural sayısı. Bu sınırın üzerindeki tüm kurallar, genel statik kural sınırına dahil edilir.
Değer
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
getMatchedRules
işlevinin GETMATCHEDRULES_QUOTA_INTERVAL
süresi içinde çağrılabileceği sayı.
Değer
20
MAX_NUMBER_OF_DYNAMIC_RULES
Bir uzantının ekleyebileceği maksimum dinamik kural sayısı.
Değer
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Bir uzantının aynı anda etkinleştirebileceği maksimum statik Rulesets
sayısı.
Değer
50
MAX_NUMBER_OF_REGEX_RULES
Bir uzantının ekleyebileceği maksimum normal ifade kuralı sayısı. Bu sınır, dinamik kurallar kümesi ve kural kaynakları dosyasında belirtilenler için ayrı ayrı değerlendirilir.
Değer
1000
MAX_NUMBER_OF_SESSION_RULES
Bir uzantının ekleyebileceği maksimum oturum kapsamlı kural sayısı.
Değer
5000
MAX_NUMBER_OF_STATIC_RULESETS
Bir uzantının "rule_resources"
manifest anahtarının bir parçası olarak belirtebileceği maksimum statik Rulesets
sayısı.
Değer
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" dinamik kural sayısı.
Değer
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Bir uzantının ekleyebileceği maksimum "güvenli olmayan" oturum kapsamlı kural sayısı.
Değer
5000
SESSION_RULESET_ID
Uzantı tarafından eklenen oturum kapsamlı kurallar için kural grubu kimliği.
Değer
"_session"
Yöntemler
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Bir uzantının genel statik kural sınırına ulaşılmadan önce etkinleştirebileceği statik kural sayısını döndürür.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(count: number) => void
-
sayı
sayı
-
İadeler
-
Promise<number>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Belirtilen Ruleset
içinde şu anda devre dışı olan statik kuralların listesini döndürür.
Parametreler
-
seçenekler
Sorgulanacak kural kümesini belirtir.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(disabledRuleIds: number[]) => void
-
disabledRuleIds
number[]
-
İadeler
-
Promise<number[]>
Promises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Uzantı için geçerli dinamik kurallar grubunu döndürür. Arayanlar, filter
belirterek getirilen kurallar listesini isteğe bağlı olarak filtreleyebilir.
Parametreler
-
filtrele
GetRulesFilter isteğe bağlı
Chrome 111 veya daha yeni bir sürümGetirilen kurallar listesini filtrelemek için kullanılan bir nesne.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İadeler
-
Promise<Rule[]>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Etkinleştirilmiş statik kural kümelerinin geçerli grubunun kimliklerini döndürür.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rulesetIds: string[]) => void
-
rulesetIds
dize[]
-
İadeler
-
Promise<string[]>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Uzantı için eşleşen tüm kuralları döndürür. Arayanlar, filter
belirterek eşleşen kurallar listesini isteğe bağlı olarak filtreleyebilir. Bu yöntem yalnızca "declarativeNetRequestFeedback"
izni olan veya filter
içinde belirtilen tabId
için "activeTab"
izni verilmiş uzantılar tarafından kullanılabilir. Not: Etkin bir dokümanla ilişkilendirilmeyen ve beş dakikadan uzun süre önce eşleştirilen kurallar döndürülmez.
Parametreler
-
filtrele
MatchedRulesFilter isteğe bağlı
Eşleşen kurallar listesini filtrelemek için kullanılan bir nesne.
-
callback
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 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Uzantı için geçerli oturum kapsamlı kurallar grubunu döndürür. Arayanlar, filter
belirterek getirilen kurallar listesini isteğe bağlı olarak filtreleyebilir.
Parametreler
-
filtrele
GetRulesFilter isteğe bağlı
Chrome 111 veya daha yeni bir sürümGetirilen kurallar listesini filtrelemek için kullanılan bir nesne.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(rules: Rule[]) => void
-
kurallar
Kural[]
-
İadeler
-
Promise<Rule[]>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Belirtilen normal ifadenin regexFilter
kural koşulu olarak desteklenip desteklenmeyeceğini kontrol eder.
Parametreler
-
regexOptions
Kontrol edilecek normal ifade.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: IsRegexSupportedResult) => void
-
sonuç
-
İadeler
-
Promise<IsRegexSupportedResult>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Sekmeler için işlem sayısının, uzantı işleminin rozet metni olarak gösterilip gösterilmeyeceğini yapılandırır ve bu işlem sayısının artırılması için bir yol sağlar.
Parametreler
-
seçenekler
-
callback
işlev isteğe bağlı
Chrome 89 ve sonraki sürümlercallback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Uzantının declarativeNetRequest kurallarından herhangi birinin varsayımsal bir istekle eşleşip eşleşmeyeceğini kontrol eder. Not: Bu özellik yalnızca uzantı geliştirme sırasında kullanılmak üzere tasarlandığından yalnızca paketi açılmamış uzantılar için kullanılabilir.
Parametreler
-
istek
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: TestMatchOutcomeResult) => void
-
sonuç
-
İadeler
-
Promise<TestMatchOutcomeResult>
Promises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Uzantının mevcut dinamik kurallarını değiştirir. Önce options.removeRuleIds
içinde listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
içinde verilen kurallar eklenir. Notlar:
- Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenir ve kaldırılır ya da bir hata döndürülür.
- Bu kurallar, tarayıcı oturumlarında ve uzantı güncellemelerinde kalıcı olarak saklanır.
- Uzantı paketinin bir parçası olarak belirtilen statik kurallar bu işlev kullanılarak kaldırılamaz.
MAX_NUMBER_OF_DYNAMIC_RULES
, bir uzantının ekleyebileceği maksimum dinamik kural sayısıdır. Güvenli olmayan kuralların sayısıMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
'i aşmamalıdır.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Uzantı için etkinleştirilen statik kural kümelerini günceller. Önce options.disableRulesetIds
içinde listelenen kimliklere sahip kural kümeleri kaldırılır, ardından options.enableRulesetIds
içinde listelenen kural kümeleri eklenir.
Etkinleştirilen statik kurallar kümelerinin oturumlar arasında kalıcı olduğunu ancak uzantı güncellemeleri arasında kalıcı olmadığını unutmayın. Yani rule_resources
manifest anahtarı, her uzantı güncellemesinde etkinleştirilen statik kurallar kümelerini belirler.
Parametreler
-
seçeneklerChrome 87 ve sonraki sürümler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Uzantı için mevcut oturum kapsamlı kurallar grubunu değiştirir. Önce options.removeRuleIds
içinde listelenen kimliklere sahip kurallar kaldırılır, ardından options.addRules
içinde verilen kurallar eklenir. Notlar:
- Bu güncelleme tek bir atomik işlem olarak gerçekleşir: Belirtilen tüm kurallar eklenir ve kaldırılır ya da bir hata döndürülür.
- Bu kurallar oturumlar arasında kalıcı olmaz ve bellekte yedeklenir.
MAX_NUMBER_OF_SESSION_RULES
, bir uzantının ekleyebileceği maksimum oturum kuralı sayısıdır.
Parametreler
-
seçenekler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 91 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Ruleset
içindeki statik kuralları tek tek devre dışı bırakır ve etkinleştirir. Devre dışı bırakılmış bir Ruleset
'a ait kurallarda yapılan değişiklikler, bu Ruleset
bir sonraki sefer etkinleştirildiğinde geçerli olur.
Parametreler
-
seçenekler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Promises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
Etkinlikler
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Bir kural, istek ile eşleştiğinde tetiklenir. Yalnızca hata ayıklama amacıyla kullanılmak üzere tasarlandığından, yalnızca "declarativeNetRequestFeedback"
izni olan açılmamış uzantılar için kullanılabilir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(info: MatchedRuleInfoDebug) => void
-
bilgi
-