Beschrijving
De chrome.declarativeNetRequest
API wordt gebruikt om netwerkverzoeken te blokkeren of te wijzigen door declaratieve regels te specificeren. Hierdoor kunnen extensies netwerkverzoeken wijzigen zonder deze te onderscheppen en de inhoud ervan te bekijken, wat zorgt voor meer privacy.
Machtigingen
declarativeNetRequest
declarativeNetRequestWithHostAccess
declarativeNetRequestFeedback
host_permissions
Beschikbaarheid
Manifest
Naast de hierboven beschreven rechten vereisen bepaalde typen regelsets, met name statische regelsets, het declareren van de manifestsleutel "declarative_net_request"
. Dit moet een woordenboek zijn met één sleutel genaamd "rule_resources"
. Deze sleutel is een array met woordenboeken van het type Ruleset
, zoals hieronder weergegeven. (Merk op dat de naam 'Ruleset' niet voorkomt in de JSON van het manifest, 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/*"
],
...
}
Begrippen en gebruik
Om deze API te gebruiken, specificeert u een of meer regelsets. Een regelset bevat een reeks regels. Eén regel doet een van de volgende dingen:
- Blokkeer een netwerkaanvraag.
- Werk het schema bij (http naar https).
- Voorkom dat een verzoek wordt geblokkeerd door alle overeenkomende geblokkeerde regels te negeren.
- Een netwerkaanvraag omleiden.
- Wijzig de aanvraag- of antwoordheaders.
Er zijn drie soorten regels, die op iets verschillende manieren worden beheerd.
- Dynamisch
- Blijven behouden tijdens browsersessies en extensie-upgrades en worden beheerd met behulp van JavaScript terwijl een extensie in gebruik is.
- Sessie
- Wordt gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd. Sessieregels worden beheerd met JavaScript terwijl een extensie in gebruik is.
- Statisch
- Verpakt, geïnstalleerd en bijgewerkt wanneer een extensie wordt geïnstalleerd of geüpgraded. Statische regels worden opgeslagen in JSON-geformatteerde regelbestanden en vermeld in het manifestbestand.
In de volgende paragrafen worden de verschillende soorten regels gedetailleerd uitgelegd.
Dynamische en sessiegerichte regelsets
Dynamische en sessieregels worden beheerd met behulp van JavaScript terwijl een extensie in gebruik is.
- Dynamische regels blijven behouden tijdens browsersessies en extensie-upgrades.
- Sessieregels worden gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd.
Er is slechts één type regelset. Een extensie kan dynamisch regels toevoegen of verwijderen door updateDynamicRules()
en updateSessionRules()
aan te roepen, mits de regellimieten niet worden overschreden. Zie Regellimieten voor informatie over regellimieten . Een voorbeeld hiervan vindt u 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 met behulp van de sleutels "declarative_net_request"
en "rule_resources"
, zoals hierboven beschreven , evenals een of meer Ruleset
. Een Ruleset
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 uitgepakt . Fouten 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 afzonderlijke statische regels als volledige statische regelsets kunnen tijdens runtime worden in- of uitgeschakeld.
De set ingeschakelde statische regels en regelsets blijft behouden tijdens browsersessies. Beide worden niet behouden tijdens extensie-updates. Dit betekent dat alleen de regels die u in uw regelbestanden hebt laten staan, beschikbaar zijn na een update.
Om prestatieredenen gelden er ook limieten voor het aantal regels en regelsets dat tegelijkertijd kan worden ingeschakeld. Roep getAvailableStaticRuleCount()
aan om het aantal extra regels dat kan worden ingeschakeld te controleren. Zie Regellimieten voor informatie over regellimieten .
Om statische regels in of uit te schakelen, roept u updateStaticRules()
aan. Deze methode gebruikt een UpdateStaticRulesOptions
object, dat arrays met ID's bevat van regels die u wilt in- of uitschakelen. De ID's worden gedefinieerd met de sleutel "id"
van het Ruleset
-woordenboek.
Om statische regelsets in of uit te schakelen, roept u updateEnabledRulesets()
aan. Deze methode gebruikt een UpdateRulesetOptions
object, dat arrays met ID's van regelsets bevat om in of uit te schakelen. De ID's worden gedefinieerd met de sleutel "id"
van het Ruleset
-woordenboek.
Bouwregels
Ongeacht het type begint een regel met vier velden, zoals hieronder weergegeven. Terwijl de sleutels "id"
en "priority"
een nummer hebben, kunnen de sleutels "action"
en "condition"
verschillende blokkerings- en omleidingsvoorwaarden bevatten. De volgende regel blokkeert alle scriptverzoeken van "foo.com"
naar elke URL met "abc"
als substring.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter overeenkomende tekens
De "condition"
-sleutel van een regel maakt een "urlFilter"
-sleutel mogelijk voor URL's onder een bepaald domein. U maakt patronen met behulp van patroonmatching-tokens . Hieronder vindt u enkele voorbeelden.
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://voorbeeld.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 aan een bepaald verzoek voldoen, moeten de regels een prioriteit krijgen. In deze sectie wordt uitgelegd hoe ze worden geprioriteerd. Prioritering vindt plaats in twee fasen.
- 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 aan een bepaald verzoek voldoen.
Als u het op deze manier bekijkt, geldt: welke regel een bepaalde extensie prioriteit geeft, krijgt dan voorrang ten opzichte van regels van andere extensies.
Prioritering van regels binnen een extensie
Binnen een enkele extensie wordt de prioritering bepaald met behulp van het volgende proces:
- De regel met de hoogste door de ontwikkelaar gedefinieerde prioriteit (met andere woorden, het veld
"priority"
) wordt geretourneerd. Als er meer dan één regel is met de hoogste door de ontwikkelaar gedefinieerde prioriteit, wordt de prioriteit van de regels bepaald aan de hand van het veld
"action"
, in de volgende volgorde:-
allow
-
allowAllRequests
-
block
-
upgradeScheme
-
redirect
-
Als het actietype niet
block
ofredirect
is, worden alle overeenkomende regels voormodifyHeaders
geëvalueerd. Houd er rekening mee dat regels met een door de ontwikkelaar gedefinieerde prioriteit die lager is dan de prioriteit die is opgegeven voorallow
' enallowAllRequests
, worden genegeerd.Als meerdere regels dezelfde header wijzigen, wordt de wijziging bepaald door het door de ontwikkelaar gedefinieerde veld
"priority"
en door de opgegeven bewerkingen.- Als een regel aan een header wordt toegevoegd, kunnen regels met een lagere prioriteit alleen aan die header worden toegevoegd. Instellen en verwijderen zijn niet toegestaan.
- Als een regel een header instelt, kunnen regels met een lagere prioriteit alleen aan die header worden toegevoegd. Andere wijzigingen zijn niet toegestaan.
- Als een regel een header verwijdert, kunnen regels met een lagere prioriteit de header niet verder wijzigen.
Regelprioritering 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 het volgende proces gebruikt:
Regels worden geprioriteerd met behulp van het veld
"action"
, in de volgende volgorde:-
block
-
redirect
ofupgradeScheme
- toestaan
allowAllRequests
allow
-
Als er meer dan één regel overeenkomt, krijgt de meest recent geïnstalleerde extensie voorrang.
Regellimieten
Het laden en evalueren van regels in de browser brengt prestatieoverhead met zich mee, dus er gelden enkele beperkingen 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 in het manifestbestand zijn gedeclareerd. Een extensie kan maximaal 50 statische regelsets specificeren als onderdeel van de manifestsleutel "rule_resources"
, maar er kunnen slechts 10 van deze regelsets tegelijk worden ingeschakeld. Deze laatste wordt de MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
genoemd. Gezamenlijk garanderen deze regelsets minimaal 30.000 regels. Dit wordt de GUARANTEED_MINIMUM_STATIC_RULES
genoemd.
Het aantal regels dat daarna beschikbaar is, hangt af van hoeveel regels er zijn ingeschakeld door alle extensies die in de browser van een gebruiker zijn geïnstalleerd. U kunt dit aantal tijdens runtime vinden door getAvailableStaticRuleCount()
aan te roepen. Een voorbeeld hiervan vindt u onder 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 het MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
genoemd.
Regels die regex gebruiken
Alle typen regels kunnen reguliere expressies gebruiken; het totale aantal regex-regels van elk type mag echter niet groter zijn dan 1000. Dit wordt MAX_NUMBER_OF_REGEX_RULES genoemd.
Bovendien moet elke regel na compilatie kleiner zijn dan 2 KB. Dit komt ongeveer overeen met de complexiteit van de regel. Als u een regel probeert te laden die deze limiet overschrijdt, ziet u een waarschuwing zoals hieronder 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 dienstverleners
Een declarativeNetRequest is alleen van toepassing op verzoeken die de netwerkstack bereiken. Dit omvat reacties van de HTTP-cache, maar mogelijk niet op reacties die de onfetch
handler van een service worker passeren. DeclarativeNetRequest heeft geen invloed op reacties die door de service worker worden gegenereerd of uit CacheStorage
worden opgehaald, maar wel op aanroepen van fetch()
in een service worker.
Webtoegankelijke bronnen
Een declarativeNetRequest-regel kan niet omleiden van een openbare resourceaanvraag naar een resource die niet webtoegankelijk is. Dit veroorzaakt een fout. Dit geldt zelfs als de opgegeven webtoegankelijke resource eigendom is van de omleidende extensie. Gebruik de array "web_accessible_resources"
in het manifest om resources voor declarativeNetRequest te declareren.
Voorbeelden
Codevoorbeelden
Dynamische regels bijwerken
Het volgende voorbeeld laat zien hoe u 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 regels bijwerken
Het volgende voorbeeld laat zien hoe u regelsets kunt in- en uitschakelen, rekening houdend met het aantal beschikbare en het maximale aantal ingeschakelde statische regelsets. U doet dit wanneer het aantal benodigde statische regels het toegestane aantal overschrijdt. Om dit te laten werken, moeten sommige van uw regelsets worden geïnstalleerd met enkele van uw regelsets uitgeschakeld (door "Enabled"
in het manifestbestand op false
te zetten).
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 regels in een extensie prioriteert. Wanneer u ze bekijkt, kunt u de prioriteringsregels het beste in een apart venster openen.
De sleutel "prioriteit"
Voor deze voorbeelden is hosttoestemming voor *://*.example.com/*
vereist.
Om de prioriteit van een bepaalde URL te bepalen, bekijkt u 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 gelden voor deze URL: de regels met ID 1 en 4. Regel met ID 1 is van toepassing omdat
"block"
acties een hogere prioriteit hebben dan"redirect"
acties. De overige regels zijn niet van toepassing omdat ze voor langere URL's gelden. - Navigatie naar https://google.com/1234
- Vanwege de langere URL komt de regel met ID 2 nu ook overeen met de regels met ID's 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 de 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
Voor het onderstaande voorbeeld is hosttoestemming nodig voor *://*.example.com/*
.
Het volgende voorbeeld laat zien hoe u 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 uw extensie is. Om dit te laten werken, moet het manifest /a.jpg
declareren als een webtoegankelijke bron .
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Het volgende 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"
specificeert dat doorverwijzingen naar het subdomein altijd "https" gebruiken.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
In het volgende voorbeeld worden reguliere expressies gebruikt om om te leiden van https://www.abc.xyz.com/path
naar https://abc.xyz.com/path
. Let op hoe punten in de sleutel "regexFilter"
worden weggelaten en dat de vastleggende groep "abc" of "def" selecteert. De sleutel "regexSubstitution"
specificeert de eerste geretourneerde match van de reguliere expressie met behulp van "\1". In dit geval wordt "abc" uit de omgeleide URL vastgelegd en in de substitutie 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
In het volgende voorbeeld worden alle cookies uit zowel het hoofdframe als alle subframes verwijderd.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Typen
DomainType
Dit beschrijft of het verzoek een eerste of derde partij is in het frame waarin het is ontstaan. Een verzoek wordt een eerste partij genoemd als het hetzelfde domein (eTLD+1) heeft als het frame waarin het verzoek is ontstaan.
Enum
"eerstePartij" "derde partij"
Het netwerkverzoek is de eerste partij in het frame waaruit het afkomstig is.
Het netwerkverzoek is een derde partij ten opzichte van het frame waaruit het afkomstig is.
ExtensionActionOptions
Eigenschappen
- weergaveActieAantalAlsBadgeTekst
boolean optioneel
Of het aantal acties voor een pagina automatisch moet worden weergegeven als badgetekst van de extensie. Deze voorkeur blijft behouden voor alle sessies.
- tabbladUpdate
TabActionCountUpdate optioneel
Chroom 89+Details over hoe het aantal acties op het tabblad moet worden aangepast.
GetDisabledRuleIdsOptions
Eigenschappen
- regelset-ID
snaar
De id die overeenkomt met een statische
Ruleset
.
GetRulesFilter
Eigenschappen
- regel-ID's
nummer[] optioneel
Als dit is opgegeven, worden alleen regels met overeenkomende ID's opgenomen.
HeaderInfo
Eigenschappen
- uitgeslotenwaarden
string[] optioneel
Indien opgegeven, wordt aan deze voorwaarde niet voldaan als de header bestaat, maar de waarde ervan ten minste één element in deze lijst bevat. Hierbij wordt dezelfde matchpatroonsyntaxis gebruikt als
values
. - koptekst
snaar
De naam van de header. Deze voorwaarde komt alleen overeen met de naam als zowel
values
alsexcludedValues
niet zijn opgegeven. - waarden
string[] optioneel
Indien opgegeven, komt deze voorwaarde overeen als de waarde van de header overeenkomt met ten minste één patroon in deze lijst. Dit ondersteunt hoofdletterongevoelige matching van headerwaarden en de volgende constructies:
'*' : Komt overeen met een willekeurig aantal tekens.
'?' : Komt overeen met nul of één teken.
'*' en '?' kunnen worden geëscapete met een backslash, bijvoorbeeld '\*' en '\?'
HeaderOperation
Hierin worden de mogelijke bewerkingen voor een 'modifyHeaders'-regel beschreven.
Enum
"toevoegen" "set" "verwijderen"
Voegt een nieuwe invoer toe voor de opgegeven header. Deze bewerking wordt niet ondersteund voor aanvraagheaders.
Stelt een nieuwe waarde in voor de opgegeven header en verwijdert alle bestaande headers met dezelfde naam.
Verwijdert alle vermeldingen voor de opgegeven header.
IsRegexSupportedResult
Eigenschappen
- wordt ondersteund
Booleaanse
- reden
UnsupportedRegexReason optioneel
Geeft de reden aan waarom de reguliere expressie niet wordt ondersteund. Alleen beschikbaar als
isSupported
de waarde false heeft.
MatchedRule
Eigenschappen
- regel-ID
nummer
De ID van een overeenkomende regel.
- regelset-ID
snaar
ID van de
Ruleset
waartoe deze regel behoort. Voor een regel die afkomstig is uit de set dynamische regels, is dit gelijk aanDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Eigenschappen
- regel
- tabbladId
nummer
De tabID van het tabblad waarvan de aanvraag afkomstig is, als het tabblad nog actief is. Anders -1.
- tijdstempel
nummer
Het tijdstip waarop de regel werd toegepast. Tijdstempels komen overeen met de Javascript-conventie voor tijden, d.w.z. het aantal milliseconden sinds het tijdperk.
MatchedRuleInfoDebug
Eigenschappen
- verzoek
Details over het verzoek waaraan de regel voldeed.
- regel
MatchedRulesFilter
Eigenschappen
- minTijdstempel
nummer optioneel
Als dit is opgegeven, worden alleen regels gevonden na het opgegeven tijdstempel.
- tabbladId
nummer optioneel
Indien opgegeven, komt deze alleen overeen met regels voor het opgegeven tabblad. Indien ingesteld op -1, komt deze overeen met regels die niet aan een actief tabblad zijn gekoppeld.
ModifyHeaderInfo
Eigenschappen
- koptekst
snaar
De naam van de header die moet worden gewijzigd.
- operatie
De bewerking die op een header moet worden uitgevoerd.
- waarde
string optioneel
De nieuwe waarde voor de header. Moet worden opgegeven voor
append
enset
.
QueryKeyValue
Eigenschappen
- sleutel
snaar
- Alleenvervangen
boolean optioneel
Chroom 94+Indien true, wordt de querysleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. Standaardwaarde is false.
- waarde
snaar
QueryTransform
Eigenschappen
- addOrReplaceParams
QueryKeyValue [] optioneel
De lijst met sleutel-waardeparen die moeten worden toegevoegd of vervangen.
- verwijderParams
string[] optioneel
De lijst met querysleutels die moeten worden verwijderd.
Redirect
Eigenschappen
- extensiePad
string optioneel
Pad relatief ten opzichte van de extensiedirectory. Moet beginnen met '/'.
- regexSubstitutie
string optioneel
Substitutiepatroon voor regels die een
regexFilter
specificeren. De eerste match metregexFilter
in de URL wordt vervangen door dit patroon. BinnenregexSubstitution
kunnen backslash-escaped cijfers (\1 tot en met \9) worden gebruikt om de corresponderende capture-groepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst. - transformeren
URLTransform optioneel
Uit te voeren URL-transformaties.
- url
string optioneel
De omleidings-URL. Omleidingen naar JavaScript-URL's zijn niet toegestaan.
RegexOptions
Eigenschappen
- isCaseSensitive
boolean optioneel
Of de opgegeven
regex
hoofdlettergevoelig is. Standaard is dit true. - reguliere expressie
snaar
De reguliere expressie om te controleren.
- vereisenCapturing
boolean optioneel
Of de opgegeven
regex
vastlegging vereist. Vastlegging is alleen vereist voor omleidingsregels die eenregexSubstition
-actie specificeren. De standaardwaarde is false.
RequestDetails
Eigenschappen
- document-ID
string optioneel
Chroom 106+De unieke identificatie voor het document van het frame, als deze aanvraag voor een frame is.
- documentlevenscyclus
DocumentLifecycle optioneel
Chroom 106+De levenscyclus van het document van het frame, als deze aanvraag voor een frame is.
- frame-ID
nummer
De waarde 0 geeft aan dat de aanvraag in het hoofdframe plaatsvindt; een positieve waarde geeft de ID aan van een subframe waarin de aanvraag plaatsvindt. Als het document van een (sub-)frame wordt geladen (
type
ismain_frame
ofsub_frame
), geeftframeId
de ID van dit frame aan, niet de ID van het buitenste frame. Frame-ID's zijn uniek binnen een tabblad. - frameType
FrameType optioneel
Chroom 106+Het type frame, als dit verzoek om een frame gaat.
- initiatiefnemer
string optioneel
De oorsprong waar de aanvraag is gestart. Deze verandert niet door middel van redirects. Als dit een ondoorzichtige oorsprong is, wordt de string 'null' gebruikt.
- methode
snaar
Standaard HTTP-methode.
- ouderDocumentId
string optioneel
Chroom 106+De unieke identificatie voor het bovenliggende document van het frame, als deze aanvraag voor een frame is en een bovenliggend document heeft.
- ouderFrameId
nummer
ID van het frame dat het frame omsluit dat de aanvraag heeft verzonden. Stel in op -1 als er geen bovenliggend frame bestaat.
- aanvraag-ID
snaar
De ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie.
- tabbladId
nummer
De ID van het tabblad waarop de aanvraag plaatsvindt. Stel in op -1 als de aanvraag niet aan een tabblad is gerelateerd.
- type
Het resourcetype van de aanvraag.
- url
snaar
De URL van het verzoek.
RequestMethod
Dit beschrijft de HTTP-aanvraagmethode van een netwerkaanvraag.
Enum
"verbinden" "verwijderen" "krijgen" "hoofd" "opties" "lapje" "na" "neerzetten" "ander"
ResourceType
Hiermee wordt het resourcetype van de netwerkaanvraag beschreven.
Enum
"hoofdframe" "sub_frame" "stijlblad" "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 wordt geactiveerd.
- id
nummer
Een id die een regel eenduidig identificeert. Verplicht en moet >= 1 zijn.
- prioriteit
nummer optioneel
Regelprioriteit. Standaardwaarde is 1. Indien opgegeven, moet dit >= 1 zijn.
RuleAction
Eigenschappen
- omleiden
Omleiden optioneel
Beschrijft hoe de omleiding moet worden uitgevoerd. Alleen geldig voor omleidingsregels.
- aanvraagheaders
ModifyHeaderInfo [] optioneel
Chroom 86+De aanvraagheaders die voor de aanvraag moeten worden gewijzigd. Alleen geldig als RuleActionType "modifyHeaders" is.
- reactieHeaders
ModifyHeaderInfo [] optioneel
Chroom 86+De responsheaders die voor de aanvraag moeten worden gewijzigd. Alleen geldig als RuleActionType "modifyHeaders" is.
- type
Het type actie dat moet worden uitgevoerd.
RuleActionType
Beschrijft het type actie dat moet worden ondernomen als een bepaalde RuleCondition overeenkomt.
Enum
"blok" "omleiden" "toestaan" "upgradeSchema" "modifyHeaders" "AlleAanvragen Toestaan"
Blokkeer het netwerkverzoek.
Stuur het netwerkverzoek om.
Sta het netwerkverzoek toe. Het verzoek wordt niet onderschept als er een toestemmingsregel is die hieraan voldoet.
Werk het schema van de netwerkaanvraag-URL bij naar https als de aanvraag http of ftp is.
Wijzig de aanvraag-/antwoordheaders van het netwerkverzoek.
Sta alle verzoeken binnen een framehiërarchie toe, inclusief het frameverzoek zelf.
RuleCondition
Eigenschappen
- domeinType
DomainType optioneel
Geeft aan of het netwerkverzoek een first-party of third-party-verzoek is voor het domein waarvan het afkomstig is. Als u dit weglaat, worden alle verzoeken geaccepteerd.
- domeinen
string[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
initiatorDomains
De regel komt alleen overeen met netwerkverzoeken die afkomstig zijn uit de lijst met
domains
. - uitgesloten domeinen
string[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
excludedInitiatorDomains
De regel komt niet overeen met netwerkverzoeken die afkomstig zijn uit de lijst met
excludedDomains
. - uitgeslotenInitiatorDomeinen
string[] optioneel
Chroom 101+De regel komt niet overeen met netwerkverzoeken die afkomstig zijn van de lijst met
excludedInitiatorDomains
. Als de lijst leeg is of ontbreekt, worden geen domeinen uitgesloten. Dit heeft voorrang opinitiatorDomains
.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De gegevens mogen alleen uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de initiator van de aanvraag en niet met de URL van de aanvraag.
- Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
- uitgeslotenRequestDomains
string[] optioneel
Chroom 101+De regel komt niet overeen met netwerkverzoeken wanneer het domein overeenkomt met een domein uit de lijst met
excludedRequestDomains
. Als de lijst leeg is of ontbreekt, worden geen domeinen uitgesloten. Dit heeft voorrang oprequestDomains
.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De gegevens mogen alleen uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
- uitgeslotenAanvraagMethoden
RequestMethod [] optioneel
Chroom 91+Lijst met aanvraagmethoden waaraan de regel niet voldoet. Slechts één van de twee
requestMethods
ofexcludedRequestMethods
mag worden opgegeven. Als geen van beide is opgegeven, komen alle aanvraagmethoden overeen. - uitgeslotenResourceTypes
ResourceType [] optioneel
Lijst met resourcetypen die niet overeenkomen met de regel. Slechts één van
resourceTypes
enexcludedResourceTypes
mag worden opgegeven. Als geen van beide wordt opgegeven, worden alle resourcetypen behalve "main_frame" geblokkeerd. - uitgeslotenResponseHeaders
HeaderInfo [] optioneel
Chroom 128+De regel komt niet overeen als de aanvraag overeenkomt met een van de voorwaarden in de responsheader in deze lijst (indien opgegeven). Als zowel
excludedResponseHeaders
alsresponseHeaders
zijn opgegeven, heeft de eigenschapexcludedResponseHeaders
voorrang. - uitgeslotenTabIds
nummer[] optioneel
Chroom 92+Lijst met
tabs.Tab.id
waaraan de regel niet mag voldoen. Een ID vantabs.TAB_ID_NONE
sluit verzoeken uit die niet afkomstig zijn van een tabblad. Alleen ondersteund voor sessiegerichte regels. - initiatordomeinen
string[] optioneel
Chroom 101+De regel komt alleen overeen met netwerkverzoeken die afkomstig zijn uit de lijst met
initiatorDomains
. Als de lijst wordt weggelaten, wordt de regel toegepast op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De gegevens mogen alleen uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de initiator van de aanvraag en niet met de URL van de aanvraag.
- Subdomeinen van de vermelde domeinen worden ook gekoppeld.
- isUrlFilterCaseSensitive
boolean optioneel
Of het
urlFilter
ofregexFilter
(afhankelijk van welke is opgegeven) hoofdlettergevoelig is. Standaard is dit false. - regexFilter
string optioneel
Reguliere expressie die overeenkomt met de netwerkaanvraag-URL. Dit volgt de RE2-syntaxis .
Let op: Er kan slechts één van
urlFilter
ofregexFilter
worden opgegeven.Let op: Het
regexFilter
mag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn gecodeerd in UTF-8. - aanvraagdomeinen
string[] optioneel
Chroom 101+De regel komt alleen overeen met netwerkverzoeken als het domein overeenkomt met een domein uit de lijst met
requestDomains
. Als de lijst wordt weggelaten, wordt de regel toegepast op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals "a.example.com" zijn ook toegestaan.
- De gegevens mogen alleen uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook gekoppeld.
- aanvraagmethoden
RequestMethod [] optioneel
Chroom 91+Lijst met HTTP-aanvraagmethoden waaraan de regel kan voldoen. Een lege lijst is niet toegestaan.
Let op: Als u een
requestMethods
-regelvoorwaarde opgeeft, worden ook niet-HTTP(s)-aanvragen uitgesloten. Als uexcludedRequestMethods
opgeeft, gebeurt dit niet. - resourceTypes
ResourceType [] optioneel
Lijst met resourcetypen waarop de regel van toepassing is. Een lege lijst is niet toegestaan.
Let op: dit moet worden opgegeven voor
allowAllRequests
-regels en mag alleen de resourcetypensub_frame
enmain_frame
bevatten. - reactieHeaders
HeaderInfo [] optioneel
Chroom 128+De regel komt overeen als de aanvraag overeenkomt met een van de antwoordheadervoorwaarden in deze lijst (indien opgegeven).
- tabbladen
nummer[] optioneel
Chroom 92+Lijst met
tabs.Tab.id
waaraan de regel moet voldoen. De IDtabs.TAB_ID_NONE
komt overeen met verzoeken die niet afkomstig zijn van een tab. Een lege lijst is niet toegestaan. Alleen ondersteund voor sessiegerichte regels. - urlFilter
string optioneel
Het patroon dat wordt vergeleken met de netwerkaanvraag-URL. Ondersteunde constructies:
'*' : Joker: Komt overeen met een willekeurig aantal tekens.
'|' : Linker-/rechteranker: Als dit aan het begin of einde van het patroon wordt gebruikt, wordt respectievelijk het begin/einde van de url opgegeven.
'||' : Domeinnaamanker: Als dit aan het begin van het patroon wordt gebruikt, 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:
_
,-
.
. of%
. Dit komt ook overeen met het einde van de URL.Daarom bestaat
urlFilter
uit de volgende onderdelen: (optioneel linker-/domeinnaamanker) + patroon + (optioneel rechteranker).Indien weggelaten, worden alle URL's vergeleken. Een lege string is niet toegestaan.
Een patroon dat begint met
||*
is niet toegestaan. Gebruik in plaats daarvan*
.Let op: Er kan slechts één van
urlFilter
ofregexFilter
worden opgegeven.Let op: Het
urlFilter
mag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn gecodeerd in UTF-8. Wanneer de aanvraag-URL bijvoorbeeld http://abc.рф?q=ф is, wordt heturlFilter
vergeleken met de URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Eigenschappen
- ingeschakeld
Booleaanse
Of de regels standaard zijn ingeschakeld.
- id
snaar
Een niet-lege tekenreeks die de regelset op unieke wijze 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
- regelsMatchedInfo
Regels die voldoen aan het opgegeven filter.
TabActionCountUpdate
Eigenschappen
- toename
nummer
Het bedrag waarmee het aantal acties van het tabblad moet worden verhoogd. Negatieve waarden verlagen het aantal.
- tabbladId
nummer
Het tabblad waarvoor het aantal acties moet worden bijgewerkt.
TestMatchOutcomeResult
Eigenschappen
- overeenkomende regels
De regels (indien van toepassing) die passen bij het hypothetische verzoek.
TestMatchRequestDetails
Eigenschappen
- initiatiefnemer
string optioneel
De initiator-URL (indien van toepassing) voor het hypothetische verzoek.
- methode
RequestMethod optioneel
Standaard HTTP-methode voor het hypothetische verzoek. Standaard "get" voor HTTP-verzoeken en wordt genegeerd voor niet-HTTP-verzoeken.
- reactieHeaders
object optioneel
Chroom 129+De headers die een hypothetisch antwoord geeft als het verzoek niet wordt geblokkeerd of omgeleid voordat het wordt verzonden. Weergegeven als een object dat een headernaam toewijst aan een lijst met tekenreekswaarden. Indien niet gespecificeerd, retourneert het hypothetische antwoord lege antwoordheaders, die kunnen voldoen aan regels die overeenkomen op basis van het ontbreken van headers. Bijvoorbeeld
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- tabbladId
nummer optioneel
De ID van het tabblad waarop de hypothetische aanvraag plaatsvindt. Deze hoeft niet overeen te komen met een echte tabblad-ID. De standaardwaarde is -1, wat betekent dat de aanvraag niet aan een tabblad is gekoppeld.
- type
Het resourcetype 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
"syntaxisfout" "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
- regels toevoegen
Regel [] optioneel
Regels om toe te voegen.
- verwijderRegelID's
nummer[] optioneel
ID's van de te verwijderen regels. Ongeldige ID's worden genegeerd.
UpdateRulesetOptions
Eigenschappen
UpdateStaticRulesOptions
Eigenschappen
- uitschakelregel-ID's
nummer[] optioneel
Set ID's die overeenkomen met de regels in de
Ruleset
die moeten worden uitgeschakeld. - enableRuleIds
nummer[] optioneel
Set ID's die overeenkomen met regels in de
Ruleset
die moeten worden ingeschakeld. - regelset-ID
snaar
De id die overeenkomt met een statische
Ruleset
.
URLTransform
Eigenschappen
- fragment
string optioneel
Het nieuwe fragment voor de aanvraag. Moet leeg zijn (in dat geval wordt het bestaande fragment gewist), of moet beginnen met '#'.
- gastheer
string optioneel
De nieuwe host voor het verzoek.
- wachtwoord
string optioneel
Het nieuwe wachtwoord voor de aanvraag.
- pad
string optioneel
Het nieuwe pad voor de aanvraag. Indien leeg, wordt het bestaande pad gewist.
- haven
string optioneel
De nieuwe poort voor de aanvraag. Indien leeg, wordt de bestaande poort gewist.
- vraag
string optioneel
De nieuwe query voor de aanvraag. Moet leeg zijn (in dat geval wordt de bestaande query gewist), of moet beginnen met '?'.
- queryTransform
QueryTransform optioneel
Sleutel-waardeparen voor query's toevoegen, verwijderen of vervangen.
- regeling
string optioneel
Het nieuwe schema voor de aanvraag. Toegestane waarden zijn "http", "https", "ftp" en "chrome-extension".
- gebruikersnaam
string optioneel
De nieuwe gebruikersnaam voor het verzoek.
Eigenschappen
DYNAMIC_RULESET_ID
Regel-ID voor de dynamische regels die door de extensie zijn toegevoegd.
Waarde
"_dynamisch"
GETMATCHEDRULES_QUOTA_INTERVAL
Tijdsinterval waarbinnen MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
-aanroepen kunnen worden uitgevoerd, opgegeven in minuten. Extra aanroepen mislukken direct en runtime.lastError
wordt ingesteld. Opmerking: getMatchedRules
-aanroepen die aan een gebruikersgebaar zijn gekoppeld, vallen niet onder het quotum.
Waarde
10
GUARANTEED_MINIMUM_STATIC_RULES
Het minimale aantal statische regels dat gegarandeerd is voor een extensie binnen de 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 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
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 geëvalueerd voor de set dynamische regels en de regels die zijn gespecificeerd in het regelbronnenbestand.
Waarde
1000
MAX_NUMBER_OF_SESSION_RULES
Het maximale aantal sessiegerichte regels dat een extensie kan toevoegen.
Waarde
5000
MAX_NUMBER_OF_STATIC_RULESETS
Het maximale aantal statische Rulesets
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' sessieregels dat een extensie kan toevoegen.
Waarde
5000
SESSION_RULESET_ID
Regel-ID voor de sessiegerichte regels die door de extensie zijn toegevoegd.
Waarde
"_sessie"
Methoden
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Retourneert het aantal statische regels dat een extensie kan inschakelen voordat de globale limiet voor statische regels is bereikt.
Parameters
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(count: number) => void
- graaf
nummer
Retourneren
Belofte<nummer>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Retourneert de lijst met statische regels in de opgegeven Ruleset
die momenteel zijn uitgeschakeld.
Parameters
- opties
Geeft de regelset op die moet worden opgevraagd.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(disabledRuleIds: number[]) => void
- uitgeschakeldeRegelID's
nummer[]
Retourneren
Belofte<nummer[]>
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Retourneert de huidige set dynamische regels voor de extensie. Aanvragers kunnen de lijst met opgehaalde regels optioneel filteren door een filter
op te geven.
Parameters
- filter
GetRulesFilter optioneel
Chroom 111+Een object om de lijst met opgehaalde regels te filteren.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retourneren
Belofte< Regel []>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Retourneert de ID's voor de huidige set ingeschakelde statische regels.
Parameters
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(rulesetIds: string[]) => void
- regelset-ID's
snaar[]
Retourneren
Belofte<string[]>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Retourneert alle regels die overeenkomen met de extensie. Aanvragers 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.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(details: RulesMatchedDetails) => void
- details
Retourneren
Belofte< RulesMatchedDetails >
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Retourneert de huidige set sessiegerichte regels voor de extensie. Aanvragers kunnen de lijst met opgehaalde regels optioneel filteren door een filter
op te geven.
Parameters
- filter
GetRulesFilter optioneel
Chroom 111+Een object om de lijst met opgehaalde regels te filteren.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retourneren
Belofte< Regel []>
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Controleert of de opgegeven reguliere expressie wordt ondersteund als een regexFilter
-regelvoorwaarde.
Parameters
- regexOpties
De reguliere expressie om te controleren.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(result: IsRegexSupportedResult) => void
- resultaat
Retourneren
Belofte< IsRegexSupportedResult >
Chroom 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Configureert als het aantal acties voor tabbladen moet worden weergegeven als de badgetekst van de extensie -actie en biedt een manier om dat actietelling te verhogen.
Parameters
- opties
- terugbellen
functie optioneel
Chrome 89+De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Controleert of een van de DeclarativenTeRequest -regels van de extensie zou overeenkomen met een hypothetisch verzoek. Opmerking: alleen beschikbaar voor uitgepakte extensies, omdat dit alleen bedoeld is om te worden gebruikt tijdens de ontwikkeling van de extensie.
Parameters
- verzoek
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(result: TestMatchOutcomeResult) => void
- resultaat
Retourneren
Belofte <TestMatchoutCommeresult>
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Wijzigt de huidige set dynamische regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds
's worden eerst verwijderd en vervolgens worden de regels in options.addRules
toegevoegd. Aantekeningen:
- Deze update vindt plaats als een enkele atoombewerking: alle opgegeven regels worden toegevoegd en verwijderd, of een fout wordt geretourneerd.
- Deze regels zijn volgehouden tussen browsersessies en over extensie -updates.
- Statische regels die zijn opgegeven als onderdeel van het extensiepakket kunnen niet worden verwijderd met behulp van deze functie.
-
MAX_NUMBER_OF_DYNAMIC_RULES
is het maximale aantal dynamische regels die een extensie kan toevoegen. Het aantal onveilige regels mag niet hoger zijn danMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Parameters
- optiesChrome 87+
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Werkt de set ingeschakelde statische regelsets bij voor de extensie. De regelsets met ID's vermeld in options.disableRulesetIds
's worden eerst verwijderd en vervolgens worden de regelsets vermeld in options.enableRulesetIds
's toegevoegd. Merk op dat de set van ingeschakelde statische regelsets in sessies blijft bestaan, maar niet over extensie -updates, dwz de manifest -sleutel rule_resources
bepaalt de set van ingeschakelde statische regelsets bij elke extensie -update.
Parameters
- optiesChrome 87+
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Wijzigt de huidige set sessiescoped regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds
's worden eerst verwijderd en vervolgens worden de regels in options.addRules
toegevoegd. Aantekeningen:
- Deze update vindt plaats als een enkele atoombewerking: alle opgegeven regels worden toegevoegd en verwijderd, of een fout wordt geretourneerd.
- Deze regels zijn niet volgehouden in sessies en worden in het geheugen ondersteund.
-
MAX_NUMBER_OF_SESSION_RULES
is het maximale aantal sessieregels dat een extensie kan toevoegen.
Parameters
- opties
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chrome 91+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Schakelt en maakt individuele statische regels in een Ruleset
mogelijk. Wijzigingen in regels die tot een uitgeschakelde Ruleset
behoren, worden van kracht de volgende keer dat deze wordt ingeschakeld.
Parameters
- opties
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
Evenementen
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Afgevuurd wanneer een regel wordt gekoppeld aan een verzoek. Alleen beschikbaar voor uitgepakte extensies met de toestemming "declarativeNetRequestFeedback"
omdat dit alleen bedoeld is om te worden gebruikt voor foutopsporingsdoeleinden.
Parameters
- terugbellen
functie
De
callback
ziet er als volgt uit:(info: MatchedRuleInfoDebug) => void
- informatie