Beschrijving
De chrome.declarativeNetRequest API wordt gebruikt om netwerkverzoeken te blokkeren of te wijzigen door middel van declaratieve regels. Hierdoor kunnen extensies netwerkverzoeken aanpassen zonder ze te onderscheppen en de inhoud ervan te bekijken, wat zorgt voor meer privacy.
Toestemmingen
declarativeNetRequestdeclarativeNetRequestWithHostAccess declarativeNetRequestFeedback
host_permissions
Beschikbaarheid
Manifest
Naast de hierboven beschreven machtigingen vereisen bepaalde typen regelsets, met name statische regelsets, dat de manifestsleutel "declarative_net_request" wordt gedeclareerd. Deze sleutel moet een dictionary zijn met één sleutel genaamd "rule_resources" . Deze sleutel is een array die dictionaries van het type Ruleset bevat, zoals hieronder weergegeven. (Merk op dat de naam 'Ruleset' niet in de JSON van het manifest voorkomt, omdat het slechts een array is.) Statische regelsets worden later in dit document uitgelegd.
{
"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/*"
],
...
}
Concepten en gebruik
Om deze API te gebruiken, moet u een of meer regelsets specificeren. Een regelset bevat een array met regels. Een enkele regel doet een van de volgende dingen:
- Blokkeer een netwerkverzoek.
- Wijzig het schema (http naar https).
- Voorkom dat een verzoek wordt geblokkeerd door alle overeenkomende blokkeringsregels te negeren.
- Een netwerkverzoek omleiden.
- Wijzig de headers van het verzoek of het antwoord.
Er zijn drie soorten regelsets, die op enigszins verschillende manieren worden beheerd.
- Dynamisch
- Deze instellingen blijven behouden tijdens browsersessies en extensie-updates en worden beheerd met JavaScript zolang een extensie in gebruik is.
- Sessie
- De instellingen worden gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd. Sessieregels worden beheerd met behulp van JavaScript zolang een extensie in gebruik is.
- Statisch
- De statische regels worden verpakt, geïnstalleerd en bijgewerkt wanneer een extensie wordt geïnstalleerd of geüpgraded. Ze worden opgeslagen in JSON-bestanden en vermeld in het manifestbestand.
In de volgende paragrafen worden de verschillende soorten regelsets in detail uitgelegd.
Dynamische en sessiegebonden regelsets
Dynamische en sessieregels worden beheerd met behulp van JavaScript zolang een extensie in gebruik is.
- Dynamische regels blijven behouden gedurende browsersessies en bij updates van extensies.
- Sessieregels worden gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd.
Er is slechts één exemplaar van elk van deze regeltypen. Een extensie kan dynamisch regels toevoegen of verwijderen door de functies updateDynamicRules() en updateSessionRules() aan te roepen, mits de regellimieten niet worden overschreden. Zie Regellimieten voor meer informatie over regellimieten . Een voorbeeld hiervan is te vinden onder codevoorbeelden .
Statische regelsets
In tegenstelling tot dynamische en sessieregels worden statische regels verpakt, geïnstalleerd en bijgewerkt wanneer een extensie wordt geïnstalleerd of geüpgraded. Ze worden opgeslagen in regelbestanden in JSON-formaat, die aan de extensie worden doorgegeven via de sleutels "declarative_net_request" en "rule_resources" zoals hierboven beschreven , evenals een of meer Ruleset -woordenboeken. Een Ruleset -woordenboek bevat een pad naar het regelbestand, een ID voor de regelset in het bestand en of de regelset is ingeschakeld of uitgeschakeld. De laatste twee zijn belangrijk wanneer u een regelset programmatisch in- of uitschakelt.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Om regelbestanden te testen, laadt u uw extensie in uitgepakte toestand . Foutmeldingen en waarschuwingen over ongeldige statische regels worden alleen weergegeven voor uitgepakte extensies. Ongeldige statische regels in ingepakte extensies worden genegeerd.
Statische regels en regelsets in- en uitschakelen
Zowel individuele statische regels als complete sets statische regels kunnen tijdens de uitvoering worden in- of uitgeschakeld.
De set ingeschakelde statische regels en regelsets blijft behouden tussen browsersessies. Deze worden echter niet behouden bij updates van extensies, wat betekent dat na een update alleen de regels beschikbaar zijn die u in uw regelbestanden hebt laten staan.
Om prestatieproblemen te voorkomen, gelden er ook limieten voor het aantal regels en regelsets dat tegelijkertijd kan worden ingeschakeld. Roep getAvailableStaticRuleCount() aan om het aantal extra regels te controleren dat kan worden ingeschakeld. Zie Regellimieten voor meer informatie over regellimieten .
Om statische regels in of uit te schakelen, roept u updateStaticRules() aan. Deze methode accepteert een UpdateStaticRulesOptions object, dat arrays bevat met ID's van regels die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de sleutel "id" in het woordenboek Ruleset .
Om statische regelsets in of uit te schakelen, roept u updateEnabledRulesets() aan. Deze methode accepteert een UpdateRulesetOptions object, dat arrays bevat met ID's van regelsets die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de sleutel "id" in het Ruleset -woordenboek.
Bouwregels
Ongeacht het type, begint een regel met vier velden, zoals hieronder weergegeven. De sleutels "id" en "priority" accepteren een getal, terwijl de sleutels "action" en "condition" meerdere blokkerings- en omleidingsvoorwaarden kunnen bevatten. De volgende regel blokkeert alle scriptverzoeken afkomstig van "foo.com" naar elke URL die "abc" als substring bevat.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter overeenkomende tekens
De sleutel "condition" van een regel maakt een "urlFilter" -sleutel mogelijk om acties uit te voeren op URL's binnen een specifiek domein. Je maakt patronen met behulp van patroonmatching-tokens . Enkele voorbeelden worden hieronder weergegeven.
urlFilter | Wedstrijden | Komt niet overeen |
|---|---|---|
"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://baexample.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 |
Prioritering van regels
Regels worden geactiveerd door verzoeken die vanaf webpagina's worden verzonden. Als meerdere regels overeenkomen met een bepaald verzoek, moeten de regels worden geprioriteerd. In dit gedeelte wordt uitgelegd hoe ze worden geprioriteerd. Prioritering vindt plaats in twee fasen.
- De prioriteit wordt bepaald voor regels binnen een extensie.
- Als meer dan één extensie een regel op een verzoek kan toepassen, wordt de prioriteit bepaald voor alle extensies die overeenkomen met dat specifieke verzoek.
Je kunt het matchen als volgt bekijken: welke regel een bepaalde extensie ook prioriteert, die regel zal vervolgens ook geprioriteerd worden ten opzichte van regels van andere extensies.
Prioritering van regels binnen een extensie
Binnen één enkele extensie wordt de prioriteit bepaald aan de hand van het volgende proces:
- De regel met de hoogste door de ontwikkelaar gedefinieerde prioriteit (oftewel het veld
"priority") wordt geretourneerd. Als er meer dan één regel is met de hoogste door de ontwikkelaar gedefinieerde prioriteit, worden de regels geprioriteerd op basis van het veld
"action", in de volgende volgorde:-
allow -
allowAllRequests -
block -
upgradeScheme -
redirect
-
Als het actietype geen
blockofredirectis, worden alle overeenkomendemodifyHeaders-regels geëvalueerd. Houd er rekening mee dat als er regels zijn met een door de ontwikkelaar gedefinieerde prioriteit die lager is dan de prioriteit die is opgegeven voorallowenallowAllRequests, deze regels worden genegeerd.Als meerdere regels dezelfde header wijzigen, wordt de wijziging bepaald door het door de ontwikkelaar gedefinieerde veld
"priority"en door de gespecificeerde bewerkingen.- Als een regel iets toevoegt aan een header, kunnen regels met een lagere prioriteit alleen iets toevoegen aan die header. Instellen en verwijderen zijn niet toegestaan.
- Als een regel een koptekst instelt, kunnen regels met een lagere prioriteit alleen aan die koptekst toevoegen. Andere wijzigingen zijn niet toegestaan.
- Als een regel een koptekst verwijdert, kunnen regels met een lagere prioriteit die koptekst niet verder wijzigen.
Prioriteitsbepaling van regels tussen extensies
Als slechts één extensie een regel heeft die overeenkomt met een verzoek, wordt die regel toegepast. Maar als meer dan één extensie overeenkomt met een verzoek, wordt de volgende procedure gebruikt:
Regels worden geprioriteerd op basis van het veld
"action", in de volgende volgorde:-
block -
redirectofupgradeScheme -
allowof alleallowAllRequests
-
Als er meer dan één regel van toepassing is, krijgt de meest recent geïnstalleerde extensie voorrang.
Regelgrenzen
Het laden en evalueren van regels in de browser brengt prestatieverlies met zich mee, waardoor er beperkingen gelden bij het gebruik van de API. Deze beperkingen zijn afhankelijk van het type regel dat u gebruikt.
Statische regels
Statische regels zijn regels die zijn gespecificeerd in regelbestanden die zijn gedeclareerd in het manifestbestand. Een extensie kan maximaal 50 statische regelsets specificeren als onderdeel van de manifestsleutel "rule_resources" , maar slechts 10 van deze regelsets kunnen tegelijkertijd worden ingeschakeld. Dit laatste wordt de MAX_NUMBER_OF_ENABLED_STATIC_RULESETS genoemd. Gezamenlijk zijn deze regelsets gegarandeerd minimaal 30.000 regels. Dit wordt de GUARANTEED_MINIMUM_STATIC_RULES genoemd.
Het aantal beschikbare regels daarna hangt af van hoeveel regels zijn ingeschakeld door alle extensies die in de browser van de gebruiker zijn geïnstalleerd. U kunt dit aantal tijdens de uitvoering achterhalen door de functie getAvailableStaticRuleCount() aan te roepen. Een voorbeeld hiervan vindt u in de codevoorbeelden .
Dynamische en sessieregels
De limieten voor dynamische en sessieregels zijn eenvoudiger dan voor statische regels. Het totale aantal van beide mag niet meer dan 5000 bedragen. Dit wordt de MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES genoemd.
Regels die gebruikmaken van reguliere expressies
Alle soorten regels kunnen reguliere expressies gebruiken; het totale aantal regex-regels van elk type mag echter niet meer dan 1000 bedragen. Dit wordt de MAX_NUMBER_OF_REGEX_RULES genoemd.
Bovendien moet elke regel na compilatie kleiner zijn dan 2 KB. Dit hangt ruwweg samen met de complexiteit van de regel. Als u een regel probeert te laden die deze limiet overschrijdt, krijgt u een waarschuwing zoals hieronder te zien en wordt de regel genegeerd.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Interacties met servicemedewerkers
Een declarativeNetRequest is alleen van toepassing op verzoeken die de netwerkstack bereiken. Dit omvat reacties uit de HTTP-cache, maar mogelijk niet reacties die via de onfetch handler van een service worker gaan. DeclarativeNetRequest heeft geen invloed op reacties die door de service worker worden gegenereerd of die uit CacheStorage worden opgehaald, maar wel op aanroepen van fetch() in een service worker.
Webtoegankelijke bronnen
Een declarativeNetRequest-regel mag geen omleiding uitvoeren van een openbare resourceaanvraag naar een resource die niet via het web toegankelijk is. Dit leidt tot een foutmelding. Dit geldt zelfs als de opgegeven, via het web toegankelijke resource eigendom is van de omleidende extensie. Om resources voor declarativeNetRequest te declareren, gebruikt u de array "web_accessible_resources" in het manifest.
Voorbeelden
Codevoorbeelden
Dynamische regels bijwerken
Het volgende voorbeeld laat zien hoe je updateDynamicRules() aanroept. De procedure voor updateSessionRules() is hetzelfde.
// 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
});
Statische regelsets bijwerken
Het volgende voorbeeld laat zien hoe u regelsets kunt in- en uitschakelen, rekening houdend met het aantal beschikbare en het maximaal aantal ingeschakelde statische regelsets. Dit doet u wanneer het aantal benodigde statische regels het toegestane aantal overschrijdt. Om dit te laten werken, moeten sommige van uw regelsets geïnstalleerd zijn met een aantal uitgeschakeld (door "Enabled" op false te zetten in het manifestbestand).
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);
}
Voorbeelden van regels
De onderstaande voorbeelden illustreren hoe Chrome prioriteit geeft aan regels in een extensie. Wanneer u deze regels bekijkt, kunt u ze het beste in een apart venster openen.
De "prioriteitssleutel"
Deze voorbeelden vereisen hosttoegang tot *://*.example.com/* .
Om de prioriteit van een bepaalde URL te bepalen, kijk je naar de (door de ontwikkelaar gedefinieerde) sleutel "priority" , de sleutel "action" en de sleutel "urlFilter" . Deze voorbeelden verwijzen naar het onderstaande voorbeeldregelbestand.
- Navigatie naar https://google.com
- Twee regels zijn van toepassing op deze URL: de regels met ID 1 en 4. Regel 1 is van toepassing omdat
"block"-acties een hogere prioriteit hebben dan"redirect"-acties. De overige regels zijn niet van toepassing omdat ze gelden voor langere URL's. - Navigatie naar https://google.com/1234
- Vanwege de langere URL komt de regel met ID 2 nu overeen met de regels met ID 1 en 4. De regel met ID 2 is van toepassing omdat
"allow"een hogere prioriteit heeft dan"block"en"redirect". - Navigatie naar https://google.com/12345
- Alle vier regels komen overeen met deze URL. De regel met ID 3 is van toepassing omdat de door de ontwikkelaar gedefinieerde prioriteit de hoogste van de groep is.
[
{
"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"] }
},
]
Omleidingen
Het onderstaande voorbeeld vereist hosttoegang tot *://*.example.com/* .
Het volgende voorbeeld laat zien hoe je een verzoek van example.com kunt doorsturen naar een pagina binnen de extensie zelf. Het extensiepad /a.jpg wordt omgezet naar chrome-extension://EXTENSION_ID/a.jpg , waarbij EXTENSION_ID de ID van je extensie is. Om dit te laten werken, moet /a.jpg in het manifest als een webtoegankelijke bron worden gedeclareerd.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Het volgende voorbeeld gebruikt de sleutel "transform" om door te verwijzen naar een subdomein van example.com. Het gebruikt een domeinnaamanker ("||") om verzoeken met elk schema van example.com te onderscheppen. De sleutel "scheme" in "transform" geeft aan dat doorverwijzingen naar het subdomein altijd "https" zullen gebruiken.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
Het volgende voorbeeld gebruikt reguliere expressies om door te verwijzen van https://www.abc.xyz.com/path naar https://abc.xyz.com/path . Let in de sleutel "regexFilter" op hoe punten worden ontsnapt en dat de vastleggingsgroep "abc" of "def" selecteert. De sleutel "regexSubstitution" specificeert de eerste overeenkomst van de reguliere expressie met behulp van "\1". In dit geval wordt "abc" uit de omgeleide URL gehaald en in de vervanging geplaatst.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Kopteksten
Het volgende voorbeeld verwijdert alle cookies uit zowel een hoofdvenster als alle subvensters.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Soorten
DomainType
Dit beschrijft of het verzoek afkomstig is van de eerste of derde partij van het frame waarin het is ontstaan. Een verzoek is afkomstig van de eerste partij als het hetzelfde domein (eTLD+1) heeft als het frame waarin het verzoek is ontstaan.
Enum
"firstParty" "derde partij"
Het netwerkverzoek is de eerste partij in het frame waarin het is ontstaan.
Het netwerkverzoek is een derde partij ten opzichte van het frame waarin het is ontstaan.
ExtensionActionOptions
Eigenschappen
- toonActieAantalAlsBadgeTekst
boolean optioneel
Of het aantal acties voor een pagina automatisch als badge-tekst van de extensie moet worden weergegeven. Deze voorkeur blijft behouden tussen sessies.
- tabUpdate
TabActionCountUpdate optioneel
Chrome 89+Details over hoe het aantal acties op het tabblad moet worden aangepast.
GetDisabledRuleIdsOptions
Eigenschappen
- regelssetId
snaar
De ID die overeenkomt met een statische
Ruleset.
GetRulesFilter
Eigenschappen
- regel-ID's
nummer[] optioneel
Indien gespecificeerd, worden alleen regels met overeenkomende ID's opgenomen.
HeaderInfo
Eigenschappen
- uitgesloten waarden
string[] optioneel
Indien gespecificeerd, wordt aan deze voorwaarde niet voldaan als de koptekst bestaat, maar de waarde ervan ten minste één element uit deze lijst bevat. Hierbij wordt dezelfde syntaxis voor het matchpatroon gebruikt als
values. - koptekst
snaar
De naam van de header. Deze voorwaarde komt alleen overeen met de naam als zowel
valuesalsexcludedValuesniet zijn gespecificeerd. - waarden
string[] optioneel
Indien gespecificeerd, komt deze voorwaarde overeen als de waarde van de header overeenkomt met ten minste één patroon in deze lijst. Dit ondersteunt hoofdletterongevoelige vergelijking van headerwaarden plus de volgende constructies:
'*' : Komt overeen met een willekeurig aantal tekens.
'?' : Komt overeen met nul of één teken(s).
'*' en '?' kunnen worden ontsnapt met een backslash, bijvoorbeeld '\*' en '\?'
HeaderOperation
Dit beschrijft de mogelijke bewerkingen voor een "modifyHeaders"-regel.
Enum
"toevoegen" "set" "verwijderen"
Voegt een nieuwe vermelding toe voor de opgegeven header. Bij het wijzigen van de headers van een verzoek wordt deze bewerking alleen ondersteund voor specifieke headers .
Stelt een nieuwe waarde in voor de opgegeven header en verwijdert alle bestaande headers met dezelfde naam.
Verwijdert alle vermeldingen voor de opgegeven koptekst.
IsRegexSupportedResult
Eigenschappen
- wordt ondersteund
booleaans
- reden
UnsupportedRegexReason (optioneel )
Geeft de reden aan waarom de reguliere expressie niet wordt ondersteund. Wordt alleen weergegeven als
isSupportedonwaar is.
MatchedRule
Eigenschappen
- regel-ID
nummer
De ID van een overeenkomende regel.
- regelssetId
snaar
De ID van de
Rulesetwaartoe deze regel behoort. Voor een regel afkomstig uit de set dynamische regels is dit gelijk aanDYNAMIC_RULESET_ID.
MatchedRuleInfo
Eigenschappen
- regel
- tabId
nummer
De tab-ID van het tabblad van waaruit het verzoek afkomstig is, indien het tabblad nog actief is. Anders -1.
- tijdstempel
nummer
Het tijdstip waarop de regel werd gevonden. Tijdstempels komen overeen met de JavaScript-conventie voor tijden, oftewel het aantal milliseconden sinds de epoch.
MatchedRuleInfoDebug
Eigenschappen
- verzoek
Details over het verzoek waarvoor de regel is gevonden.
- regel
MatchedRulesFilter
Eigenschappen
- minTijdstempel
nummer optioneel
Indien gespecificeerd, worden alleen regels na het opgegeven tijdstempel gematcht.
- tabId
nummer optioneel
Indien gespecificeerd, worden alleen regels voor het betreffende tabblad gematcht. Regels die niet aan een actief tabblad zijn gekoppeld, worden ook gematcht als de waarde -1 is ingesteld.
ModifyHeaderInfo
Eigenschappen
- koptekst
snaar
De naam van de header die moet worden gewijzigd.
- operatie
De handeling die op een header moet worden uitgevoerd.
- waarde
string optioneel
De nieuwe waarde voor de header. Moet worden opgegeven voor
appendenset.
QueryKeyValue
Eigenschappen
- sleutel
snaar
- alleen vervangen
boolean optioneel
Chrome 94+Indien waar, wordt de zoeksleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. De standaardwaarde is onwaar.
- waarde
snaar
QueryTransform
Eigenschappen
- addOrReplaceParams
QueryKeyValue [] optioneel
De lijst met sleutel-waardeparen die moeten worden toegevoegd of vervangen.
- verwijderParams
string[] optioneel
De lijst met zoektermen die verwijderd moeten worden.
Redirect
Eigenschappen
- uitbreidingspad
string optioneel
Pad relatief ten opzichte van de extensiemap. Moet beginnen met '/'.
- regexSubstitution
string optioneel
Vervangingspatroon voor regels die een
regexFilterspecificeren. De eerste overeenkomst vanregexFilterin de URL wordt vervangen door dit patroon. BinnenregexSubstitutionkunnen backslash-escaped cijfers (\1 tot \9) worden gebruikt om de overeenkomstige vastleggingsgroepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst. - transformeren
URLTransform optioneel
Uit te voeren URL-transformaties.
- URL
string optioneel
De redirect-URL. Omleidingen naar JavaScript-URL's zijn niet toegestaan.
RegexOptions
Eigenschappen
- isCaseSensitive
boolean optioneel
Of de opgegeven
regexexpressie hoofdlettergevoelig is. Standaard is dit waar. - reguliere expressie
snaar
De reguliere expressie om te controleren.
- vereisen Vastleggen
boolean optioneel
Of de opgegeven
regexvastlegging vereist. Vastlegging is alleen vereist voor omleidingsregels die eenregexSubstition-actie specificeren. De standaardwaarde is false.
RequestDetails
Eigenschappen
- documentId
string optioneel
Chrome 106+De unieke identificatiecode voor het document van het frame, indien dit verzoek betrekking heeft op een frame.
- documentLevenscyclus
DocumentLifecycle optioneel
Chrome 106+De levenscyclus van het framedocument, indien dit verzoek betrekking heeft op een frame.
- frameId
nummer
De waarde 0 geeft aan dat het verzoek plaatsvindt in het hoofdvenster; een positieve waarde geeft de ID aan van een subvenster waarin het verzoek plaatsvindt. Als het document van een (sub)venster wordt geladen (
typeismain_frameofsub_frame), geeftframeIdde ID van dit venster aan, niet de ID van het buitenste venster. Venster-ID's zijn uniek binnen een tabblad. - frameType
FrameType optioneel
Chrome 106+Het type frame, indien dit verzoek om een frame gaat.
- initiatiefnemer
string optioneel
De oorsprong waar het verzoek vandaan kwam. Deze verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de tekenreeks 'null' gebruikt.
- methode
snaar
Standaard HTTP-methode.
- parentDocumentId
string optioneel
Chrome 106+De unieke identificatiecode voor het bovenliggende document van het frame, indien dit verzoek betrekking heeft op een frame en een bovenliggend document heeft.
- parentFrameId
nummer
ID van het frame dat het frame omsluit dat het verzoek heeft verzonden. Stel in op -1 als er geen ouderframe bestaat.
- verzoek-ID
snaar
Het ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie.
- tabId
nummer
De ID van het tabblad waarop het verzoek plaatsvindt. Stel deze in op -1 als het verzoek niet aan een tabblad is gekoppeld.
- type
Het resourcetype van het verzoek.
- URL
snaar
De URL van het verzoek.
RequestMethod
Dit beschrijft de HTTP-verzoekmethode van een netwerkverzoek.
Enum
"verbinden" "verwijderen" "krijgen" "hoofd" "opties" "lapje" "na" "neerzetten" "ander"
ResourceType
Dit beschrijft het type bron van het netwerkverzoek.
Enum
"hoofdframe" "sub_frame" "stijlpagina" "script" "afbeelding" "lettertype" "voorwerp" "xmlhttprequest" "ping" "csp_rapport" "media" "websocket" "webtransport" "webbundel" "ander"
Rule
Eigenschappen
- actie
De actie die moet worden ondernomen als aan deze regel wordt voldaan.
- voorwaarde
De voorwaarde waaronder deze regel van toepassing is.
- id
nummer
Een ID die een regel uniek identificeert. Verplicht en moet >= 1 zijn.
- prioriteit
nummer optioneel
Prioriteit van de regel. Standaardwaarde is 1. Indien gespecificeerd, moet deze waarde >= 1 zijn.
RuleAction
Eigenschappen
- omleiding
Doorverwijzing optioneel
Beschrijft hoe de omleiding moet worden uitgevoerd. Alleen geldig voor omleidingsregels.
- verzoekHeaders
ModifyHeaderInfo [] optioneel
Chrome 86+De aanvraagheaders die voor de aanvraag moeten worden gewijzigd. Alleen geldig als RuleActionType "modifyHeaders" is.
- antwoordHeaders
ModifyHeaderInfo [] optioneel
Chrome 86+De responseheaders die voor het verzoek moeten worden aangepast. Alleen geldig als RuleActionType "modifyHeaders" is.
- type
Het type actie dat moet worden uitgevoerd.
RuleActionType
Beschrijft het soort actie dat moet worden ondernomen als een bepaalde regelvoorwaarde overeenkomt.
Enum
"blok" "doorverwijzen" "toestaan" "upgradeSchema" "modifyHeaders" "alle verzoeken toestaan"
Blokkeer het netwerkverzoek.
Leid het netwerkverzoek om.
Sta het netwerkverzoek toe. Het verzoek wordt niet onderschept als er een toegangsregel is die ermee overeenkomt.
Wijzig het schema van de netwerkverzoek-URL naar https als het verzoek http of ftp is.
Wijzig de request/response-headers van het netwerkverzoek.
Sta alle verzoeken binnen een framehiërarchie toe, inclusief het frameverzoek zelf.
RuleCondition
Eigenschappen
- domeinType
Domeintype optioneel
Geeft aan of het netwerkverzoek afkomstig is van de eerste partij (first-party) of van een derde partij (third-party) ten opzichte van het domein waar het vandaan komt. Indien dit veld wordt weggelaten, worden alle verzoeken geaccepteerd.
- domeinen
string[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
initiatorDomainsDe regel komt alleen overeen met netwerkverzoeken afkomstig van de lijst met
domains. - uitgesloten domeinen
string[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
excludedInitiatorDomainsDe regel zal geen netwerkverzoeken matchen die afkomstig zijn van de lijst met
excludedDomains. - uitgeslotenInitiatorDomains
string[] optioneel
Chrome 101+De regel zal geen netwerkverzoeken matchen die afkomstig zijn van de lijst met
excludedInitiatorDomains. Als de lijst leeg is of ontbreekt, worden er geen domeinen uitgesloten. Dit heeft voorrang opinitiatorDomains.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit wordt vergeleken met de initiatiefnemer van het verzoek en niet met de URL van het verzoek.
- Subdomeinen van de vermelde domeinen zijn eveneens uitgesloten.
- uitgesloten aanvraagdomeinen
string[] optioneel
Chrome 101+De regel zal geen netwerkverzoeken matchen wanneer de domeinen overeenkomen met een van de domeinen in de lijst
excludedRequestDomains. Als de lijst leeg is of ontbreekt, worden er geen domeinen uitgesloten. Dit heeft voorrang oprequestDomains.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen zijn eveneens uitgesloten.
- uitgesloten aanvraagmethoden
RequestMethod [] optioneel
Chrome 91+Lijst met aanvraagmethoden die niet door de regel worden herkend. Slechts één van de twee opties,
requestMethodsofexcludedRequestMethodsmoet worden opgegeven. Als geen van beide is opgegeven, worden alle aanvraagmethoden herkend. - uitgeslotenBrontypen
ResourceType [] optioneel
Lijst met resourcetypen die niet door de regel worden herkend. Slechts één van de
resourceTypesenexcludedResourceTypesmag worden opgegeven. Indien geen van beide is opgegeven, worden alle resourcetypen behalve "main_frame" geblokkeerd. - uitgeslotenResponseHeaders
HeaderInfo [] optioneel
Chrome 128+De regel is niet van toepassing als het verzoek overeenkomt met een van de voorwaarden in de antwoordheaders in deze lijst (indien gespecificeerd). Als zowel
excludedResponseHeadersalsresponseHeaderszijn gespecificeerd, heeft de eigenschapexcludedResponseHeadersvoorrang. - uitgeslotenTabIds
nummer[] optioneel
Chrome 92+Lijst met
tabs.Tab.iddie niet door de regel mogen worden herkend. Een ID vantabs.TAB_ID_NONEsluit verzoeken uit die niet afkomstig zijn van een tabblad. Alleen ondersteund voor sessiegebonden regels. - uitgeslotenTopDomains
string[] optioneel
In behandelingDe regel zal geen netwerkverzoeken matchen wanneer het domein van het bijbehorende top-level frame overeenkomt met een domein uit de lijst
excludedTopDomains. Als de lijst leeg is of ontbreekt, worden er geen domeinen uitgesloten. Deze regel heeft voorrang optopDomains.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen zijn eveneens uitgesloten.
- Voor verzoeken zonder bijbehorend topniveau-frame (bijvoorbeeld verzoeken geïnitieerd door ServiceWorker), wordt in plaats daarvan het domein van de verzoekinitiator gebruikt.
- initiatorDomains
string[] optioneel
Chrome 101+De regel is alleen van toepassing op netwerkverzoeken afkomstig van de lijst met
initiatorDomains. Als de lijst ontbreekt, is de regel van toepassing op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit wordt vergeleken met de initiatiefnemer van het verzoek en niet met de URL van het verzoek.
- Subdomeinen van de vermelde domeinen worden ook vergeleken.
- isUrlFilterCaseSensitive
boolean optioneel
Of de
urlFilterofregexFilter(afhankelijk van welke is opgegeven) hoofdlettergevoelig is. De standaardwaarde is false. - regexFilter
string optioneel
Reguliere expressie om te matchen met de URL van het netwerkverzoek. Deze volgt de RE2-syntaxis .
Let op: slechts één van de twee,
urlFilterofregexFilterkan worden opgegeven.Opmerking: Het
regexFiltermag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in het punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn URL-gecodeerd in UTF-8. - verzoekdomeinen
string[] optioneel
Chrome 101+De regel is alleen van toepassing op netwerkverzoeken wanneer het domein overeenkomt met een van de domeinen in de lijst `
requestDomains. Als de lijst ontbreekt, is de regel van toepassing op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook vergeleken.
- verzoekmethoden
RequestMethod [] optioneel
Chrome 91+Lijst met HTTP-verzoekmethoden die aan de regel kunnen voldoen. Een lege lijst is niet toegestaan.
Opmerking: Het specificeren van een
requestMethods-regelvoorwaarde sluit ook niet-HTTP(s)-verzoeken uit, terwijl het specificerenexcludedRequestMethodsdit niet doet. - resourceTypes
ResourceType [] optioneel
Lijst met resourcetypen die door de regel kunnen worden gematcht. Een lege lijst is niet toegestaan.
Let op: dit moet worden gespecificeerd voor
allowAllRequestsregels en mag alleen de resourcetypensub_frameenmain_frameomvatten. - antwoordHeaders
HeaderInfo [] optioneel
Chrome 128+De regel is van toepassing als het verzoek overeenkomt met een van de voorwaarden in de antwoordheader in deze lijst (indien gespecificeerd).
- tabIds
nummer[] optioneel
Chrome 92+Lijst met
tabs.Tab.idwaarop de regel moet overeenkomen. Een ID vantabs.TAB_ID_NONEkomt overeen met verzoeken die niet afkomstig zijn van een tabblad. Een lege lijst is niet toegestaan. Alleen ondersteund voor regels met een sessiebereik. - topdomeinen
string[] optioneel
In behandelingDe regel is alleen van toepassing op netwerkverzoeken wanneer het domein van het bijbehorende top-level frame overeenkomt met een domein in de lijst
topDomains. Als de lijst ontbreekt, wordt de regel toegepast op verzoeken die zijn gekoppeld aan alle top-level frame-domeinen. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De invoer mag uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook vergeleken.
- Voor verzoeken zonder bijbehorend topniveau-frame (bijvoorbeeld verzoeken geïnitieerd door ServiceWorker), wordt in plaats daarvan het domein van de verzoekinitiator gebruikt.
- urlFilter
string optioneel
Het patroon dat wordt vergeleken met de URL van het netwerkverzoek. Ondersteunde constructies:
'*' : Jokerteken: Komt overeen met een willekeurig aantal tekens.
'|' : Linker/rechter anker: Indien gebruikt aan een van beide uiteinden van het patroon, specificeert het respectievelijk het begin/einde van de URL.
'||' : Anker voor domeinnaam: Indien gebruikt aan het begin van het patroon, specificeert dit het begin van een (sub)domein van de URL.
'^' : Scheidingsteken: Dit komt overeen met alles behalve een letter, een cijfer of een van de volgende tekens:
_,-,., of%. Dit komt ook overeen met het einde van de URL.Daarom is
urlFilteropgebouwd uit de volgende onderdelen: (optioneel linker-/domeinnaamanker) + patroon + (optioneel rechteranker).Indien weggelaten, worden alle URL's vergeleken. Een lege tekenreeks is niet toegestaan.
Een patroon dat begint met
||*is niet toegestaan. Gebruik in plaats daarvan*.Let op: slechts één van de twee,
urlFilterofregexFilterkan worden opgegeven.Opmerking: De
urlFiltermag alleen uit ASCII-tekens bestaan. Deze wordt vergeleken met een URL waarbij de host is gecodeerd in het punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn URL-gecodeerd in UTF-8. Als de aanvraag-URL bijvoorbeeld http://abc.рф?q=ф is, wordt deurlFiltervergeleken met de URL http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
Enum
"urlFilter" "regexFilter" "isUrlFilterCaseSensitive" "initiatorDomains" "uitgeslotenInitiatorDomains" "verzoekdomeinen" "uitgesloten aanvraagdomeinen" "topDomains" "uitgeslotenTopDomains" "domeinen" "uitgesloten domeinen" "resourceTypes" "uitgeslotenBrontypen" "requestMethods" "excludedRequestMethods" "domeintype" "tabIds" "uitgeslotenTabIds" "responseHeaders" "excludedResponseHeaders"
Ruleset
Eigenschappen
- ingeschakeld
booleaans
Of de regelset standaard is ingeschakeld.
- id
snaar
Een niet-lege tekenreeks die de regelset uniek identificeert. ID's die beginnen met '_' zijn gereserveerd voor intern gebruik.
- pad
snaar
Het pad van de JSON-regelset ten opzichte van de extensiemap.
RulesMatchedDetails
Eigenschappen
- regelsOvereenkomendeInfo
Regels die overeenkomen met het opgegeven filter.
TabActionCountUpdate
Eigenschappen
- verhoging
nummer
Het bedrag waarmee de actieteller van het tabblad wordt verhoogd. Negatieve waarden verlagen de teller.
- tabId
nummer
Het tabblad waarvoor het aantal acties moet worden bijgewerkt.
TestMatchOutcomeResult
Eigenschappen
- matchedRules
MatchedRule []
De regels (indien van toepassing) die overeenkomen met het hypothetische verzoek.
TestMatchRequestDetails
Eigenschappen
- initiatiefnemer
string optioneel
De URL van de initiator (indien aanwezig) voor het hypothetische verzoek.
- methode
RequestMethod (optioneel)
De standaard HTTP-methode van het hypothetische verzoek. Standaard is dit "get" voor HTTP-verzoeken en wordt het genegeerd voor niet-HTTP-verzoeken.
- antwoordHeaders
object optioneel
Chrome 129+De headers die een hypothetische respons zou bevatten als het verzoek niet wordt geblokkeerd of omgeleid voordat het wordt verzonden. Deze headers worden weergegeven als een object dat een headernaam koppelt aan een lijst met tekenreekswaarden. Indien niet gespecificeerd, zou de hypothetische respons lege responsheaders retourneren, die kunnen overeenkomen met regels die matchen op het ontbreken van headers. Bijvoorbeeld
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} - tabId
nummer optioneel
De ID van het tabblad waarin het hypothetische verzoek plaatsvindt. Deze hoeft niet overeen te komen met een echte tabblad-ID. De standaardwaarde is -1, wat betekent dat het verzoek niet aan een tabblad is gekoppeld.
- topUrl
string optioneel
In behandelingDe bijbehorende URL van het frame op het hoogste niveau (indien aanwezig) voor het verzoek.
- type
Het type bron van het hypothetische verzoek.
- URL
snaar
De URL van het hypothetische verzoek.
UnsupportedRegexReason
Beschrijft de reden waarom een bepaalde reguliere expressie niet wordt ondersteund.
Enum
"syntaxfout" "memoryLimitExceeded"
De reguliere expressie is syntactisch onjuist of maakt gebruik van functies die niet beschikbaar zijn in de RE2-syntaxis .
De reguliere expressie overschrijdt de geheugenlimiet.
UpdateRuleOptions
Eigenschappen
- addRules
Regel [] optioneel
Regels om toe te voegen.
- removeRuleIds
nummer[] optioneel
ID's van de te verwijderen regels. Ongeldige ID's worden genegeerd.
UpdateRulesetOptions
Eigenschappen
UpdateStaticRulesOptions
Eigenschappen
- disableRuleIds
nummer[] optioneel
Een reeks ID's die overeenkomen met de regels in de
Rulesetdie moeten worden uitgeschakeld. - enableRuleIds
nummer[] optioneel
Een reeks ID's die overeenkomen met de regels in de
Rulesetdie moeten worden ingeschakeld. - regelssetId
snaar
De ID die overeenkomt met een statische
Ruleset.
URLTransform
Eigenschappen
- fragment
string optioneel
Het nieuwe fragment voor het verzoek. Dit moet leeg zijn, in welk geval het bestaande fragment wordt gewist, of het moet beginnen met '#'.
- gastheer
string optioneel
De nieuwe host voor het verzoek.
- wachtwoord
string optioneel
Het nieuwe wachtwoord voor het verzoek.
- pad
string optioneel
Het nieuwe pad voor het verzoek. Indien leeg, wordt het bestaande pad gewist.
- haven
string optioneel
De nieuwe poort voor het verzoek. Indien leeg, wordt de bestaande poort vrijgegeven.
- vraag
string optioneel
De nieuwe query voor het verzoek. Deze moet leeg zijn, in welk geval de bestaande query wordt gewist, of moet beginnen met een '?'.
- queryTransform
QueryTransform optioneel
Query-sleutel-waardeparen toevoegen, verwijderen of vervangen.
- schema
string optioneel
Het nieuwe schema voor het verzoek. Toegestane waarden zijn "http", "https", "ftp" en "chrome-extension".
- gebruikersnaam
string optioneel
De nieuwe gebruikersnaam voor het verzoek.
Eigenschappen
DYNAMIC_RULESET_ID
De ID van de regelset voor de dynamische regels die door de extensie zijn toegevoegd.
Waarde
"_dynamisch"
GETMATCHEDRULES_QUOTA_INTERVAL
Het tijdsinterval waarbinnen MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules -aanroepen kunnen worden gedaan, gespecificeerd in minuten. Extra aanroepen zullen onmiddellijk mislukken en runtime.lastError instellen. Opmerking: getMatchedRules aanroepen die zijn gekoppeld aan een gebruikersgebaar zijn uitgezonderd van het quotum.
Waarde
10
GUARANTEED_MINIMUM_STATIC_RULES
Het minimum aantal statische regels dat gegarandeerd is voor een extensie, voor alle ingeschakelde statische regelsets. Alle regels boven deze limiet tellen mee voor de globale limiet voor statische regels .
Waarde
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Het aantal keren dat getMatchedRules kan worden aangeroepen binnen een periode van GETMATCHEDRULES_QUOTA_INTERVAL .
Waarde
20
MAX_NUMBER_OF_DYNAMIC_RULES
Het maximale aantal dynamische regels dat een extensie kan toevoegen.
Waarde
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Het maximale aantal statische Rulesets dat een extensie tegelijkertijd kan inschakelen.
Waarde
50
MAX_NUMBER_OF_REGEX_RULES
Het maximale aantal reguliere expressieregels dat een extensie kan toevoegen. Deze limiet wordt afzonderlijk berekend voor de set dynamische regels en de regels die zijn gespecificeerd in het regelresourcebestand.
Waarde
1000
MAX_NUMBER_OF_SESSION_RULES
Het maximale aantal sessiegebonden regels dat een extensie kan toevoegen.
Waarde
5000
MAX_NUMBER_OF_STATIC_RULESETS
Het maximale aantal statische Rulesets dat een extensie kan specificeren als onderdeel van de manifestsleutel "rule_resources" .
Waarde
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Het maximale aantal "onveilige" dynamische regels dat een extensie kan toevoegen.
Waarde
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Het maximale aantal "onveilige" sessiespecifieke regels dat een extensie kan toevoegen.
Waarde
5000
SESSION_RULESET_ID
De ID van de regelset voor de sessiespecifieke regels die door de extensie zijn toegevoegd.
Waarde
"_sessie"
Methoden
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Geeft het aantal statische regels terug dat een extensie kan inschakelen voordat de globale limiet voor statische regels is bereikt.
Parameters
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(count: number) => void
- graaf
nummer
Retourneert
Belofte<nummer>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Geeft een lijst weer van de statische regels in de opgegeven Ruleset die momenteel zijn uitgeschakeld.
Parameters
- opties
Specificeert de regelset die moet worden opgevraagd.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(disabledRuleIds: number[]) => void
- uitgeschakelde regel-ID's
nummer[]
Retourneert
Promise<nummer[]>
Een belofte die wordt opgelost met een lijst van ID's die overeenkomen met de uitgeschakelde regels in die regelset.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Retourneert de huidige set dynamische regels voor de extensie. Gebruikers kunnen de lijst met opgehaalde regels optioneel filteren door een filter op te geven.
Parameters
- filter
GetRulesFilter optioneel
Chrome 111+Een object om de lijst met opgehaalde regels te filteren.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retourneert
Promise< Regel []>
Chrome 91+Een belofte die wordt opgelost volgens een set dynamische regels. De belofte kan worden afgewezen in geval van tijdelijke interne fouten.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Geeft de ID's terug van de huidige set ingeschakelde statische regelsets.
Parameters
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(rulesetIds: string[]) => void
- regels-ID's
snaar[]
Retourneert
Promise<string[]>
Chrome 91+Een belofte die wordt opgelost met een lijst van ID's, waarbij elke ID overeenkomt met een ingeschakelde statische
Ruleset.Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Retourneert alle regels die overeenkomen met de extensie. Gebruikers kunnen de lijst met overeenkomende regels optioneel filteren door een filter op te geven. Deze methode is alleen beschikbaar voor extensies met de machtiging "declarativeNetRequestFeedback" of met de machtiging "activeTab" voor de tabId die is opgegeven in filter . Opmerking: Regels die niet zijn gekoppeld aan een actief document en die meer dan vijf minuten geleden zijn gevonden, worden niet geretourneerd.
Parameters
- filter
MatchedRulesFilter optioneel
Een object om de lijst met overeenkomende regels te filteren.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(details: RulesMatchedDetails) => void
- details
Retourneert
Promise< RulesMatchedDetails >
Chrome 91+Een Promise die wordt opgelost zodra de lijst met overeenkomende regels is opgehaald. In geval van een fout wordt de Promise afgewezen. Dit kan verschillende oorzaken hebben, zoals onvoldoende rechten of het overschrijden van het quotum.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Retourneert de huidige set sessiespecifieke regels voor de extensie. Gebruikers kunnen de lijst met opgehaalde regels optioneel filteren door een filter op te geven.
Parameters
- filter
GetRulesFilter optioneel
Chrome 111+Een object om de lijst met opgehaalde regels te filteren.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retourneert
Promise< Regel []>
Chrome 91+Een belofte die wordt ingelost met de set sessiespecifieke regels.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Controleert of de opgegeven reguliere expressie wordt ondersteund als voorwaarde voor een regexFilter -regel.
Parameters
- regexOptions
De reguliere expressie die gecontroleerd moet worden.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result: IsRegexSupportedResult) => void
- resultaat
Retourneert
Promise< IsRegexSupportedResult >
Chrome 91+Een belofte die wordt opgelost met details die aangeven of de reguliere expressie wordt ondersteund en, indien niet, waarom.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Hiermee kunt u instellen of het aantal acties voor tabbladen moet worden weergegeven als de badge-tekst van de extensieactie en kunt u dit aantal acties verhogen.
Parameters
- opties
- terugbelverzoek
functie optioneel
Chrome 89+De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Controleert of een van de declarativeNetRequest-regels van de extensie overeenkomt met een hypothetisch verzoek. Opmerking: Alleen beschikbaar voor uitgepakte extensies, aangezien dit alleen bedoeld is voor gebruik tijdens de ontwikkeling van extensies.
Parameters
- verzoek
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result: TestMatchOutcomeResult) => void
- resultaat
Retourneert
Promise< TestMatchOutcomeResult >
Een belofte die wordt opgelost met de details van de overeenkomende regels.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Wijzigt de huidige set dynamische regels voor de extensie. De regels met de ID's die worden vermeld in options.removeRuleIds worden eerst verwijderd en vervolgens worden de regels die worden opgegeven in options.addRules toegevoegd. Opmerkingen:
- Deze update vindt plaats als één enkele atomaire bewerking: ofwel worden alle opgegeven regels toegevoegd en verwijderd, ofwel wordt er een foutmelding geretourneerd.
- Deze regels blijven behouden gedurende browsersessies en bij updates van extensies.
- Statische regels die als onderdeel van het uitbreidingspakket zijn gespecificeerd, kunnen niet met deze functie worden verwijderd.
-
MAX_NUMBER_OF_DYNAMIC_RULESis het maximale aantal dynamische regels dat een extensie kan toevoegen. Het aantal onveilige regels magMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULESniet overschrijden.
Parameters
- optiesChrome 87+
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 91+Een belofte die wordt vervuld zodra de update is voltooid. In geval van een fout wordt de belofte afgewezen en worden er geen wijzigingen in de regelset aangebracht. Dit kan verschillende oorzaken hebben, zoals een ongeldig regelformaat, een dubbele regel-ID, overschrijding van de limiet voor het aantal regels, interne fouten en andere.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Werkt de set ingeschakelde statische regelsets voor de extensie bij. De regelsets met de ID's die worden vermeld in options.disableRulesetIds worden eerst verwijderd en vervolgens worden de regelsets die worden vermeld in options.enableRulesetIds toegevoegd. Houd er rekening mee dat de set ingeschakelde statische regelsets behouden blijft tussen sessies, maar niet tussen extensie-updates. De manifestsleutel rule_resources bepaalt dus de set ingeschakelde statische regelsets bij elke extensie-update.
Parameters
- optiesChrome 87+
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 91+Een belofte die wordt vervuld zodra de update is voltooid. In geval van een fout wordt de belofte afgewezen en worden er geen wijzigingen aangebracht in de set ingeschakelde regels. Dit kan verschillende oorzaken hebben, zoals ongeldige regelset-ID's, overschrijding van de limiet voor het aantal regels of interne fouten.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Wijzigt de huidige set sessiespecifieke regels voor de extensie. De regels met de ID's die worden vermeld in options.removeRuleIds worden eerst verwijderd en vervolgens worden de regels die worden opgegeven in options.addRules toegevoegd. Opmerkingen:
- Deze update vindt plaats als één enkele atomaire bewerking: ofwel worden alle opgegeven regels toegevoegd en verwijderd, ofwel wordt er een foutmelding geretourneerd.
- Deze regels worden niet bewaard tussen sessies en worden in het geheugen opgeslagen.
-
MAX_NUMBER_OF_SESSION_RULESis het maximale aantal sessieregels dat een extensie kan toevoegen.
Parameters
- opties
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 91+Een belofte die wordt vervuld zodra de update is voltooid. In geval van een fout wordt de belofte afgewezen en worden er geen wijzigingen in de regelset aangebracht. Dit kan verschillende oorzaken hebben, zoals een ongeldig regelformaat, een dubbele regel-ID, het overschrijden van de limiet voor het aantal regels, enzovoort.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Hiermee kunt u individuele statische regels in een Ruleset uitschakelen en inschakelen. Wijzigingen in regels die behoren tot een uitgeschakelde Ruleset worden van kracht zodra deze weer wordt ingeschakeld.
Parameters
- opties
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Een belofte die wordt vervuld zodra de update is voltooid. In geval van een fout wordt de belofte afgewezen en worden de ingeschakelde statische regels niet gewijzigd.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
Evenementen
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Wordt geactiveerd wanneer een regel overeenkomt met een verzoek. Alleen beschikbaar voor uitgepakte extensies met de machtiging "declarativeNetRequestFeedback" aangezien dit uitsluitend bedoeld is voor debugdoeleinden.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(info: MatchedRuleInfoDebug) => void
- informatie