Beschrijving
De chrome.declarativeNetRequest API wordt gebruikt om netwerkverzoeken te blokkeren of aan te passen door declaratieve regels op te geven. Zo kunnen extensies netwerkverzoeken aanpassen zonder ze te onderscheppen en de content ervan te bekijken. Dit biedt meer privacy.
Rechten
declarativeNetRequestdeclarativeNetRequestWithHostAccessDe rechten declarativeNetRequest en declarativeNetRequestWithHostAccess bieden dezelfde mogelijkheden. Het verschil tussen deze 2 is wanneer rechten worden gevraagd of verleend.
"declarativeNetRequest"- Triggert een rechtenwaarschuwing tijdens de installatie, maar biedt impliciete toegang tot de regels
allow,allowAllRequestsenblock. Gebruik deze optie indien mogelijk om te voorkomen dat je volledige toegang tot hosts moet aanvragen. "declarativeNetRequestFeedback"- Zet foutopsporingsfuncties aan voor uitgepakte extensies, met name
getMatchedRules()enonRuleMatchedDebug. "declarativeNetRequestWithHostAccess"- Er wordt geen rechtenwaarschuwing getoond tijdens de installatie, maar je moet hostrechten aanvragen voordat je een actie op een host kunt uitvoeren. Dit is geschikt als je declaratieve netwerkverzoekregels wilt gebruiken in een extensie die al hostrechten heeft zonder extra waarschuwingen te genereren.
Beschikbaarheid
Manifest
Naast de eerder beschreven rechten vereisen bepaalde typen regelsets, met name statische regelsets, dat de manifestsleutel "declarative_net_request" wordt gedeclareerd. Dit moet een woordenboek zijn met één sleutel met de naam "rule_resources". Deze sleutel is een matrix met woordenboeken van het type Ruleset, zoals hieronder wordt getoond. (De naam 'Ruleset' verschijnt niet in de json van het manifest, omdat het slechts een matrix 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
Als je deze API wilt gebruiken, voer je een of meer regelsets in. Een regelset bevat een array met regels. Een enkele regel doet een van de volgende dingen:
- Blokkeer een netwerkverzoek.
- Upgrade het schema (http naar https).
- Voorkom dat een verzoek wordt geblokkeerd door overeenkomende geblokkeerde regels te ontkennen.
- Een netwerkverzoek omleiden.
- Verzoek- of reactieheaders aanpassen.
Er zijn 3 typen regelsets die op net iets andere manieren worden beheerd.
- Dynamisch
- Ze blijven bestaan tijdens browsersessies en extensie-upgrades en worden beheerd met JavaScript terwijl een extensie wordt gebruikt.
- Sessie
- Wordt gewist als de browser wordt afgesloten en als er een nieuwe versie van de extensie wordt geïnstalleerd. Sessieregels worden beheerd met JavaScript terwijl een extensie wordt gebruikt.
- Statisch
- Wordt verpakt, geïnstalleerd en geüpdatet als een extensie wordt geïnstalleerd of geüpgraded. Statische regels worden opgeslagen in regelbestanden met json-indeling en staan in het manifestbestand.
Dynamische en sessiegerichte regelsets
Dynamische en sessieregelsets worden beheerd met JavaScript terwijl een extensie wordt gebruikt.
- Dynamische regels blijven behouden tijdens browsersessies en extensie-upgrades.
- Sessieregels worden gewist als de browser wordt afgesloten en als er een nieuwe versie van de extensie wordt geïnstalleerd.
Er is maar één van elk van deze regelsettypen. Een extensie kan dynamisch regels toevoegen of verwijderen door updateDynamicRules() en updateSessionRules() aan te roepen, mits de regellimieten niet worden overschreden. Ga naar Regellimieten voor meer informatie over regellimieten. U vindt een voorbeeld hiervan onder codevoorbeelden.
Statische regelsets
In tegenstelling tot dynamische en sessieregels worden statische regels verpakt, geïnstalleerd en geüpdatet wanneer een extensie wordt geïnstalleerd of geüpgraded. Ze worden opgeslagen in regelbestanden in json-indeling, die aan de extensie worden aangegeven met de sleutels "declarative_net_request" en "rule_resources", zoals hierboven beschreven, en een of meer Ruleset-woordenboeken. Een Ruleset-woordenboek bevat een pad naar het regelbestand, een ID voor de regelset in het bestand en of de regelset aan- of uitstaat. De laatste 2 zijn belangrijk als je een regelset programmatisch aan- of uitzet.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Als je regelbestanden wilt testen, laad je de extensie uitgepakt. Fouten en waarschuwingen over ongeldige statische regels worden alleen getoond voor uitgepakte extensies. Ongeldige statische regels in verpakte extensies worden genegeerd.
Versnelde beoordeling
Wijzigingen in statische regelsets komen misschien in aanmerking voor een versnelde beoordeling. Ga naar Versnelde beoordeling voor in aanmerking komende wijzigingen.
Statische regels en regelsets aan- en uitzetten
Zowel afzonderlijke statische regels als volledige statische regelsets kunnen tijdens de runtime worden aan- of uitgezet.
De set aangezette statische regels en regelsets blijft behouden in browsersessies. Geen van beide blijft behouden bij extensie-updates. Dit betekent dat alleen regels die je in je 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 aangezet. Roep getAvailableStaticRuleCount() aan om het aantal aanvullende regels te checken dat kan worden aangezet. Ga naar Regellimieten voor meer informatie over regellimieten.
Bel updateStaticRules() om statische regels aan of uit te zetten. Deze methode gebruikt een UpdateStaticRulesOptions-object, dat matrices bevat van ID's van regels die moeten worden aan- of uitgezet. De ID's worden gedefinieerd met de sleutel "id" van het woordenboek Ruleset. Er geldt een maximumlimiet van 5000 uitgezette statische regels.
Roep updateEnabledRulesets() aan om statische regelsets aan of uit te zetten. Deze methode gebruikt een UpdateRulesetOptions-object dat arrays bevat van ID's van regelsets die moeten worden aan- of uitgezet. De ID's worden gedefinieerd met de sleutel "id" van het woordenboek Ruleset.
Regels maken
Ongeacht het type begint een regel met 4 velden, zoals hieronder getoond. De sleutels "id" en "priority" nemen een getal, maar de sleutels "action" en "condition" kunnen verschillende blokkerings- en omleidingsvoorwaarden bieden. De volgende regel blokkeert alle scriptverzoeken die afkomstig zijn van "foo.com" naar een URL met "abc" als subtekenreeks.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
URL-overeenkomst
Met Declarative Net Request kun je URL's matchen met een syntaxis voor patroonovereenkomst of reguliere expressies.
Syntaxis van URL-filter
De sleutel "condition" van een regel staat een sleutel "urlFilter" toe om actie te ondernemen op URL's onder een opgegeven domein. U maakt patronen met tokens voor patroonovereenkomsten. Hier volgen enkele voorbeelden.
urlFilter |
Combinaties | 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://b.a.example.com/xyz https://a.example.company |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
Reguliere expressies
Voorwaarden kunnen ook reguliere expressies gebruiken. Bekijk de sleutel
"regexFilter". Ga naar Regels die reguliere expressies gebruiken voor meer informatie over de limieten die van toepassing zijn op deze voorwaarden.
Goede URL-voorwaarden schrijven
Zorg dat je regels altijd overeenkomen met een heel domein. Anders kan de regel overeenkomen in onverwachte situaties. Als u bijvoorbeeld de syntaxis voor patroonovereenkomst gebruikt:
google.comkomt onjuist overeen methttps://example.com/?param=google.com||google.comkomt onjuist overeen methttps://google.companyhttps://www.google.comkomt onjuist overeen methttps://example.com/?param=https://www.google.com
Overweeg:
||google.com/, die overeenkomt met alle paden en alle subdomeinen.|https://www.google.com/, die overeenkomt met alle paden en geen subdomeinen.
Gebruik ook de tekens ^ en / om een reguliere expressie te verankeren. ^https:\/\/www\.google\.com\/ komt bijvoorbeeld overeen met elk pad op https://www.google.com.
Regelevaluatie
DNR-regels worden door de browser toegepast in verschillende fasen van de levenscyclus van het netwerkverzoek.
Vóór het verzoek
Voordat een verzoek wordt gedaan, kan een extensie het verzoek blokkeren of omleiden (waaronder het schema upgraden van HTTP naar HTTPS) met een overeenkomende regel.
Voor elke extensie bepaalt de browser een lijst met overeenkomende regels. Regels met de actie modifyHeaders zijn hier niet opgenomen, omdat deze later worden verwerkt. Regels met een responseHeaders-voorwaarde worden later overwogen (wanneer reactieheaders beschikbaar zijn) en worden niet meegenomen.
Daarna 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 overeenkwam met een allowAllRequests-regel met een hogere of gelijke prioriteit van deze extensie, is het verzoek toegestaan en heeft de extensie geen effect op het verzoek.
Als meer dan één extensie dit verzoek wil blokkeren of omleiden, wordt er één actie gekozen. Chrome doet dit door de regels te sorteren in de volgorde block > redirect of upgradeScheme > allow of allowAllRequests. Als 2 regels van hetzelfde type zijn, kiest Chrome de regel van de meest recent geïnstalleerde extensie.
Voordat verzoekheaders worden gestuurd
Voordat Chrome verzoekheaders naar de server stuurt, worden de headers geüpdatet op basis van overeenkomende modifyHeaders-regels.
Binnen één extensie maakt Chrome de lijst met wijzigingen die moeten worden uitgevoerd door alle overeenkomende modifyHeaders-regels te vinden. Net als eerder worden alleen regels opgenomen die een hogere prioriteit hebben dan overeenkomende allow- of allowAllRequests-regels.
Chrome past deze regels toe in een volgorde waarin regels van een recenter geïnstalleerde extensie altijd worden geëvalueerd vóór regels van een oudere extensie. Daarnaast worden regels met een hogere prioriteit van een extensie altijd toegepast vóór regels met een lagere prioriteit van dezelfde extensie. Dit geldt zelfs voor extensies:
- Als een regel een koptekst toevoegt, kunnen regels met een lagere prioriteit alleen aan die koptekst worden toegevoegd. Instel- en verwijderingsbewerkingen zijn niet toegestaan.
- Als een regel een header instelt, kunnen alleen regels met een lagere prioriteit van dezelfde extensie aan die header worden toegevoegd. Andere wijzigingen zijn niet toegestaan.
- Als een regel een kop verwijdert, kunnen regels met een lagere prioriteit de kop niet verder aanpassen.
Nadat we een reactie hebben gekregen
Nadat de reactieheaders zijn ontvangen, evalueert Chrome de regels met een responseHeaders-voorwaarde.
Nadat deze regels zijn gesorteerd op action en priority en regels zijn uitgesloten 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 blokkeren of omleiden namens een extensie.
Als een verzoek deze fase heeft bereikt, is het verzoek al naar de server gestuurd en heeft de server gegevens zoals de verzoektekst gekregen. Een blokkerings- of omleidingsregel met een voorwaarde voor reactieheaders wordt nog steeds uitgevoerd, maar kan het verzoek niet blokkeren of omleiden.
In het geval van een blokkeringsregel wordt dit afgehandeld door de pagina die het verzoek heeft gedaan en een geblokkeerde reactie krijgt, waarna Chrome het verzoek voortijdig beëindigt. In het geval van een omleidingsregel doet Chrome een nieuw verzoek naar de omgeleide URL. Ga na of dit gedrag voldoet aan de privacyverwachtingen voor je extensie.
Als het verzoek niet wordt geblokkeerd of omgeleid, past Chrome alle modifyHeaders-regels toe. Wijzigingen toepassen op reactieheaders werkt op dezelfde manier als beschreven in Voordat verzoekheaders worden gestuurd. Wijzigingen toepassen op verzoekheaders heeft geen effect, omdat het verzoek al is gedaan.
Veilige regels
Veilige regels zijn gedefinieerd als regels met de actie block, allow,
allowAllRequests of upgradeScheme. Voor deze regels geldt een verhoogd quotum voor dynamische regels.
Limieten voor regels
Het laden en evalueren van regels in de browser kost prestaties, dus er gelden bepaalde limieten als je de API gebruikt. De limieten zijn afhankelijk van het type regel dat u gebruikt.
Statische regels
Statische regels zijn de regels die zijn gespecificeerd in regelbestanden die zijn gedefinieerd in het manifestbestand. Een extensie kan maximaal 100 statische regelsets specificeren als onderdeel van de manifestsleutel "rule_resources", maar er kunnen maar 50 van deze regelsets tegelijk aanstaan. Dit laatste wordt de MAX_NUMBER_OF_ENABLED_STATIC_RULESETS genoemd. Samen hebben die regelsets gegarandeerd minstens 30.000 regels. Dit wordt de GUARANTEED_MINIMUM_STATIC_RULES genoemd.
Het aantal regels dat daarna beschikbaar is, is afhankelijk van het aantal regels dat is aangezet door alle extensies die zijn geïnstalleerd in de browser van een gebruiker. Je kunt dit nummer tijdens de runtime vinden door getAvailableStaticRuleCount() aan te roepen. U vindt een voorbeeld hiervan onder codevoorbeelden.
Sessieregels
Een extensie kan maximaal 5000 sessieregels hebben. Dit wordt getoond 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 minstens 5000 dynamische regels hebben. Dit wordt getoond 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,
die worden weergegeven als de MAX_NUMBER_OF_DYNAMIC_RULES. Onveilige regels die binnen de limiet van 5000 zijn toegevoegd, tellen ook mee voor deze limiet.
Vóór Chrome 120 was er een limiet van 5000 gecombineerde dynamische en sessieregels.
Regels die reguliere expressies gebruiken
Alle typen regels kunnen reguliere expressies gebruiken, maar het totale aantal regels met reguliere expressies van elk type mag niet hoger zijn dan 1000. Dit wordt de MAX_NUMBER_OF_REGEX_RULES genoemd.
Daarnaast 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, krijgt u een waarschuwing zoals hieronder 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 het HTTP-cachegeheugen, maar misschien niet de reacties die via de onfetch-handler van een serviceworker gaan. declarativeNetRequest heeft geen invloed op reacties die door de serviceworker worden gegenereerd of die worden opgehaald uit CacheStorage, maar wel op aanroepen naar fetch() die in een serviceworker worden gedaan.
Webtoegankelijke bronnen
Een declarativeNetRequest-regel kan niet omleiden van een openbaar bronverzoek naar een bron die niet toegankelijk is via internet. Als u dit doet, wordt er een fout geactiveerd. Dit geldt zelfs als de opgegeven webtoegankelijke bron eigendom is van de omleidende extensie. Gebruik de array "web_accessible_resources" van het manifest om bronnen voor declarativeNetRequest te declareren.
Koptekstwijziging
De toevoegbewerking wordt alleen ondersteund voor de volgende verzoekheaders: 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. Deze toelatingslijst is hoofdlettergevoelig (bug 449152902).
Als je een verzoek- of reactieheader toevoegt, gebruikt de browser waar mogelijk het juiste scheidingsteken.
Voorbeelden
Codevoorbeelden
Dynamische regels updaten
In het volgende voorbeeld zie je hoe je updateDynamicRules() aanroept. De procedure voor updateSessionRules() is hetzelfde.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await browser.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await browser.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Statische regelsets updaten
In het volgende voorbeeld zie je hoe je regelsets aan- en uitzet, rekening houdend met het aantal beschikbare en het maximale aantal aangezette statische regelsets. Doe dit als het aantal statische regels dat je nodig hebt, het toegestane aantal overschrijdt. Hiervoor moeten sommige van je regelsets worden geïnstalleerd terwijl sommige van je regelsets zijn uitgezet (stel "Enabled" in op false in het manifestbestand).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await browser.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 > browser.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await browser.declarativeNetRequest.updateEnabledRulesets(options);
}
Voorbeelden van regels
In de volgende voorbeelden zie je hoe Chrome prioriteit geeft aan regels in een extensie. Als u ze controleert, kunt u de prioriteringsregels in een afzonderlijk venster openen.
De sleutel 'priority'
Voor deze voorbeelden zijn hostrechten vereist voor *://*.example.com/*.
Als je de prioriteit van een bepaalde URL wilt bepalen, kijk je naar de (door de ontwikkelaar gedefinieerde) sleutel "priority", de sleutel "action" en de sleutel "urlFilter". Deze voorbeelden verwijzen naar het voorbeeldregelbestand dat eronder wordt getoond.
- Navigatie naar https://google.com
- Er zijn 2 regels van toepassing op deze URL: 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 resterende regels zijn niet van toepassing omdat ze voor langere URL's zijn. - Navigatie naar https://google.com/1234
- Vanwege de langere URL komt de regel met ID 2 nu overeen, naast 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 4 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 zijn hostrechten vereist voor *://*.example.com/*.
In het volgende voorbeeld wordt getoond hoe je een verzoek van example.com omleidt 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 je extensie is. Hiervoor 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"]
}
}
In het volgende voorbeeld wordt de sleutel "transform" gebruikt om om te leiden naar een subdomein van example.com. Er wordt een domeinnaamanker ('||') gebruikt om verzoeken met een schema van example.com te onderscheppen. De sleutel "scheme" in "transform" geeft aan dat omleidingen 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. In de sleutel "regexFilter" ziet u hoe punten worden geëscaped en dat de capture-groep abc of def selecteert. De sleutel "regexSubstitution" geeft de eerste geretourneerde overeenkomst van de reguliere expressie aan met \1. In dit geval wordt 'abc' vastgelegd 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"
]
}
}
Headers
In het volgende voorbeeld worden alle cookies verwijderd uit zowel een hoofdframe als subframes.
{
"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 first-party of third-party is voor het frame waarin het is ontstaan. Een verzoek wordt first-party genoemd als het hetzelfde domein (eTLD+1) heeft als het frame waarin het verzoek is ontstaan.
Enum
"firstParty"
Het netwerkverzoek is first-party voor het frame waarin het is ontstaan.
"thirdParty"
Het netwerkverzoek is van derden voor het frame waarin het is ontstaan.
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 behouden voor alle sessies.
-
tabUpdate
TabActionCountUpdate optioneel
Chrome 89 of hoger browser.* sinds Chrome 148Informatie over hoe het aantal acties van het tabblad moet worden aangepast.
GetDisabledRuleIdsOptions
Eigenschappen
-
rulesetId
tekenreeks
De ID die overeenkomt met een statische
Ruleset.
GetRulesFilter
Eigenschappen
-
ruleIds
number[] optioneel
Als u dit opgeeft, worden alleen regels met overeenkomende ID's opgenomen.
HeaderInfo
Eigenschappen
-
excludedValues
string[] optioneel
Als deze voorwaarde is opgegeven, komt deze niet overeen als de kop bestaat, maar de waarde ten minste één element in deze lijst bevat. Hierbij wordt dezelfde syntaxis voor overeenkomstpatronen gebruikt als voor
values. -
header
tekenreeks
De naam van de koptekst. Deze voorwaarde komt alleen overeen met de naam als zowel
valuesalsexcludedValuesniet zijn ingevoerd. -
waarden
string[] optioneel
Als deze voorwaarde is ingevoerd, komt deze overeen als de waarde van de kop overeenkomt met minstens één patroon in deze lijst. Dit ondersteunt niet-hoofdlettergevoelige overeenkomsten voor koptekstwaarden plus de volgende constructies:
'*' : Komt overeen met een willekeurig aantal tekens.
? : Komt overeen met nul of één teken.
'*' en '?' kunnen worden geëscaped met een backslash, bijvoorbeeld '\*' en '\?'
HeaderOperation
Hierin worden de mogelijke bewerkingen voor een modifyHeaders-regel beschreven.
Enum
append
Voegt een nieuwe invoer toe voor de aangegeven kop. Als je de headers van een verzoek aanpast, wordt deze bewerking alleen ondersteund voor specifieke headers.
"set"
Stelt een nieuwe waarde in voor de aangegeven koptekst en verwijdert bestaande kopteksten met dezelfde naam.
"remove"
Verwijdert alle vermeldingen voor de opgegeven kop.
IsRegexSupportedResult
Eigenschappen
-
isSupported
booleaans
-
reden
UnsupportedRegexReason optioneel
Geeft de reden aan waarom de reguliere expressie niet wordt ondersteund. Wordt alleen verstrekt als
isSupportedonwaar is.
MatchedRule
Eigenschappen
-
ruleId
getal
De ID van een overeenkomstregel.
-
rulesetId
tekenreeks
ID van de
Rulesetwaartoe deze regel behoort. Voor een regel die afkomstig is van de set dynamische regels, is dit gelijk aanDYNAMIC_RULESET_ID.
MatchedRuleInfo
Eigenschappen
-
regel
-
tabId
getal
De tabId van het tabblad waar het verzoek vandaan komt als het tabblad nog actief is. Anders -1.
-
timeStamp
getal
Het tijdstip waarop de regel is geactiveerd. Tijdstempels komen overeen met de JavaScript-conventie voor tijden, d.w.z. het aantal milliseconden sinds het tijdperk.
MatchedRuleInfoDebug
Eigenschappen
-
verzoek
Informatie over het verzoek waarvoor de regel is gevonden.
-
regel
MatchedRulesFilter
Eigenschappen
-
minTimeStamp
number optioneel
Indien gespecificeerd, komt alleen overeen met regels na de aangegeven tijdstempel.
-
tabId
number optioneel
Indien ingevoerd, komt dit alleen overeen met regels voor het aangegeven tabblad. Komt overeen met regels die niet aan een actief tabblad zijn gekoppeld als deze is ingesteld op -1.
ModifyHeaderInfo
Eigenschappen
-
header
tekenreeks
De naam van de koptekst die moet worden aangepast.
-
bewerking
De bewerking die moet worden uitgevoerd op een kop.
-
waarde
tekenreeks optioneel
De nieuwe waarde voor de koptekst. Moet worden ingevoerd voor
append- enset-bewerkingen.
QueryKeyValue
Eigenschappen
-
sleutel
tekenreeks
-
replaceOnly
booleaans optioneel
Chrome 94+ browser.* sinds Chrome 148Als dit waar is, wordt de querysleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. De standaard is onwaar.
-
waarde
tekenreeks
QueryTransform
Eigenschappen
-
addOrReplaceParams
QueryKeyValue[] optioneel
De lijst met sleutel/waarde-paren voor query's die moeten worden toegevoegd of vervangen.
-
removeParams
string[] optioneel
De lijst met querysleutels die moeten worden verwijderd.
Redirect
Eigenschappen
-
extensionPath
tekenreeks optioneel
Pad relatief ten opzichte van de extensiemap. Moet beginnen met '/'.
-
regexSubstitution
tekenreeks optioneel
Vervangingspatroon voor regels die een
regexFilterspecificeren. De eerste overeenkomst vanregexFilterin de URL wordt vervangen door dit patroon. InregexSubstitutionkunnen cijfers met een backslash (\1 tot \9) worden gebruikt om de bijbehorende capture-groepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst. -
transform
URLTransform optioneel
URL-transformaties die moeten worden uitgevoerd.
-
url
tekenreeks optioneel
De omleidings-URL. Omleidingen naar JavaScript-URL's zijn niet toegestaan.
RegexOptions
Eigenschappen
-
isCaseSensitive
booleaans optioneel
Of de ingevoerde
regexhoofdlettergevoelig is. De standaardwaarde is true. -
regex
tekenreeks
De reguliere expressie die moet worden gecontroleerd.
-
requireCapturing
booleaans optioneel
Of de ingevoerde
regexmoet worden vastgelegd. Vastleggen is alleen vereist voor omleidingsregels die eenregexSubstition-actie specificeren. De standaardwaarde is onwaar.
RequestDetails
Eigenschappen
-
documentId
tekenreeks optioneel
Chrome 106 of hoger browser.* sinds Chrome 148De unieke ID voor het document van het frame, als dit verzoek voor een frame is.
-
documentLifecycle
DocumentLifecycle optioneel
Chrome 106 of hoger browser.* sinds Chrome 148De levenscyclus van het document van het frame, als dit verzoek voor een frame is.
-
frameId
getal
De waarde 0 geeft aan dat het verzoek plaatsvindt in het hoofdframe. Een positieve waarde geeft de ID aan van een subframe waarin het verzoek plaatsvindt. Als het document van een (sub)frame wordt geladen (
typeismain_frameofsub_frame), geeftframeIdde ID van dit frame aan, niet de ID van het buitenste frame. Frame-ID's zijn uniek binnen een tabblad. -
frameType
FrameType optioneel
Chrome 106 of hoger browser.* sinds Chrome 148Het type frame, als dit verzoek voor een frame is.
-
initiator
tekenreeks optioneel
De oorsprong waar het verzoek is gestart. Dit verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de tekenreeks 'null' gebruikt.
-
method
tekenreeks
Standaard HTTP-methode.
-
parentDocumentId
tekenreeks optioneel
Chrome 106 of hoger browser.* sinds Chrome 148De unieke ID voor het bovenliggende document van het frame, als dit verzoek voor een frame is en een bovenliggend document heeft.
-
parentFrameId
getal
ID van het frame dat het frame omhult dat het verzoek heeft gestuurd. Stel deze waarde in op -1 als er geen bovenliggend frame is.
-
requestId
tekenreeks
De ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie.
-
tabId
getal
De ID van het tabblad waarin het verzoek plaatsvindt. Ingesteld op -1 als het verzoek niet is gerelateerd aan een tabblad.
-
type
Het resourcetype van het verzoek.
-
url
tekenreeks
De URL van het verzoek.
RequestMethod
Dit beschrijft de HTTP-verzoekmethode van een netwerkverzoek.
Enum
"connect"
'verwijderen'
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
Dit beschrijft het resourcetype van het netwerkverzoek.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
Eigenschappen
-
actie
De actie die moet worden uitgevoerd als deze regel overeenkomt.
-
voorwaarde
De voorwaarde waaronder deze regel wordt getriggerd.
-
id
getal
Een ID die een regel uniek identificeert. Verplicht en moet >= 1 zijn.
-
prioriteit
number optioneel
Regelprioriteit. De standaardwaarde is 1. Moet >= 1 zijn als dit is ingevoerd.
RuleAction
Eigenschappen
-
omleiding
Redirect optioneel
Beschrijft hoe de omleiding moet worden uitgevoerd. Alleen geldig voor omleidingsregels.
-
requestHeaders
ModifyHeaderInfo[] optioneel
Chrome 86+ browser.* sinds Chrome 148De verzoekheaders die moeten worden aangepast voor het verzoek. Alleen geldig als RuleActionType modifyHeaders is.
-
responseHeaders
ModifyHeaderInfo[] optioneel
Chrome 86+ browser.* sinds Chrome 148De reactieheaders die moeten worden aangepast voor het verzoek. Alleen geldig als RuleActionType modifyHeaders is.
-
type
Het type actie dat moet worden uitgevoerd.
RuleActionType
Beschrijft het soort actie dat moet worden uitgevoerd als een bepaalde RuleCondition overeenkomt.
Enum
"block"
Blokkeer het netwerkverzoek.
"redirect"
Het netwerkverzoek omleiden.
"allow"
Het netwerkverzoek toestaan. Het verzoek wordt niet onderschept als er een toestemmingsregel is die ermee overeenkomt.
"upgradeScheme"
Upgrade het schema van de URL van het netwerkverzoek naar https als het verzoek http of ftp is.
"modifyHeaders"
Wijzig verzoek-/reactieheaders van het netwerkverzoek.
"allowAllRequests"
Alle verzoeken binnen een framehiërarchie toestaan, inclusief het frameverzoek zelf.
RuleCondition
Eigenschappen
-
domainType
DomainType optioneel
Geeft aan of het netwerkverzoek first-party of third-party is voor het domein waar het vandaan komt. Als je dit weglaat, worden alle verzoeken geaccepteerd.
-
domeinen
string[] optioneel
Beëindigd sinds Chrome 101In plaats daarvan
initiatorDomainsgebruikenDe regel komt alleen overeen met netwerkverzoeken die afkomstig zijn van de lijst met
domains. -
excludedDomains
string[] optioneel
Beëindigd sinds Chrome 101In plaats daarvan
excludedInitiatorDomainsgebruikenDe regel komt niet overeen met netwerkverzoeken die afkomstig zijn van de lijst met
excludedDomains. -
excludedInitiatorDomains
string[] optioneel
Chrome 101+ browser.* sinds Chrome 148De regel komt niet overeen met netwerkverzoeken die afkomstig zijn van de lijst met
excludedInitiatorDomains. Als de lijst leeg is of wordt weggelaten, worden er geen domeinen uitgesloten. Dit krijgt voorrang opinitiatorDomains.Opmerkingen:
- Subdomeinen zoals a.example.com zijn ook toegestaan.
- De vermeldingen mogen alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de initiator van het verzoek en niet met de verzoek-URL.
- Subdomeinen van de vermelde domeinen worden ook uitgesloten.
-
excludedRequestDomains
string[] optioneel
Chrome 101+ browser.* sinds Chrome 148De regel komt niet overeen met netwerkverzoeken als de domeinen overeenkomen met een domein uit de lijst met
excludedRequestDomains. Als de lijst leeg is of wordt weggelaten, worden er geen domeinen uitgesloten. Dit krijgt voorrang oprequestDomains.Opmerkingen:
- Subdomeinen zoals a.example.com zijn ook toegestaan.
- De vermeldingen mogen alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook uitgesloten.
-
excludedRequestMethods
RequestMethod[] optioneel
Chrome 91+ browser.* sinds Chrome 148Lijst met verzoekmethoden die niet overeenkomen met de regel. Er moet maar één van
requestMethodsenexcludedRequestMethodsworden ingevoerd. Als geen van beide is opgegeven, komen alle verzoekmethoden overeen. -
excludedResourceTypes
ResourceType[] optioneel
Lijst met resourcetypen die niet overeenkomen met de regel. Er moet maar één van
resourceTypesenexcludedResourceTypesworden ingevoerd. Als geen van beide is opgegeven, worden alle resourcetypen behalve main_frame geblokkeerd. -
excludedResponseHeaders
HeaderInfo[] optioneel
Chrome 128 of hoger browser.* sinds Chrome 148De regel komt niet overeen als het verzoek overeenkomt met een voorwaarde voor reactieheaders in deze lijst (indien gespecificeerd). Als zowel
excludedResponseHeadersalsresponseHeaderszijn ingevoerd, heeft de propertyexcludedResponseHeadersvoorrang. -
excludedTabIds
number[] optioneel
Chrome 92+ browser.* sinds Chrome 148Lijst met
tabs.Tab.iddie niet overeen mogen komen met de regel. Een ID vantabs.TAB_ID_NONEsluit verzoeken uit die niet afkomstig zijn van een tabblad. Alleen ondersteund voor sessiegerichte regels. -
excludedTopDomains
string[] optioneel
Chrome 145+ browser.* sinds Chrome 148De regel komt niet overeen met netwerkverzoeken als het domein van het bijbehorende frame op het hoogste niveau overeenkomt met een domein uit de lijst met
excludedTopDomains. Als de lijst leeg is of wordt weggelaten, worden er geen domeinen uitgesloten. Dit krijgt voorrang optopDomains.Opmerkingen:
- Subdomeinen zoals a.example.com zijn ook toegestaan.
- De vermeldingen mogen alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook uitgesloten.
- Voor verzoeken zonder bijbehorend frame op het hoogste niveau (bijvoorbeeld verzoeken die zijn gestart door ServiceWorker) wordt in plaats daarvan het domein van de verzoekstarter gebruikt.
-
initiatorDomains
string[] optioneel
Chrome 101+ browser.* sinds Chrome 148De regel komt alleen overeen met netwerkverzoeken die afkomstig zijn van 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 alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Dit komt overeen met de initiator van het verzoek en niet met de verzoek-URL.
- Subdomeinen van de vermelde domeinen worden ook gematcht.
-
isUrlFilterCaseSensitive
booleaans optioneel
Of de
urlFilterofregexFilter(afhankelijk van wat is opgegeven) hoofdlettergevoelig is. De standaardwaarde is onwaar. -
regexFilter
tekenreeks optioneel
Reguliere expressie die moet overeenkomen met de URL van het netwerkverzoek. Dit volgt de RE2-syntaxis.
Opmerking: Je kunt maar één van
urlFilterofregexFilterinvoeren.Opmerking: De
regexFiltermag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in de punycode-indeling (in het geval van geïnternationaliseerde domeinen) en andere niet-ASCII-tekens URL-gecodeerd zijn in UTF-8. -
requestDomains
string[] optioneel
Chrome 101+ browser.* sinds Chrome 148De 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 alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook gematcht.
-
requestMethods
RequestMethod[] optioneel
Chrome 91+ browser.* sinds Chrome 148Lijst met HTTP-verzoekmethoden die overeenkomen met de regel. Een lege lijst is niet toegestaan.
Opmerking: Als je een regelvoorwaarde voor
requestMethodsinvoert, worden niet-HTTP(s)-verzoeken ook uitgesloten. Als jeexcludedRequestMethodsinvoert, gebeurt dit niet. -
resourceTypes
ResourceType[] optioneel
Lijst met resourcetypen die overeenkomen met de regel. Een lege lijst is niet toegestaan.
Opmerking: Dit moet worden gespecificeerd voor
allowAllRequests-regels en mag alleen de brontypensub_frameenmain_framebevatten. -
responseHeaders
HeaderInfo[] optioneel
Chrome 128 of hoger browser.* sinds Chrome 148De regel komt overeen als het verzoek overeenkomt met een voorwaarde voor reactieheaders in deze lijst (indien gespecificeerd).
-
tabIds
number[] optioneel
Chrome 92+ browser.* sinds Chrome 148Lijst met
tabs.Tab.idwaarmee de regel moet overeenkomen. Een ID vantabs.TAB_ID_NONEkomt overeen met verzoeken die niet afkomstig zijn van een tabblad. Een lege lijst is niet toegestaan. Alleen ondersteund voor sessiegerichte regels. -
topDomains
string[] optioneel
Chrome 145+ browser.* sinds Chrome 148De regel komt alleen overeen met netwerkverzoeken als het domein van het bijbehorende frame op het hoogste niveau overeenkomt met een domein uit de lijst met
topDomains. Als de lijst wordt weggelaten, wordt de regel toegepast op verzoeken die zijn gekoppeld aan alle domeinen van frames op het hoogste niveau. Een lege lijst is niet toegestaan.Opmerkingen:
- Subdomeinen zoals a.example.com zijn ook toegestaan.
- De vermeldingen mogen alleen ASCII-tekens bevatten.
- Gebruik punycode-codering voor geïnternationaliseerde domeinen.
- Subdomeinen van de vermelde domeinen worden ook gematcht.
- Voor verzoeken zonder bijbehorend frame op het hoogste niveau (bijvoorbeeld verzoeken die zijn gestart door ServiceWorker) wordt in plaats daarvan het domein van de verzoekstarter gebruikt.
-
urlFilter
tekenreeks optioneel
Het patroon dat wordt vergeleken met de URL van het netwerkverzoek. Ondersteunde constructies:
* : Jokerteken: Komt overeen met een willekeurig aantal tekens.
'|' : Anker links/rechts: Als dit aan een van de uiteinden van het patroon wordt gebruikt, geeft dit respectievelijk het begin of het einde van de URL aan.
'||' : Domeinnaamanker: Als dit aan het begin van het patroon wordt gebruikt, geeft dit het begin van een (sub)domein van de URL aan.
'^' : Scheidingsteken: Dit komt overeen met alles behalve een letter, een cijfer of een van de volgende tekens:
_,-,.of%. Dit komt ook overeen met het einde van de URL.Daarom bestaat
urlFilteruit de volgende delen: (optioneel anker links/domeinnaam) + patroon + (optioneel anker rechts).Als je dit weglaat, worden alle URL's gematcht. Een lege tekenreeks is niet toegestaan.
Een patroon dat begint met
||*is niet toegestaan. Gebruik in plaats daarvan*.Opmerking: Je kunt maar één van
urlFilterofregexFilterinvoeren.Opmerking: De
urlFiltermag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in de punycode-indeling (in het geval van geïnternationaliseerde domeinen) en andere niet-ASCII-tekens URL-gecodeerd zijn in UTF-8. Als de verzoek-URL bijvoorbeeld http://abc.рф?q=ф is, wordt deurlFiltervergeleken met de URL http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
Enum
"urlFilter"
regexFilter
"isUrlFilterCaseSensitive"
"initiatorDomains"
"excludedInitiatorDomains"
"requestDomains"
"excludedRequestDomains"
"topDomains"
"excludedTopDomains"
"domains"
"excludedDomains"
"resourceTypes"
"excludedResourceTypes"
"requestMethods"
"excludedRequestMethods"
"domainType"
"tabIds"
"excludedTabIds"
responseHeaders
"excludedResponseHeaders"
Ruleset
Eigenschappen
-
aangezet
booleaans
Of de regelset standaard aanstaat.
-
id
tekenreeks
Een niet-lege tekenreeks die de regelset uniek identificeert. ID's die beginnen met '_' zijn gereserveerd voor intern gebruik.
-
pad
tekenreeks
Het pad van de json-regelset ten opzichte van de extensiemap.
RulesMatchedDetails
Eigenschappen
-
rulesMatchedInfo
Regels die overeenkomen met het opgegeven filter.
TabActionCountUpdate
Eigenschappen
-
verhogen
getal
Het aantal waarmee het aantal acties van het tabblad moet worden verhoogd. Negatieve waarden verlagen het aantal.
-
tabId
getal
Het tabblad waarvoor je het aantal acties wilt updaten.
TestMatchOutcomeResult
Eigenschappen
-
matchedRules
De regels (indien van toepassing) die overeenkomen met het hypothetische verzoek.
TestMatchRequestDetails
Eigenschappen
-
initiator
tekenreeks optioneel
De initiator-URL (indien van toepassing) voor het hypothetische verzoek.
-
method
RequestMethod optioneel
Standaard HTTP-methode van het hypothetische verzoek. De standaardwaarde is 'get' voor HTTP-verzoeken en wordt genegeerd voor niet-HTTP-verzoeken.
-
responseHeaders
object optioneel
Chrome 129 of hoger browser.* sinds Chrome 148De headers die worden geleverd door een hypothetische reactie als het verzoek niet wordt geblokkeerd of omgeleid voordat het wordt gestuurd. Weergegeven als een object dat een headernaam toewijst aan een lijst met tekenreekswaarden. Als je dit niet opgeeft, retourneert de hypothetische reactie lege reactieheaders. Deze kunnen overeenkomen met regels die overeenkomen met de niet-bestaande headers. Bijv.
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number optioneel
De ID van het tabblad waarin het hypothetische verzoek plaatsvindt. Hoeft niet overeen te komen met een echte tabblad-ID. De standaardwaarde is -1, wat betekent dat het verzoek niet is gerelateerd aan een tabblad.
-
topUrl
tekenreeks optioneel
Chrome 145+ browser.* sinds Chrome 148De bijbehorende URL van het frame op het hoogste niveau (indien van toepassing) voor het verzoek.
-
type
Het resourcetype van het hypothetische verzoek.
-
url
tekenreeks
De URL van het hypothetische verzoek.
UnsupportedRegexReason
Beschrijft de reden waarom een bepaalde reguliere expressie niet wordt ondersteund.
Enum
"syntaxError"
De reguliere expressie is syntactisch onjuist of gebruikt functies die niet beschikbaar zijn in de RE2-syntaxis.
"memoryLimitExceeded"
De reguliere expressie overschrijdt de geheugenlimiet.
UpdateRuleOptions
Eigenschappen
-
addRules
Rule[] optioneel
Regels die je wilt toevoegen.
-
removeRuleIds
number[] optioneel
ID's van de regels die je wilt verwijderen. Ongeldige ID's worden genegeerd.
UpdateRulesetOptions
Eigenschappen
UpdateStaticRulesOptions
Eigenschappen
URLTransform
Eigenschappen
-
fragment
tekenreeks optioneel
Het nieuwe fragment voor het verzoek. Moet leeg zijn (in dat geval wordt het bestaande fragment gewist) of moet beginnen met #.
-
host
tekenreeks optioneel
De nieuwe host voor het verzoek.
-
wachtwoord
tekenreeks optioneel
Het nieuwe wachtwoord voor het verzoek.
-
pad
tekenreeks optioneel
Het nieuwe pad voor het verzoek. Als dit veld leeg is, wordt het bestaande pad gewist.
-
poort
tekenreeks optioneel
De nieuwe poort voor het verzoek. Als u dit veld leeg laat, wordt de bestaande poort gewist.
-
query
tekenreeks optioneel
De nieuwe zoekopdracht voor het verzoek. Moet leeg zijn (in dat geval wordt de bestaande query gewist) of moet beginnen met '?'.
-
queryTransform
QueryTransform optioneel
Sleutel/waarde-paren voor query's toevoegen, verwijderen of vervangen.
-
schema
tekenreeks optioneel
Het nieuwe schema voor het verzoek. Toegestane waarden zijn http, https, ftp en chrome-extension.
-
gebruikersnaam
tekenreeks optioneel
De nieuwe gebruikersnaam voor het verzoek.
Eigenschappen
DYNAMIC_RULESET_ID
ID van de regelset voor de dynamische regels die door de extensie zijn toegevoegd.
Waarde
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Tijdsinterval waarbinnen MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules-gesprekken kunnen worden gevoerd, aangegeven in minuten. Aanvullende aanroepen mislukken onmiddellijk en stellen runtime.lastError in. Opmerking: getMatchedRules-aanroepen die zijn gekoppeld aan een gebruikersactivatie, zijn vrijgesteld van het quotum.
Waarde
10
GUARANTEED_MINIMUM_STATIC_RULES
Het minimumaantal statische regels dat aan een extensie is gegarandeerd voor de aangezette statische regelsets. Regels boven deze limiet tellen mee voor de wereldwijde limiet voor statische regels.
Waarde
30.000
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
30.000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Het maximumaantal statische Rulesets dat een extensie tegelijk kan aanzetten.
Waarde
50
MAX_NUMBER_OF_REGEX_RULES
Het maximale aantal regels voor reguliere expressies dat een extensie kan toevoegen. Deze limiet wordt afzonderlijk geëvalueerd voor de set dynamische regels en de regels die zijn opgegeven in het bestand met regelbronnen.
Waarde
1000
MAX_NUMBER_OF_SESSION_RULES
Het maximale aantal regels met sessiebereik dat een extensie kan toevoegen.
Waarde
5000
MAX_NUMBER_OF_STATIC_RULESETS
Het maximumaantal statische Rulesets dat een extensie kan specificeren als onderdeel van de manifestsleutel "rule_resources".
Waarde
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Het maximale aantal 'onveilige' dynamische regels dat een extensie kan toevoegen.
Waarde
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Het maximale aantal 'onveilige' regels met sessiebereik dat een extensie kan toevoegen.
Waarde
5000
SESSION_RULESET_ID
Regelset-ID voor de sessiegerichte regels die door de extensie zijn toegevoegd.
Waarde
"_session"
Methoden
getAvailableStaticRuleCount()
browser.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>
Retourneert het aantal statische regels dat een extensie kan aanzetten voordat de wereldwijde limiet voor statische regels wordt bereikt.
Retourzendingen
-
Promise<number>
Chrome 91+ browser.* sinds Chrome 148
getDisabledRuleIds()
browser.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
): Promise<number[]>
Retourneert de lijst met statische regels in de opgegeven Ruleset die op dit moment zijn uitgezet.
Parameters
-
opties
Hiermee wordt de regelset opgegeven die moet worden opgevraagd.
Retourzendingen
-
Promise<number[]>
Promise die wordt omgezet in een lijst met ID's die overeenkomen met de uitgezette regels in die regelset.
getDynamicRules()
browser.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Retourneert de huidige set dynamische regels voor de extensie. Bellers kunnen de lijst met opgehaalde regels filteren door een filter in te voeren.
Parameters
-
filter
GetRulesFilter optioneel
Chrome 111+ browser.* sinds Chrome 148Een object om de lijst met opgehaalde regels te filteren.
Retourzendingen
-
Promise<Rule[]>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost met de set dynamische regels. De Promise kan worden afgewezen in het geval van tijdelijke interne fouten.
getEnabledRulesets()
browser.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>
Retourneert de ID's voor de huidige set aangezette statische regelsets.
Retourzendingen
-
Promise<string[]>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt omgezet in een lijst met ID's, waarbij elke ID overeenkomt met een aangezette statische
Ruleset.
getMatchedRules()
browser.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
): Promise<RulesMatchedDetails>
Retourneert alle regels die overeenkomen met de extensie. Bellers kunnen de lijst met overeenkomende regels filteren door een filter in te voeren. Deze methode is alleen beschikbaar voor extensies met het recht "declarativeNetRequestFeedback" of met het recht "activeTab" dat is verleend voor de tabId die is opgegeven in filter. Opmerking: Regels die niet zijn gekoppeld aan een actief document en die meer dan 5 minuten geleden zijn gevonden, worden niet geretourneerd.
Parameters
-
filter
MatchedRulesFilter optioneel
Een object om de lijst met overeenkomende regels te filteren.
Retourzendingen
-
Promise<RulesMatchedDetails>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost nadat de lijst met overeenkomende regels is opgehaald. In het geval van een fout wordt de Promise afgewezen. Dit kan verschillende redenen hebben, zoals onvoldoende rechten of overschrijding van het quotum.
getSessionRules()
browser.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Retourneert de huidige set regels met sessiebereik voor de extensie. Bellers kunnen de lijst met opgehaalde regels filteren door een filter in te voeren.
Parameters
-
filter
GetRulesFilter optioneel
Chrome 111+ browser.* sinds Chrome 148Een object om de lijst met opgehaalde regels te filteren.
Retourzendingen
-
Promise<Rule[]>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt omgezet met de set regels met sessiebereik.
isRegexSupported()
browser.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
): Promise<IsRegexSupportedResult>
Controleert of de ingevoerde reguliere expressie wordt ondersteund als een regexFilter-regelvoorwaarde.
Parameters
-
regexOptions
De reguliere expressie die moet worden gecontroleerd.
Retourzendingen
-
Promise<IsRegexSupportedResult>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost met details over of de reguliere expressie wordt ondersteund en de reden als dat niet het geval is.
setExtensionActionOptions()
browser.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
): Promise<void>
Hiermee stel je in of het aantal acties voor tabbladen moet worden getoond als de badgetekst van de extensieactie en bied je een manier om dat aantal acties te verhogen.
Parameters
-
opties
Retourzendingen
-
Promise<void>
Chrome 91+ browser.* sinds Chrome 148
testMatchOutcome()
browser.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
): Promise<TestMatchOutcomeResult>
Controleert of een van de declarativeNetRequest-regels van de extensie overeenkomt met een hypothetisch verzoek. Opmerking: Alleen beschikbaar voor uitgepakte extensies, omdat dit alleen bedoeld is voor gebruik tijdens de ontwikkeling van extensies.
Parameters
-
verzoek
Retourzendingen
-
Promise<TestMatchOutcomeResult>
Promise die wordt opgelost met de details van overeenkomende regels.
updateDynamicRules()
browser.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
): Promise<void>
Wijzigt de huidige set dynamische regels voor de extensie. De regels met ID's die worden vermeld in options.removeRuleIds, worden eerst verwijderd. Daarna worden de regels in options.addRules toegevoegd. Opmerkingen:
- Deze update vindt plaats als één atomische bewerking: alle opgegeven regels worden toegevoegd en verwijderd of er wordt een fout geretourneerd.
- Deze regels blijven behouden tijdens browsersessies en extensie-updates.
- Statische regels die zijn opgegeven als onderdeel van het extensiepakket, kunnen niet worden verwijderd met deze functie.
MAX_NUMBER_OF_DYNAMIC_RULESis het maximale aantal dynamische regels dat een extensie kan toevoegen. Het aantal onveilige regels mag niet hoger zijn danMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Parameters
-
optiesChrome 87+ browser.* sinds Chrome 148
Retourzendingen
-
Promise<void>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost zodra de update is afgerond. In het geval van een fout wordt de promise afgewezen en wordt de regelset niet gewijzigd. Dit kan verschillende redenen hebben, zoals een ongeldige regelindeling, een dubbele regel-ID, overschrijding van de limiet voor het aantal regels of interne fouten.
updateEnabledRulesets()
browser.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
): Promise<void>
Updatet de set aangezette statische regelsets voor de extensie. De regelsets met ID's die worden vermeld in options.disableRulesetIds worden eerst verwijderd en daarna worden de regelsets toegevoegd die worden vermeld in options.enableRulesetIds.
De set aangezette statische regelsets blijft behouden tussen sessies, maar niet tussen extensie-updates. De manifestsleutel rule_resources bepaalt de set aangezette statische regelsets bij elke extensie-update.
Parameters
-
optiesChrome 87+ browser.* sinds Chrome 148
Retourzendingen
-
Promise<void>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost zodra de update is afgerond. In het geval van een fout wordt de promise afgewezen en wordt er geen wijziging aangebracht in de set aangezette regelsets. Dit kan verschillende redenen hebben, zoals ongeldige regelset-ID's, overschrijding van de limiet voor het aantal regels of interne fouten.
updateSessionRules()
browser.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
): Promise<void>
Wijzigt de huidige set regels met sessiebereik voor de extensie. De regels met ID's die worden vermeld in options.removeRuleIds, worden eerst verwijderd. Daarna worden de regels in options.addRules toegevoegd. Opmerkingen:
- Deze update vindt plaats als één atomische bewerking: alle opgegeven regels worden toegevoegd en verwijderd of er wordt een fout geretourneerd.
- Deze regels blijven niet behouden tussen sessies en worden opgeslagen in het geheugen.
MAX_NUMBER_OF_SESSION_RULESis het maximumaantal sessieregels dat een extensie kan toevoegen.
Parameters
-
opties
Retourzendingen
-
Promise<void>
Chrome 91+ browser.* sinds Chrome 148Promise die wordt opgelost zodra de update is afgerond. In het geval van een fout wordt de promise afgewezen en wordt de regelset niet gewijzigd. Dit kan verschillende redenen hebben, zoals een ongeldige regelindeling, een dubbele regel-ID of een overschrijding van de limiet voor het aantal regels.
updateStaticRules()
browser.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
): Promise<void>
Zet afzonderlijke statische regels in een Ruleset aan of uit. Wijzigingen in regels die horen bij een uitgezette Ruleset worden van kracht als deze weer wordt aangezet.
Parameters
-
opties
Retourzendingen
-
Promise<void>
Promise die wordt opgelost als de update is afgerond. In het geval van een fout wordt de promise afgewezen en wordt er geen wijziging aangebracht in de aangezette statische regels.
Evenementen
onRuleMatchedDebug
browser.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Wordt geactiveerd als een regel overeenkomt met een verzoek. Alleen beschikbaar voor uitgepakte extensies met het recht "declarativeNetRequestFeedback", omdat dit alleen bedoeld is voor foutopsporing.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(info: MatchedRuleInfoDebug) => void
-
info
-