Beschrijving
De chrome.declarativeNetRequest
API wordt gebruikt om netwerkverzoeken te blokkeren of te wijzigen door declaratieve regels op te geven. Hierdoor kunnen extensies netwerkverzoeken wijzigen zonder deze te onderscheppen en de inhoud ervan te bekijken, waardoor meer privacy wordt geboden.
Machtigingen
declarativeNetRequest
declarativeNetRequestWithHostAccess
De machtigingen " declarativeNetRequest
" en " declarativeNetRequestWithHostAccess
" bieden dezelfde mogelijkheden. Het verschil tussen beide is wanneer toestemming wordt gevraagd of verleend.
-
"declarativeNetRequest"
- Activeert een toestemmingswaarschuwing tijdens de installatie, maar biedt impliciete toegang tot
allow
,allowAllRequests
enblock
. Gebruik dit indien mogelijk om te voorkomen dat u volledige toegang tot hosts moet aanvragen. -
"declarativeNetRequestFeedback"
- Schakelt foutopsporingsfuncties in voor uitgepakte extensies , met name
getMatchedRules()
enonRuleMatchedDebug
. -
"declarativeNetRequestWithHostAccess"
- Tijdens de installatie wordt er geen toestemmingswaarschuwing weergegeven, maar u moet hostmachtigingen aanvragen voordat u enige actie op een host kunt uitvoeren. Dit is geschikt als u declaratieve netverzoekregels wilt gebruiken in een extensie die al hostmachtigingen heeft zonder aanvullende waarschuwingen te genereren.
Beschikbaarheid
Manifest
Naast de eerder beschreven machtigingen vereisen bepaalde typen regelsets, met name statische regelsets, het declareren van de manifestsleutel "declarative_net_request"
, die een woordenboek moet zijn met een enkele sleutel genaamd "rule_resources"
. Deze sleutel is een array met woordenboeken van het type Ruleset
, zoals hieronder wordt weergegeven. (Merk op dat de naam 'Regelset' niet voorkomt in de JSON van het manifest, aangezien het slechts een array is.) Statische regelsets worden verderop 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/*"
],
...
}
Regels en regelsets
Om deze API te gebruiken, specificeert u een of meer regelsets. Een regelset bevat een reeks regels. Eén enkele regel doet een van de volgende dingen:
- Een netwerkverzoek blokkeren.
- Upgrade het schema (http naar https).
- Voorkom dat een verzoek wordt geblokkeerd door overeenkomende geblokkeerde regels te negeren.
- Een netwerkverzoek omleiden.
- Wijzig de headers van verzoeken of antwoorden.
Er zijn drie soorten regelsets, die op enigszins verschillende manieren worden beheerd.
- Dynamisch
- Blijven bestaan tijdens browsersessies en extensie-upgrades en worden beheerd met 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.
Dynamische en sessiegerichte regelsets
Dynamische regels en sessieregelsets worden beheerd met JavaScript terwijl een extensie in gebruik is.
- Dynamische regels blijven bestaan 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 van deze typen regelsets. Een extensie kan er dynamisch regels aan toevoegen of verwijderen door updateDynamicRules()
en updateSessionRules()
aan te roepen, op voorwaarde dat de regellimieten niet worden overschreden. Zie Regellimieten voor informatie over regellimieten. Een voorbeeld hiervan kun je zien onder codevoorbeelden .
Statische regelsets
In tegenstelling tot dynamische regels 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-indeling, die aan de extensie worden aangegeven 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.
Versnelde beoordeling
Wijzigingen in statische regelsets kunnen in aanmerking komen voor versnelde beoordeling. Zie versnelde beoordeling voor in aanmerking komende wijzigingen .
Statische regels en regelsets in- en uitschakelen
Zowel individuele statische regels als volledige statische regelsets kunnen tijdens runtime worden in- of uitgeschakeld.
De set ingeschakelde statische regels en regelsets blijft behouden in alle browsersessies. Geen van beide blijft behouden bij extensie-updates, wat betekent dat alleen de regels die u in uw regelbestanden hebt gelaten, na een update beschikbaar zijn.
Om prestatieredenen zijn er ook beperkingen aan het aantal regels en regelsets dat tegelijk kan worden ingeschakeld. Roep getAvailableStaticRuleCount()
aan om het aantal aanvullende regels te controleren dat mogelijk is ingeschakeld. 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 van regels bevat die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de "id"
-sleutel van het Ruleset
-woordenboek. Er is een maximumlimiet van 5000 uitgeschakelde statische regels.
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 die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de "id"
-sleutel van het Ruleset
-woordenboek.
Regels bouwen
Ongeacht het type begint een regel met vier velden, zoals hieronder weergegeven. Terwijl de "id"
en "priority"
-sleutels een getal hebben, kunnen de "action"
en "condition"
-sleutels verschillende blokkeer- en omleidingsvoorwaarden bieden. De volgende regel blokkeert alle scriptverzoeken die afkomstig zijn van "foo.com"
naar elke URL met "abc"
als subtekenreeks.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
URL-matching
Declarative Net Request biedt de mogelijkheid om URL's te matchen met een syntaxis die overeenkomt met een patroon of met reguliere expressies.
Syntaxis van URL-filter
Met de "condition"
sleutel van een regel kan een "urlFilter"
sleutel worden toegepast op URL's onder een opgegeven domein. U maakt patronen met behulp van patroonmatchingtokens . Hier zijn een paar voorbeelden.
urlFilter | Wedstrijden | Komt niet overeen |
---|---|---|
"abc" | https://abcd.com https://voorbeeld.com/abcd | https://ab.com |
"abc*d" | https://abcd.com https://example.com/abcxyzd | https://abc.com |
"||a.example.com" | https://a.voorbeeld.com/ https://baexample.com/xyz https://een.voorbeeld.bedrijf | https://voorbeeld.com/ |
"|https*" | https://voorbeeld.com | http://voorbeeld.com/ http://https.com |
"example*^123|" | https://example.com/123 http://abc.com/example?123 | https://example.com/1234 https://abc.com/example0123 |
Reguliere expressies
Voorwaarden kunnen ook reguliere expressies gebruiken. Zie de sleutel "regexFilter"
. Zie Regels die reguliere expressies gebruiken voor meer informatie over de limieten die van toepassing zijn op deze voorwaarden.
Schrijf goede URL-voorwaarden
Let er bij het schrijven van regels op dat ze altijd overeenkomen met een heel domein. Anders kan uw regel overeenkomen in onverwachte situaties. Als u bijvoorbeeld de syntaxis voor patroonvergelijking gebruikt:
-
google.com
komt ten onrechte overeenhttps://example.com/?param=google.com
-
||google.com
komt onjuist overeenhttps://google.company
-
https://www.google.com
komt ten onrechte overeenhttps://example.com/?param=https://www.google.com
Overweeg het gebruik van:
-
||google.com/
, dat overeenkomt met alle paden en alle subdomeinen. -
|https://www.google.com/
die overeenkomt met alle paden en geen subdomeinen.
Gebruik op dezelfde manier de tekens ^
en /
om een reguliere expressie te verankeren. ^https:\/\/www\.google\.com\/
komt bijvoorbeeld overeen met elk pad op https://www.google.com.
Evaluatie van regels
DNR-regels worden door de browser toegepast in verschillende stadia van de levenscyclus van netwerkverzoeken.
Vóór het verzoek
Voordat een verzoek wordt gedaan, kan een extensie het verzoek blokkeren of omleiden (inclusief het upgraden van het schema van HTTP naar HTTPS) met een overeenkomende regel.
Voor elke extensie stelt de browser een lijst met overeenkomende regels op. Regels met de actie modifyHeaders
zijn hier niet opgenomen, omdat ze later zullen worden afgehandeld. Bovendien worden regels met een responseHeaders
voorwaarde later in overweging genomen (wanneer antwoordheaders beschikbaar zijn) en zijn ze niet opgenomen.
Vervolgens kiest Chrome voor elke extensie maximaal één kandidaat per verzoek. Chrome vindt een overeenkomende regel door alle overeenkomende regels op prioriteit te ordenen. Regels met dezelfde prioriteit worden geordend op actie ( allow
of allowAllRequests
> block
> upgradeScheme
> redirect
).
Als de kandidaat een allow
of allowAllRequests
regel is, of als het frame waarin het verzoek wordt gedaan eerder overeenkomt met een allowAllRequests
regel met een hogere of gelijke prioriteit van deze extensie, wordt het verzoek 'toegestaan' en heeft de extensie geen enkel effect op de verzoek.
Als meer dan één extensie dit verzoek wil blokkeren of omleiden, wordt er één actie gekozen. Chrome doet dit door de regels in het block
te sorteren > redirect
of upgradeScheme
> allow
of allowAllRequests
. Als twee regels van hetzelfde type zijn, kiest Chrome de regel uit de meest recent geïnstalleerde extensie.
Voordat verzoekheaders worden verzonden
Voordat Chrome verzoekheaders naar de server verzendt, worden de headers bijgewerkt op basis van overeenkomende modifyHeaders
regels.
Binnen één enkele extensie bouwt Chrome een lijst met uit te voeren wijzigingen op door alle overeenkomende modifyHeaders
-regels te vinden. Net als voorheen worden alleen regels opgenomen die een hogere prioriteit hebben dan eventuele overeenkomende allow
of allowAllRequests
regels.
Deze regels worden door Chrome in een zodanige volgorde toegepast dat regels van een recenter geïnstalleerde extensie altijd worden geëvalueerd vóór regels van een oudere extensie. Bovendien worden regels met een hogere prioriteit van één extensie altijd toegepast vóór regels met een lagere prioriteit van dezelfde extensie. Met name, zelfs tussen extensies:
- Als een regel aan een koptekst wordt toegevoegd, kunnen regels met een lagere prioriteit alleen aan die koptekst worden toegevoegd. Instel- en verwijderbewerkingen zijn niet toegestaan.
- Als een regel een koptekst instelt, kunnen alleen regels met een lagere prioriteit van dezelfde extensie aan die koptekst worden toegevoegd. Andere wijzigingen zijn niet toegestaan.
- Als een regel een koptekst verwijdert, kunnen regels met een lagere prioriteit de koptekst niet verder wijzigen.
Zodra er een reactie is ontvangen
Zodra de responsheaders zijn ontvangen, evalueert Chrome de regels met een responseHeaders
voorwaarde.
Na het sorteren van deze regels op action
en priority
en het uitsluiten van regels die overbodig zijn geworden door een overeenkomende allow
of allowAllRequests
regel (dit gebeurt op dezelfde manier als de stappen in 'Vóór het verzoek'), kan Chrome het verzoek namens een extensie blokkeren of omleiden.
Houd er rekening mee dat als een verzoek deze fase heeft bereikt, het verzoek al naar de server is verzonden en dat de server gegevens heeft ontvangen, zoals de hoofdtekst van het verzoek. Een blokkeer- of omleidingsregel met een responsheadervoorwaarde wordt nog steeds uitgevoerd, maar kan het verzoek niet daadwerkelijk blokkeren of omleiden.
In het geval van een blokkeerregel wordt dit afgehandeld doordat de pagina die het verzoek heeft ingediend een geblokkeerd antwoord ontvangt en Chrome het verzoek voortijdig beëindigt. In het geval van een omleidingsregel doet Chrome een nieuw verzoek aan de omgeleide URL. Zorg ervoor dat u nagaat of dit gedrag voldoet aan de privacyverwachtingen voor uw extensie.
Als het verzoek niet wordt geblokkeerd of omgeleid, past Chrome eventuele modifyHeaders
regels toe. Het aanbrengen van wijzigingen op antwoordheaders werkt op dezelfde manier als beschreven in 'Voordat aanvraagheaders worden verzonden'. Het toepassen van wijzigingen op verzoekheaders levert niets op, omdat het verzoek al is gedaan.
Veilige regels
Veilige regels worden gedefinieerd als regels met de actie block
, allow
, allowAllRequests
of upgradeScheme
. Voor deze regels geldt een verhoogd quotum voor dynamische regels.
Regellimieten
Er is prestatieoverhead verbonden aan het laden en evalueren van regels in de browser, dus er zijn enkele limieten van toepassing bij het gebruik van de API. Limieten zijn afhankelijk van het type regel dat u gebruikt.
Statische regels
Statische regels zijn de regels die zijn gespecificeerd in regelbestanden die in het manifestbestand zijn gedeclareerd. Een extensie kan maximaal 100 statische regelsets opgeven als onderdeel van de manifestsleutel "rule_resources"
, maar slechts 50 van deze regelsets kunnen tegelijk worden ingeschakeld. Dit laatste wordt MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
genoemd. Gezamenlijk zijn deze regelsets gegarandeerd ten minste 30.000 regels. Dit wordt de GUARANTEED_MINIMUM_STATIC_RULES
genoemd.
Het aantal regels dat daarna beschikbaar is, hangt af van het aantal regels dat is ingeschakeld door alle extensies die in de browser van een gebruiker zijn geïnstalleerd. U kunt dit nummer tijdens runtime vinden door getAvailableStaticRuleCount()
aan te roepen. Een voorbeeld hiervan kun je zien onder codevoorbeelden .
Sessieregels
Een extensie kan maximaal 5000 sessieregels bevatten. Dit wordt weergegeven als de MAX_NUMBER_OF_SESSION_RULES
.
Vóór Chrome 120 was er een limiet van 5000 gecombineerde dynamische en sessieregels.
Dynamische regels
Een extensie kan minimaal 5000 dynamische regels bevatten. Dit wordt weergegeven als de MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Vanaf Chrome 121 is er een grotere limiet van 30.000 regels beschikbaar voor veilige dynamische regels, weergegeven als MAX_NUMBER_OF_DYNAMIC_RULES
. Eventuele onveilige regels die binnen de limiet van 5000 worden toegevoegd, tellen ook mee voor deze limiet.
Vóór Chrome 120 was er een limiet van 5000 gecombineerde dynamische regels en sessieregels.
Regels die reguliere expressies gebruiken
Alle soorten regels kunnen reguliere expressies gebruiken; het totale aantal reguliere expressieregels van elk type kan echter niet groter zijn dan 1000. Dit wordt de MAX_NUMBER_OF_REGEX_RULES genoemd.
Bovendien moet elke regel minder dan 2 KB groot zijn nadat deze is gecompileerd. Dit komt grofweg overeen met de complexiteit van de regel. Als u een regel probeert te laden die deze limiet overschrijdt, ziet u een waarschuwing zoals de volgende en wordt de regel genegeerd.
rules_1.json: Rule with id 1 specified a more complex 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 geen reacties die via de onfetch
handler van een servicemedewerker gaan. declarativeNetRequest heeft geen invloed op de antwoorden die zijn gegenereerd door de servicewerknemer of opgehaald uit CacheStorage
, maar wel op de aanroepen van fetch()
die in een servicewerknemer zijn gedaan.
Webtoegankelijke bronnen
Een declarativeNetRequest-regel kan niet omleiden van een openbare bronaanvraag naar een bron die niet via internet toegankelijk is. Als u dit wel doet, wordt er een fout geactiveerd. Dit geldt zelfs als de opgegeven webtoegankelijke bron eigendom is van de omleidingsextensie. Om bronnen voor declarativeNetRequest te declareren, gebruikt u de array "web_accessible_resources"
van het manifest.
Wijziging van de koptekst
De append-bewerking wordt alleen ondersteund voor de volgende headers: accept
, accept-encoding
, accept-language
, access-control-request-headers
, cache-control
, connection
, content-language
, cookie
, forwarded
, if-match
, if-none-match
, keep-alive
, range
, te
, trailer
, transfer-encoding
, upgrade
, user-agent
, via
, want-digest
, x-forwarded-for
.
Voorbeelden
Codevoorbeelden
Dynamische regels bijwerken
In het volgende voorbeeld ziet u 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
});
Update statische regelsets
In het volgende voorbeeld ziet u hoe u regelsets in- en uitschakelt, waarbij rekening wordt gehouden met het aantal beschikbare en het maximale aantal ingeschakelde statische regelsets. U doet dit als het aantal statische regels dat u nodig heeft het toegestane aantal overschrijdt. Om dit te laten werken, moeten sommige van uw regelsets worden geïnstalleerd terwijl sommige van uw regelsets zijn uitgeschakeld (in het manifestbestand staat "Enabled"
op false
).
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);
}
Regel voorbeelden
De volgende voorbeelden illustreren hoe Chrome prioriteit geeft aan regels in een extensie. Wanneer u ze bekijkt, wilt u wellicht de prioriteitsregels in een apart venster openen.
De "prioriteit"-toets
Voor deze voorbeelden is hosttoestemming vereist voor *://*.example.com/*
.
Om de prioriteit van een bepaalde URL te bepalen, kijkt u naar de (door de ontwikkelaar gedefinieerde) "priority"
-sleutel, de "action"
-sleutel en de "urlFilter"
-sleutel. Deze voorbeelden verwijzen naar het voorbeeldregelbestand dat eronder wordt weergegeven.
- Navigatie naar https://google.com
- Voor deze URL gelden twee regels: de regels met ID's 1 en 4. De 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. - Navigeer naar https://google.com/1234
- Door de langere URL matcht nu de regel met ID 2 naast 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"
. - Navigeer 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 vereist voor *://*.example.com/*
.
In het volgende voorbeeld ziet u hoe u een verzoek van example.com kunt omleiden naar een pagina binnen de extensie zelf. Het extensiepad /a.jpg
wordt omgezet in 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 "transform"
-sleutel 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 omleidingen 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"]
}
}
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
. In de "regexFilter"
-sleutel ziet u hoe punten worden geëscaped en dat de vastleggende groep "abc" of "def" selecteert. De sleutel "regexSubstitution"
specificeert de eerste geretourneerde overeenkomst van de reguliere expressie met behulp van "\1". In dit geval wordt "abc" opgehaald uit de omgeleide URL 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
In het volgende voorbeeld worden alle cookies verwijderd van zowel een hoofdframe als eventuele subframes.
{
"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 de eerste of derde partij is van het frame waaruit het afkomstig is. Er wordt gesproken van een verzoek van de eerste partij als het hetzelfde domein (eTLD+1) heeft als het frame waaruit het verzoek afkomstig is.
Enum
"eerstepartij" "derde partij"
Het netwerkverzoek is de eerste partij bij het frame waaruit het afkomstig is.
Het netwerkverzoek is een derde partij in het frame waaruit het afkomstig is.
ExtensionActionOptions
Eigenschappen
- displayActionCountAsBadgeText
Booleaans optioneel
Of het aantal acties voor een pagina automatisch moet worden weergegeven als de badgetekst van de extensie. Deze voorkeur blijft gedurende sessies bestaan.
- tabbladBijwerken
TabActionCountUpdate optioneel
Chroom 89+Details over hoe het aantal acties van het tabblad moet worden aangepast.
GetDisabledRuleIdsOptions
Eigenschappen
- regelsetId
snaar
De id die overeenkomt met een statische
Ruleset
.
GetRulesFilter
Eigenschappen
- regelIds
nummer[] optioneel
Indien opgegeven, worden alleen regels met overeenkomende ID's opgenomen.
HeaderInfo
Eigenschappen
- uitgeslotenWaarden
tekenreeks[] optioneel
Indien opgegeven, wordt niet aan deze voorwaarde voldaan als de header bestaat, maar de waarde ervan ten minste één element in deze lijst bevat. Hierbij wordt dezelfde syntaxis van het matchpatroon gebruikt als
values
. - koptekst
snaar
De naam van de koptekst. Deze voorwaarde komt alleen overeen met de naam als zowel
values
alsexcludedValues
niet zijn opgegeven. - waarden
tekenreeks[] 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 headerwaardematching plus de volgende constructies:
'*' : Komt overeen met een willekeurig aantal tekens.
'?' : Komt overeen met nul of één teken(s).
'*' En '?' kan worden geëscaped met een backslash, bijvoorbeeld '\*' en '\?'
HeaderOperation
Dit beschrijft de mogelijke bewerkingen voor een "modifyHeaders"-regel.
Enum
"toevoegen" "set" "verwijderen"
Voegt een nieuw item toe voor de opgegeven koptekst. Deze bewerking wordt niet ondersteund voor aanvraagheaders.
Stelt een nieuwe waarde in voor de opgegeven header, waarbij alle bestaande headers met dezelfde naam worden verwijderd.
Verwijdert alle vermeldingen voor de opgegeven koptekst.
IsRegexSupportedResult
Eigenschappen
- wordt ondersteund
Booleaans
- reden
Niet-ondersteunde RegexReason optioneel
Specificeert de reden waarom de reguliere expressie niet wordt ondersteund. Alleen opgegeven als
isSupported
false is.
MatchedRule
Eigenschappen
- regelId
nummer
De ID van een overeenkomende regel.
- regelsetId
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
- tabId
nummer
De tabId van het tabblad waarvan het verzoek 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, dat wil zeggen het aantal milliseconden sinds het tijdperk.
MatchedRuleInfoDebug
Eigenschappen
- verzoek
Details over het verzoek waarvoor de regel is gekoppeld.
- regel
MatchedRulesFilter
Eigenschappen
- minTijdstempel
nummer optioneel
Indien opgegeven, komt het alleen overeen met regels na het opgegeven tijdstempel.
- tabId
nummer optioneel
Indien opgegeven, komt dit alleen overeen met de regels voor het opgegeven tabblad. Komt overeen met regels die niet aan een actief tabblad zijn gekoppeld, indien ingesteld op -1.
ModifyHeaderInfo
Eigenschappen
- koptekst
snaar
De naam van de header die moet worden gewijzigd.
- operatie
De bewerking die op een header moet worden uitgevoerd.
- waarde
tekenreeks optioneel
De nieuwe waarde voor de koptekst. Moet worden opgegeven voor
append
enset
.
QueryKeyValue
Eigenschappen
- sleutel
snaar
- vervangAlleen
Booleaans optioneel
Chroom 94+Indien waar, wordt de querysleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. Standaard ingesteld op false.
- waarde
snaar
QueryTransform
Eigenschappen
- addOrReplaceParams
QueryKeyValue [] optioneel
De lijst met querysleutel-waardeparen die moeten worden toegevoegd of vervangen.
- verwijderParams
tekenreeks[] optioneel
De lijst met querysleutels die moeten worden verwijderd.
Redirect
Eigenschappen
- extensiePad
tekenreeks optioneel
Pad relatief aan de extensiemap. Moet beginnen met '/'.
- regexSubstitutie
tekenreeks optioneel
Vervangingspatroon voor regels die een
regexFilter
specificeren. De eerste overeenkomst vanregexFilter
binnen de url wordt vervangen door dit patroon. BinnenregexSubstitution
kunnen cijfers met een backslash-escape (\1 tot en met \9) worden gebruikt om de overeenkomstige capture-groepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst. - transformeren
URLTransform optioneel
URL-transformaties die moeten worden uitgevoerd.
- URL
tekenreeks optioneel
De omleidings-URL. Omleidingen naar JavaScript-URL's zijn niet toegestaan.
RegexOptions
Eigenschappen
- is hoofdlettergevoelig
Booleaans optioneel
Of de opgegeven
regex
hoofdlettergevoelig is. Standaard is waar. - regex
snaar
De reguliere expresson om te controleren.
- vereisen vastleggen
Booleaans optioneel
Of de opgegeven
regex
vastlegging vereist. Vastleggen is alleen vereist voor omleidingsregels die een actieregexSubstition
specificeren. De standaardwaarde is onwaar.
RequestDetails
Eigenschappen
- documentId
tekenreeks optioneel
Chroom 106+De unieke identificatie voor het framedocument, als dit verzoek om een frame gaat.
- documentLevenscyclus
DocumentLifecycle optioneel
Chroom 106+De levenscyclus van het framedocument, als dit verzoek om een frame gaat.
- frameId
nummer
De waarde 0 geeft aan dat het verzoek in het hoofdframe plaatsvindt; een positieve waarde geeft de ID aan van een subframe waarin het verzoek 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
tekenreeks optioneel
De oorsprong waar het verzoek is geïnitieerd. Dit verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de string 'null' gebruikt.
- methode
snaar
Standaard HTTP-methode.
- parentDocumentId
tekenreeks optioneel
Chroom 106+De unieke identificatie voor het bovenliggende document van het frame, als dit verzoek voor een frame geldt en een bovenliggend document heeft.
- ouderFrameId
nummer
ID van het frame dat het frame omsluit dat het verzoek heeft verzonden. Stel in op -1 als er geen bovenliggend frame bestaat.
- verzoekID
snaar
De ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie.
- tabId
nummer
De ID van het tabblad waarop de aanvraag plaatsvindt. Stel in op -1 als het verzoek niet gerelateerd is aan een tabblad.
- type
Het resourcetype van de aanvraag.
- 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 brontype van het netwerkverzoek.
Enum
"hoofdframe" "subframe" "stijlblad" "script" "afbeelding" "lettertype" "voorwerp" "xmlhttpverzoek" "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.
- Identiteitskaart
nummer
Een ID die een regel op unieke wijze identificeert. Verplicht en moet >= 1 zijn.
- prioriteit
nummer optioneel
Regelprioriteit. Standaard ingesteld op 1. Indien opgegeven, moet dit >= 1 zijn.
RuleAction
Eigenschappen
- omleiden
Omleiden optioneel
Beschrijft hoe de omleiding moet worden uitgevoerd. Alleen geldig voor omleidingsregels.
- verzoekHeaders
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 antwoordheaders die voor de aanvraag moeten worden gewijzigd. 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 RuleCondition overeenkomt.
Enum
"blok" "doorsturen" "toestaan" "upgradeschema" "wijzigHeaders" "allowAllRequests"
Blokkeer het netwerkverzoek.
Leid het netwerkverzoek om.
Sta het netwerkverzoek toe. Het verzoek wordt niet onderschept als er een toestemmingsregel is die hiermee overeenkomt.
Upgrade het schema van de netwerkverzoek-URL naar https als het verzoek 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
Domeintype optioneel
Geeft aan of het netwerkverzoek afkomstig is van de eerste of derde partij van het domein waarvan het afkomstig is. Indien dit wordt weggelaten, worden alle verzoeken geaccepteerd.
- domeinen
tekenreeks[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
initiatorDomains
De regel matcht alleen netwerkverzoeken die afkomstig zijn uit de lijst met
domains
. - uitgesloten domeinen
tekenreeks[] optioneel
Verouderd sinds Chrome 101Gebruik in plaats daarvan
excludedInitiatorDomains
De regel komt niet overeen met netwerkverzoeken die afkomstig zijn uit de lijst met
excludedDomains
. - uitgeslotenInitiatorDomains
tekenreeks[] optioneel
Chroom 101+De regel komt niet overeen met netwerkverzoeken die afkomstig zijn uit de lijst met
excludedInitiatorDomains
. Als de lijst leeg of weggelaten is, worden er geen domeinen uitgesloten. Dit heeft voorrang opinitiatorDomains
.Opmerkingen:
- Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
- De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de verzoekinitiator en niet met de verzoek-URL.
- Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
- uitgeslotenRequestDomains
tekenreeks[] 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 of weggelaten is, worden er geen domeinen uitgesloten. Dit heeft voorrang oprequestDomains
.Opmerkingen:
- Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
- De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
- uitgeslotenRequestMethods
RequestMethod [] optioneel
Chroom 91+Lijst met aanvraagmethoden waarbij de regel niet overeenkomt. Er mag slechts één van
requestMethods
enexcludedRequestMethods
worden opgegeven. Als geen van beide is opgegeven, komen alle aanvraagmethoden overeen. - uitgeslotenResourceTypes
ResourceType [] optioneel
Lijst met resourcetypen waarvoor de regel niet overeenkomt. Er mag slechts één van
resourceTypes
enexcludedResourceTypes
worden opgegeven. Als geen van beide is opgegeven, worden alle resourcetypen behalve 'main_frame' geblokkeerd. - uitgeslotenResponseHeaders
HeaderInfo [] optioneel
Chroom 128+Regel komt niet overeen als het verzoek overeenkomt met een voorwaarde van de antwoordheader 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. - initiatorDomains
tekenreeks[] 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 vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de verzoekinitiator en niet met de verzoek-URL.
- Subdomeinen van de genoemde domeinen worden ook gematcht.
- isUrlFilterCaseSensitive
Booleaans optioneel
Of het
urlFilter
ofregexFilter
(welke dan ook is opgegeven) hoofdlettergevoelig is. Standaard is onwaar. - regexFilter
tekenreeks optioneel
Reguliere expressie die moet overeenkomen met de URL van het netwerkverzoek. Dit volgt de RE2-syntaxis .
Opmerking: Er kan slechts één van
urlFilter
ofregexFilter
worden opgegeven.Opmerking: het
regexFilter
mag 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. - aanvraagDomeinen
tekenreeks[] 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 vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de genoemde domeinen worden ook gematcht.
- aanvraagmethoden
RequestMethod [] optioneel
Chroom 91+Lijst met HTTP-verzoekmethoden waaraan de regel kan voldoen. Een lege lijst is niet toegestaan.
Opmerking: het opgeven van een
requestMethods
regelvoorwaarde sluit ook niet-HTTP(s)-aanvragen uit, terwijl het opgeven vanexcludedRequestMethods
dat niet doet. - resourcetypen
ResourceType [] optioneel
Lijst met resourcetypen waaraan de regel kan voldoen. Een lege lijst is niet toegestaan.
Opmerking: dit moet worden opgegeven voor
allowAllRequests
regels en mag alleen de resourcetypensub_frame
enmain_frame
bevatten. - reactieHeaders
HeaderInfo [] optioneel
Chroom 128+Regel komt overeen als het verzoek overeenkomt met een voorwaarde van de antwoordheader in deze lijst (indien opgegeven).
- tabbladID's
nummer[] optioneel
Chroom 92+Lijst met
tabs.Tab.id
waaraan de regel moet voldoen. Een ID vantabs.TAB_ID_NONE
komt overeen met verzoeken die niet afkomstig zijn van een tabblad. Een lege lijst is niet toegestaan. Alleen ondersteund voor sessiegerichte regels. - urlFilter
tekenreeks optioneel
Het patroon dat overeenkomt met de netwerkverzoek-URL. Ondersteunde constructies:
'*' : Wildcard: komt overeen met een willekeurig aantal tekens.
'|' : Links/rechts anker: Indien gebruikt aan een van beide uiteinden van het patroon, specificeert het respectievelijk het begin/einde van de URL.
'||' : Domeinnaamanker: Indien gebruikt aan het begin van het patroon, specificeert het 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 anker links/domeinnaam) + patroon + (optioneel anker rechts).Als u dit weglaat, komen alle URL's overeen. Een lege string is niet toegestaan.
Een patroon dat begint met
||*
is niet toegestaan. Gebruik in plaats daarvan*
.Opmerking: Er kan slechts één van
urlFilter
ofregexFilter
worden opgegeven.Opmerking: het
urlFilter
mag 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. Als de verzoek-URL bijvoorbeeld http://abc.рф?q=ф is, wordt heturlFilter
vergeleken met de URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Eigenschappen
- ingeschakeld
Booleaans
Of de regelset standaard is ingeschakeld.
- Identiteitskaart
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 overeenkomen met het opgegeven filter.
TabActionCountUpdate
Eigenschappen
- verhogen
nummer
Het bedrag waarmee de actietelling van het tabblad moet worden verhoogd. Negatieve waarden verlagen het aantal.
- tabId
nummer
Het tabblad waarvoor u het aantal acties wilt bijwerken.
TestMatchOutcomeResult
Eigenschappen
- overeenkomende regels
MatchedRegel []
De regels (indien aanwezig) die overeenkomen met het hypothetische verzoek.
TestMatchRequestDetails
Eigenschappen
- initiatiefnemer
tekenreeks optioneel
De initiator-URL (indien aanwezig) voor het hypothetische verzoek.
- methode
RequestMethode optioneel
Standaard HTTP-methode van het hypothetische verzoek. Standaard ingesteld op 'get' voor HTTP-verzoeken en wordt genegeerd voor niet-HTTP-verzoeken.
- reactieHeaders
object optioneel
In behandelingDe headers die worden verstrekt door een hypothetisch antwoord als het verzoek niet wordt geblokkeerd of omgeleid voordat het wordt verzonden. Voorgesteld als een object dat een headernaam toewijst aan een lijst met tekenreekswaarden. Indien niet gespecificeerd, retourneert het hypothetische antwoord lege antwoordheaders, die kunnen overeenkomen met regels die overeenkomen met het niet bestaan van headers. Bijv
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- tabId
nummer optioneel
De ID van het tabblad waarop het hypothetische verzoek plaatsvindt. Hoeft niet overeen te komen met een echt tabblad-ID. De standaardwaarde is -1, wat betekent dat het verzoek niet gerelateerd is aan een tabblad.
- type
Het resourcetype van de hypothetische aanvraag.
- URL
snaar
De URL van het hypothetische verzoek.
UnsupportedRegexReason
Beschrijft de reden waarom een bepaalde reguliere expressie niet wordt ondersteund.
Enum
"syntaxisfout" "geheugenlimiet overschreden"
De reguliere expressie is syntactisch onjuist of gebruikt 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.
- removeRuleIds
nummer[] optioneel
ID's van de regels die moeten worden verwijderd. Eventuele ongeldige ID's worden genegeerd.
UpdateRulesetOptions
Eigenschappen
UpdateStaticRulesOptions
Eigenschappen
- uitschakelenRuleIds
nummer[] optioneel
Set id's die overeenkomen met 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. - regelsetId
snaar
De id die overeenkomt met een statische
Ruleset
.
URLTransform
Eigenschappen
- fragment
tekenreeks optioneel
Het nieuwe fragment voor het verzoek. Moet ofwel leeg zijn, in welk geval het bestaande fragment wordt gewist; of moet beginnen met '#'.
- gastheer
tekenreeks optioneel
De nieuwe host voor het verzoek.
- wachtwoord
tekenreeks optioneel
Het nieuwe wachtwoord voor de aanvraag.
- pad
tekenreeks optioneel
Het nieuwe pad voor de aanvraag. Indien leeg, wordt het bestaande pad gewist.
- haven
tekenreeks optioneel
De nieuwe poort voor de aanvraag. Indien leeg, wordt de bestaande poort gewist.
- vraag
tekenreeks optioneel
De nieuwe query voor de aanvraag. Moet ofwel leeg zijn, in welk geval de bestaande zoekopdracht wordt gewist; of moet beginnen met '?'.
- vraagTransform
QueryTransform optioneel
Voeg sleutel-waardeparen voor zoekopdrachten toe, verwijder of vervang ze.
- schema
tekenreeks optioneel
Het nieuwe schema voor de aanvraag. Toegestane waarden zijn "http", "https", "ftp" en "chrome-extension".
- gebruikersnaam
tekenreeks optioneel
De nieuwe gebruikersnaam voor het verzoek.
Eigenschappen
DYNAMIC_RULESET_ID
Regelset-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 gedaan, gespecificeerd in minuten. Extra aanroepen mislukken onmiddellijk en stellen runtime.lastError
in. Opmerking: getMatchedRules
aanroepen die zijn gekoppeld aan een gebruikersgebaar zijn vrijgesteld van het quotum.
Waarde
10
GUARANTEED_MINIMUM_STATIC_RULES
Het minimumaantal statische regels dat wordt gegarandeerd voor een uitbreiding binnen de ingeschakelde statische regelsets. Alle regels boven deze limiet tellen mee voor de globale statische regellimiet .
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 geëvalueerd voor de set dynamische regels en de regels die zijn opgegeven 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
dat een extensie kan opgeven 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' sessiegerichte regels dat een extensie kan toevoegen.
Waarde
5000
SESSION_RULESET_ID
Regelset-ID voor de sessiegerichte regels die door de extensie zijn toegevoegd.
Waarde
"_sessie"
Methoden
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
Retourneert het aantal statische regels dat een extensie kan inschakelen voordat de globale limiet voor statische regels wordt bereikt.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(count: number) => void
- graaf
nummer
Retouren
Beloof<nummer>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Retourneert de lijst met statische regels in de gegeven Ruleset
die momenteel zijn uitgeschakeld.
Parameters
- opties
Specificeert de regelset waarop een query moet worden uitgevoerd.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(disabledRuleIds: number[]) => void
- uitgeschakeldRuleIds
nummer[]
Retouren
Beloof<nummer[]>
Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Retourneert de huidige set dynamische regels voor de extensie. Bellers kunnen optioneel de lijst met opgehaalde regels 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
parameter ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retouren
Beloof < Regel []>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Retourneert de ID's voor de huidige set ingeschakelde statische regelsets.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(rulesetIds: string[]) => void
- regelsetIds
snaar[]
Retouren
Beloof<string[]>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
Retourneert alle overeenkomende regels voor de extensie. Bellers kunnen optioneel de lijst met overeenkomende regels filteren door een filter
op te geven. Deze methode is alleen beschikbaar voor extensies met de machtiging "declarativeNetRequestFeedback"
of waarvoor de machtiging "activeTab"
is verleend voor de tabId
die is opgegeven in filter
. Opmerking: Regels die niet aan een actief document zijn gekoppeld en die meer dan vijf minuten geleden zijn gematcht, worden niet geretourneerd.
Parameters
- filter
MatchedRulesFilter optioneel
Een object om de lijst met overeenkomende regels te filteren.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(details: RulesMatchedDetails) => void
- details
Retouren
Beloof < RulesMatchedDetails >
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Retourneert de huidige set sessiegerichte regels voor de extensie. Bellers kunnen optioneel de lijst met opgehaalde regels 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
parameter ziet er als volgt uit:(rules: Rule[]) => void
- regels
Regel []
Retouren
Beloof < Regel []>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Controleert of de gegeven reguliere expressie wordt ondersteund als regexFilter
regelvoorwaarde.
Parameters
- regexOpties
De reguliere expressie die moet worden gecontroleerd.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(result: IsRegexSupportedResult) => void
- resultaat
Retouren
Belofte <IsRegexSupportedResult>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Configureert of het aantal acties voor tabbladen moet worden weergegeven als de badgetekst van de extensieactie en biedt een manier om het aantal acties te verhogen.
Parameters
- opties
- terugbellen
functie optioneel
Chroom 89+De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
Controleert of een van de declarativeNetRequest-regels van de extensie overeenkomt met een hypothetisch verzoek. Let op: Alleen beschikbaar voor uitgepakte extensies, aangezien dit alleen bedoeld is om te gebruiken tijdens de ontwikkeling van extensies.
Parameters
- verzoek
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(result: TestMatchOutcomeResult) => void
- resultaat
Retouren
Belofte <TestMatchOutcomeResult>
Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Wijzigt de huidige set dynamische regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds
worden eerst verwijderd en vervolgens worden de regels uit options.addRules
toegevoegd. Opmerkingen:
- Deze update vindt plaats als een enkele atomaire bewerking: alle opgegeven regels worden toegevoegd en verwijderd, of er wordt een fout geretourneerd.
- Deze regels blijven behouden in browsersessies en bij extensie-updates.
- Statische regels die zijn opgegeven als onderdeel van het uitbreidingspakket kunnen niet worden verwijderd met deze functie.
-
MAX_NUMBER_OF_DYNAMIC_RULES
is het maximale aantal dynamische regels dat een extensie kan toevoegen. Het aantal onveilige regels magMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
niet overschrijden.
Parameters
- optiesChroom 87+
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Werkt de set ingeschakelde statische regelsets voor de extensie bij. De regelsets met ID's vermeld in options.disableRulesetIds
worden eerst verwijderd en vervolgens worden de regelsets vermeld in options.enableRulesetIds
toegevoegd. Houd er rekening mee dat de set ingeschakelde statische regelsets in alle sessies behouden blijft, maar niet in extensie-updates. Dat wil zeggen dat de manifestsleutel rule_resources
de set ingeschakelde statische regelsets bij elke extensie-update bepaalt.
Parameters
- optiesChroom 87+
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Wijzigt de huidige set sessiegerichte regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds
worden eerst verwijderd en vervolgens worden de regels uit options.addRules
toegevoegd. Opmerkingen:
- Deze update vindt plaats als een enkele atomaire bewerking: alle opgegeven regels worden toegevoegd en verwijderd, of er wordt een fout geretourneerd.
- Deze regels blijven niet behouden tijdens sessies en worden in het geheugen opgeslagen.
-
MAX_NUMBER_OF_SESSION_RULES
is het maximale aantal sessieregels dat een extensie kan toevoegen.
Parameters
- opties
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 91+Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Schakelt individuele statische regels in een Ruleset
in en uit. Wijzigingen in regels die bij een uitgeschakelde Ruleset
horen, worden van kracht de volgende keer dat deze wordt ingeschakeld.
Parameters
- opties
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.
Evenementen
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Wordt geactiveerd wanneer een regel wordt gekoppeld aan een verzoek. Alleen beschikbaar voor uitgepakte extensies met de machtiging "declarativeNetRequestFeedback"
aangezien deze alleen bedoeld is om te worden gebruikt voor foutopsporingsdoeleinden.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(info: MatchedRuleInfoDebug) => void
- informatie