Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama
Kuralları çalışma zamanında ekleyip güncelleyin, kural kimliklerini ve önceliklerini yönetin, hata ayıklamak için eşleşen istekleri gözlemleyin.
Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama, CoddyKit'te ücretsiz bir Browser Extensions Development (Chrome & Edge) dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Browser Extensions Development (Chrome & Edge) öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Browser Extensions Development (Chrome & Edge) kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Static vs Dynamic Rules
declarativeNetRequest supports two rule kinds. Static rules ship in JSON files in the manifest. Dynamic rules are added at runtime and persist across restarts.
Dynamic rules let your extension adapt to user choices without an update.
Declaring the Permission
You need the declarativeNetRequest permission. For dynamic rules at runtime, that is all you require.
{
"permissions": ["declarativeNetRequest"]
}The Shape of a Rule
Each rule has an id, a priority, an action, and a condition. The condition decides which requests match.
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": { "urlFilter": "ads.example.com" }
}Adding Dynamic Rules
Use updateDynamicRules to add rules. Pass them in the addRules array.
chrome.declarativeNetRequest.updateDynamicRules({
addRules: [{
id: 1, priority: 1,
action: { type: 'block' },
condition: { urlFilter: 'tracker.com', resourceTypes: ['script'] }
}]
})Removing Rules by ID
The same call removes rules by listing their IDs in removeRuleIds. Adds and removes can happen together.
chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: [1]
})Unique Rule IDs
Every dynamic rule needs a unique numeric id. Reusing an existing ID without removing it first causes an error.
const existing = await chrome.declarativeNetRequest.getDynamicRules()
const nextId = Math.max(0, ...existing.map(r => r.id)) + 1Priorities Resolve Conflicts
When multiple rules match, priority decides which wins. Higher priority takes precedence; allow rules can override block rules at the same level.
{ "id": 2, "priority": 2, "action": { "type": "allow" }, "condition": { "urlFilter": "safe.com" } }Session Rules
If you want rules that vanish when the browser closes, use updateSessionRules instead. They never persist to disk.
chrome.declarativeNetRequest.updateSessionRules({
addRules: [tempRule]
})Observing Matched Requests
For debugging, enable the feedback permission and listen to onRuleMatchedDebug to see which rule fired for each request.
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener((info) => {
console.log('Matched rule ' + info.rule.ruleId)
})Inspecting Current Rules
Call getDynamicRules to list everything currently active. This is essential when a rule misbehaves and you need to confirm what is installed.
const rules = await chrome.declarativeNetRequest.getDynamicRules()
console.log(rules.length + ' active rules')Staying Within Limits
There is a cap on the number of dynamic rules. Audit and remove stale rules instead of piling on, and group conditions where possible to stay efficient.
Quick Check
Test your dynamic rules knowledge.
Recap
You learned dynamic request rules:
- Add and remove with
updateDynamicRules - Keep IDs unique and use
priorityfor conflicts - Use session rules for temporary state
- Debug with
onRuleMatchedDebugandgetDynamicRules - Respect rule count limits
Runtime rules let your extension adapt without shipping an update.
Sıkça Sorulan Sorular
“Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama” dersi ücretsiz mi?
Evet — “Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Browser Extensions Development (Chrome & Edge) kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Browser Extensions Development (Chrome & Edge) kursu toplamda 4 dersten oluşur.
“Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama” dersinde ne öğreneceğim?
Kuralları çalışma zamanında ekleyip güncelleyin, kural kimliklerini ve önceliklerini yönetin, hata ayıklamak için eşleşen istekleri gözlemleyin. Browser Extensions Development (Chrome & Edge) ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Browser Extensions Development (Chrome & Edge) öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Browser Extensions Development (Chrome & Edge), başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Browser Extensions Development (Chrome & Edge) dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Browser Extensions Development (Chrome & Edge) dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Ağ İsteklerini Engelleme
- İstek Üst Bilgilerini Değiştirme
- URL'leri Yönlendirme ve Yeniden Yazma
- Dinamik Kurallar ve declarativeNetRequest Hata Ayıklama