Dynamische Regeln und Debugging von declarativeNetRequest
Fügen Sie Regeln zur Laufzeit hinzu und aktualisieren Sie sie, verwalten Sie Regel-IDs und Prioritäten und beobachten Sie übereinstimmende Anfragen zum Debuggen.
Dynamische Regeln und Debugging von declarativeNetRequest ist eine kostenlose Browser Extensions Development (Chrome & Edge)-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Browser Extensions Development (Chrome & Edge)-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Browser Extensions Development (Chrome & Edge)-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
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.
Häufig gestellte Fragen
Ist die Lektion „Dynamische Regeln und Debugging von declarativeNetRequest“ kostenlos?
Ja — der vollständige Text von „Dynamische Regeln und Debugging von declarativeNetRequest“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Browser Extensions Development (Chrome & Edge)-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Browser Extensions Development (Chrome & Edge)-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dynamische Regeln und Debugging von declarativeNetRequest“?
Fügen Sie Regeln zur Laufzeit hinzu und aktualisieren Sie sie, verwalten Sie Regel-IDs und Prioritäten und beobachten Sie übereinstimmende Anfragen zum Debuggen. Du übst Browser Extensions Development (Chrome & Edge) mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Browser Extensions Development (Chrome & Edge) zu starten?
Keine Vorkenntnisse erforderlich. Browser Extensions Development (Chrome & Edge) auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Dynamische Regeln und Debugging von declarativeNetRequest“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Browser Extensions Development (Chrome & Edge)-Lektion Code schreiben und ausführen?
Ja. Jede Browser Extensions Development (Chrome & Edge)-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Netzwerkanfragen blockieren
- Anfrage-Header ändern
- URLs umleiten und umschreiben
- Dynamische Regeln und Debugging von declarativeNetRequest