chrome.declarativeNetRequest

Beschrijving

De chrome.declarativeNetRequest API wordt gebruikt om netwerkverzoeken te blokkeren of te wijzigen door declaratieve regels te specificeren. Hierdoor kunnen extensies netwerkverzoeken wijzigen zonder deze te onderscheppen en de inhoud ervan te bekijken, wat zorgt voor meer privacy.

Machtigingen

declarativeNetRequest
declarativeNetRequestWithHostAccess

De machtigingen " declarativeNetRequest " en " declarativeNetRequestWithHostAccess " bieden dezelfde mogelijkheden. Het verschil zit hem in het moment waarop machtigingen worden aangevraagd of verleend.

"declarativeNetRequest"
Activeert een toestemmingswaarschuwing tijdens de installatie, maar biedt impliciete toegang tot de regels allow , allowAllRequests en block . Gebruik dit indien mogelijk om te voorkomen dat u volledige toegang tot hosts hoeft aan te vragen.
"declarativeNetRequestFeedback"
Schakelt foutopsporingsfuncties in voor uitgepakte extensies , met name getMatchedRules() en onRuleMatchedDebug .
"declarativeNetRequestWithHostAccess"
Er wordt geen toestemmingswaarschuwing weergegeven tijdens de installatie, maar u moet hostrechten aanvragen voordat u een actie op een host kunt uitvoeren. Dit is geschikt wanneer u declaratieve netaanvraagregels wilt gebruiken in een extensie die al hostrechten heeft, zonder extra waarschuwingen te genereren.

Beschikbaarheid

Chroom 84+

Manifest

Naast de eerder beschreven rechten vereisen bepaalde typen regelsets, met name statische regelsets, het declareren van de manifestsleutel "declarative_net_request" . Dit moet een woordenboek zijn met één sleutel genaamd "rule_resources" . Deze sleutel is een array met woordenboeken van het type Ruleset , zoals hieronder wordt getoond. (Merk op dat de naam 'Ruleset' niet voorkomt in de JSON van het manifest, omdat het slechts een array is.) Statische regelsets worden later in dit document uitgelegd.

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback"
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

Regels en regelsets

Om deze API te gebruiken, specificeert u een of meer regelsets. Een regelset bevat een reeks regels. Eén regel doet een van de volgende dingen:

  • Blokkeer een netwerkaanvraag.
  • Werk het schema bij (http naar https).
  • Voorkom dat een verzoek wordt geblokkeerd door alle overeenkomende geblokkeerde regels te negeren.
  • Een netwerkaanvraag omleiden.
  • Wijzig de aanvraag- of antwoordheaders.

Er zijn drie soorten regels, die op iets verschillende manieren worden beheerd.

Dynamisch
Blijven behouden tijdens browsersessies en extensie-upgrades en worden beheerd met behulp van JavaScript terwijl een extensie in gebruik is.
Sessie
Wordt gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd. Sessieregels worden beheerd met JavaScript terwijl een extensie in gebruik is.
Statisch
Verpakt, geïnstalleerd en bijgewerkt wanneer een extensie wordt geïnstalleerd of geüpgraded. Statische regels worden opgeslagen in JSON-geformatteerde regelbestanden en vermeld in het manifestbestand.

Dynamische en sessiegerichte regelsets

Dynamische en sessieregels worden beheerd met behulp van JavaScript terwijl een extensie in gebruik is.

  • Dynamische regels blijven behouden tijdens browsersessies en extensie-upgrades.
  • Sessieregels worden gewist wanneer de browser wordt afgesloten en wanneer een nieuwe versie van de extensie wordt geïnstalleerd.

Er is slechts één type regelset. Een extensie kan dynamisch regels toevoegen of verwijderen door updateDynamicRules() en updateSessionRules() aan te roepen, mits de regellimieten niet worden overschreden. Zie Regellimieten voor informatie over regellimieten . Een voorbeeld hiervan vindt u onder Codevoorbeelden .

Statische regelsets

In tegenstelling tot dynamische en sessieregels worden statische regels verpakt, geïnstalleerd en bijgewerkt wanneer een extensie wordt geïnstalleerd of geüpgraded. Ze worden opgeslagen in regelbestanden in JSON-formaat, die aan de extensie worden doorgegeven met behulp van de sleutels "declarative_net_request" en "rule_resources" , zoals hierboven beschreven , evenals een of meer Ruleset . Een Ruleset bevat een pad naar het regelbestand, een ID voor de regelset in het bestand en of de regelset is ingeschakeld of uitgeschakeld. De laatste twee zijn belangrijk wanneer u een regelset programmatisch in- of uitschakelt.

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

Om regelbestanden te testen, laadt u uw extensie uitgepakt . Fouten en waarschuwingen over ongeldige statische regels worden alleen weergegeven voor uitgepakte extensies. Ongeldige statische regels in ingepakte extensies worden genegeerd.

Versnelde beoordeling

Wijzigingen in statische regels komen mogelijk in aanmerking voor versnelde beoordeling. Zie 'Versnelde beoordeling' voor in aanmerking komende wijzigingen .

Statische regels en regelsets in- en uitschakelen

Zowel afzonderlijke statische regels als volledige statische regelsets kunnen tijdens runtime worden in- of uitgeschakeld.

De set ingeschakelde statische regels en regelsets blijft behouden tijdens browsersessies. Beide worden niet behouden tijdens extensie-updates. Dit betekent dat alleen de regels die u in uw regelbestanden hebt laten staan, beschikbaar zijn na een update.

Om prestatieredenen gelden er ook limieten voor het aantal regels en regelsets dat tegelijkertijd kan worden ingeschakeld. Roep getAvailableStaticRuleCount() aan om het aantal extra regels dat kan worden ingeschakeld te controleren. Zie Regellimieten voor informatie over regellimieten .

Om statische regels in of uit te schakelen, roept u updateStaticRules() aan. Deze methode gebruikt een UpdateStaticRulesOptions object, dat arrays met ID's bevat van regels die u wilt in- of uitschakelen. De ID's worden gedefinieerd met de sleutel "id" van het Ruleset woordenboek. Er geldt 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 om in of uit te schakelen. De ID's worden gedefinieerd met de sleutel "id" van het Ruleset -woordenboek.

Bouwregels

Ongeacht het type begint een regel met vier velden, zoals hieronder wordt getoond. Terwijl de sleutels "id" en "priority" een nummer hebben, kunnen de sleutels "action" en "condition" verschillende blokkerings- en omleidingsvoorwaarden bevatten. De volgende regel blokkeert alle scriptverzoeken van "foo.com" naar elke URL met "abc" als substring.

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

URL-matching

Met Declarative Net Request kunt u URL's matchen met behulp van patroonherkenning of reguliere expressies.

URL-filtersyntaxis

De "condition" -sleutel van een regel maakt een "urlFilter" -sleutel mogelijk voor URL's onder een bepaald domein. U maakt patronen met behulp van patroonmatching-tokens . Hier zijn een paar voorbeelden.

urlFilter Wedstrijden Komt niet overeen
"abc" https://abcd.com
https://example.com/abcd
https://ab.com
"abc*d" https://abcd.com
https://example.com/abcxyzd
https://abc.com
"||a.example.com" https://a.example.com/
https://baexample.com/xyz
https://a.voorbeeld.bedrijf
https://example.com/
"|https*" https://voorbeeld.com http://example.com/
http://https.com
"example*^123|" https://example.com/123
http://abc.com/example?123
https://example.com/1234
https://abc.com/example0123

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 op deze voorwaarden van toepassing zijn.

Schrijf goede URL-voorwaarden

Wees voorzichtig bij het schrijven van regels zodat deze altijd overeenkomen met een heel domein. Anders kan uw regel in onverwachte situaties overeenkomen. Bijvoorbeeld bij het gebruik van de patroonherkenningssyntaxis:

  • google.com komt onjuist overeen met https://example.com/?param=google.com
  • ||google.com komt onjuist overeen met https://google.company
  • https://www.google.com komt onjuist overeen met https://example.com/?param=https://www.google.com

Overweeg het volgende:

  • ||google.com/ , wat overeenkomt met alle paden en alle subdomeinen.
  • |https://www.google.com/ komt overeen 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.

Regelevaluatie

DNR-regels worden door de browser toegepast in verschillende fasen van de levenscyclus van een netwerkaanvraag.

Vóór het verzoek

Voordat een verzoek wordt gedaan, kan een extensie het blokkeren of omleiden (inclusief het upgraden van het schema van HTTP naar HTTPS) met een overeenkomende regel.

Voor elke extensie bepaalt de browser een lijst met overeenkomende regels. Regels met een modifyHeaders -actie worden hier niet opgenomen, omdat deze later worden verwerkt. Bovendien worden regels met een responseHeaders -voorwaarde later behandeld (wanneer responsheaders beschikbaar zijn) en niet opgenomen.

Vervolgens kiest Chrome voor elke extensie maximaal één kandidaat per aanvraag. Chrome vindt een overeenkomende regel door alle overeenkomende regels op prioriteit te sorteren. Regels met dezelfde prioriteit worden gesorteerd op actie ( allow ​​of allowAllRequests > block > upgradeScheme > redirect ).

Als de kandidaat een allow of allowAllRequests -regel is, of als het frame waarin de aanvraag wordt gedaan eerder overeenkwam met een allowAllRequests -regel van hogere of gelijke prioriteit van deze extensie, is de aanvraag 'toegestaan' en heeft de extensie geen effect op de aanvraag.

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 twee regels van hetzelfde type zijn, kiest Chrome de regel van de meest recent geïnstalleerde extensie.

Voordat de aanvraagheaders worden verzonden

Voordat Chrome aanvraagheaders naar de server stuurt, worden de headers bijgewerkt op basis van de overeenkomende modifyHeaders regels.

Binnen één extensie stelt Chrome de lijst met uit te voeren wijzigingen samen door alle overeenkomende modifyHeaders -regels te vinden. Net als voorheen worden alleen regels opgenomen die een hogere prioriteit hebben dan overeenkomende allow of allowAllRequests -regels.

Deze regels worden door Chrome in een volgorde toegepast, zodat regels van een recenter geïnstalleerde extensie altijd vóór regels van een oudere extensie worden beoordeeld. Bovendien worden regels met een hogere prioriteit van één extensie altijd vóór regels met een lagere prioriteit van dezelfde extensie toegepast. Dit geldt zelfs voor alle extensies:

  • Als een regel aan een header wordt toegevoegd, kunnen regels met een lagere prioriteit alleen aan die header worden toegevoegd. Instellen en verwijderen zijn niet toegestaan.
  • Als een regel een header instelt, kunnen alleen regels met een lagere prioriteit van dezelfde extensie aan die header worden toegevoegd. Andere wijzigingen zijn niet toegestaan.
  • Als een regel een header verwijdert, kunnen regels met een lagere prioriteit de header niet verder wijzigen.

Zodra een reactie is ontvangen

Zodra de responsheaders zijn ontvangen, evalueert Chrome de regels met een responseHeaders -voorwaarde.

Nadat deze regels zijn gesorteerd op action en priority en alle regels zijn uitgesloten die overbodig zijn door een overeenkomende allow of allowAllRequests -regel (dit gebeurt op dezelfde manier als de stappen in 'Vóór de aanvraag'), kan Chrome de aanvraag namens een extensie blokkeren of omleiden.

Houd er rekening mee dat als een aanvraag deze fase bereikt, de aanvraag al naar de server is verzonden en de server gegevens zoals de aanvraagbody heeft ontvangen. Een blokkerings- of omleidingsregel met een voorwaarde in de antwoordheaders wordt nog steeds uitgevoerd, maar kan de aanvraag niet daadwerkelijk blokkeren of omleiden.

In het geval van een blokkeringsregel wordt dit afgehandeld door de pagina die de aanvraag heeft ingediend en ontvangt deze een geblokkeerde reactie, waarna Chrome de aanvraag voortijdig beëindigt. In het geval van een omleidingsregel doet Chrome een nieuwe aanvraag naar de omgeleide URL. Controleer of dit gedrag voldoet aan de privacyvereisten voor uw extensie.

Als het verzoek niet wordt geblokkeerd of omgeleid, past Chrome alle modifyHeaders -regels toe. Het toepassen van wijzigingen op antwoordheaders werkt op dezelfde manier als beschreven in 'Voordat verzoekheaders worden verzonden'. Het toepassen van wijzigingen op verzoekheaders gebeurt niet, aangezien het verzoek al is ingediend.

Veilige regels

Veilige regels worden gedefinieerd als regels met de actie ' block , allow , allowAllRequests of upgradeScheme . Deze regels zijn onderworpen aan een verhoogd quotum voor dynamische regels.

Regellimieten

Het laden en evalueren van regels in de browser brengt prestatieoverhead met zich mee, dus er gelden enkele beperkingen bij het gebruik van de API. Deze beperkingen zijn afhankelijk van het type regel dat u gebruikt.

Statische regels

Statische regels zijn regels die zijn gespecificeerd in regelbestanden die in het manifestbestand zijn gedeclareerd. Een extensie kan maximaal 100 statische regelsets specificeren als onderdeel van de manifestsleutel "rule_resources" , maar er kunnen slechts 50 van deze regelsets tegelijk worden ingeschakeld. Dit laatste wordt de MAX_NUMBER_OF_ENABLED_STATIC_RULESETS genoemd. Gezamenlijk garanderen deze regelsets minimaal 30.000 regels. Dit wordt de GUARANTEED_MINIMUM_STATIC_RULES genoemd.

Het aantal regels dat daarna beschikbaar is, hangt af van hoeveel regels er zijn ingeschakeld door alle extensies die in de browser van een gebruiker zijn geïnstalleerd. U kunt dit aantal tijdens runtime vinden door getAvailableStaticRuleCount() aan te roepen. Een voorbeeld hiervan vindt u onder codevoorbeelden .

Sessieregels

Een extensie kan maximaal 5000 sessieregels hebben. Dit wordt weergegeven als MAX_NUMBER_OF_SESSION_RULES .

Vóór Chrome 120 gold een limiet van 5000 dynamische en sessieregels gecombineerd.

Dynamische regels

Een extensie kan minimaal 5000 dynamische regels hebben. Dit wordt weergegeven als MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

Vanaf Chrome 121 geldt een hogere limiet van 30.000 regels voor veilige dynamische regels, weergegeven als MAX_NUMBER_OF_DYNAMIC_RULES . Onveilige regels die binnen de limiet van 5000 worden toegevoegd, tellen ook mee voor deze limiet.

Vóór Chrome 120 gold een limiet van 5000 dynamische en sessieregels samen.

Regels die reguliere expressies gebruiken

Alle typen regels kunnen reguliere expressies gebruiken; het totale aantal reguliere expressieregels van elk type mag echter niet meer dan 1000 bedragen. Dit wordt MAX_NUMBER_OF_REGEX_RULES genoemd.

Bovendien moet elke regel na compilatie kleiner zijn dan 2 KB. Dit komt ongeveer overeen met de complexiteit van de regel. Als u een regel probeert te laden die deze limiet overschrijdt, ziet u een waarschuwing zoals 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 dienstverleners

Een declarativeNetRequest is alleen van toepassing op verzoeken die de netwerkstack bereiken. Dit omvat reacties van de HTTP-cache, maar mogelijk niet op reacties die de onfetch handler van een service worker passeren. DeclarativeNetRequest heeft geen invloed op reacties die door de service worker worden gegenereerd of uit CacheStorage worden opgehaald, maar wel op aanroepen van fetch() in een service worker.

Webtoegankelijke bronnen

Een declarativeNetRequest-regel kan niet omleiden van een openbare resourceaanvraag naar een resource die niet webtoegankelijk is. Dit veroorzaakt een fout. Dit geldt zelfs als de opgegeven webtoegankelijke resource eigendom is van de omleidende extensie. Gebruik de array "web_accessible_resources" in het manifest om resources voor declarativeNetRequest te declareren.

Koptekstwijziging

De toevoegingsbewerking wordt alleen ondersteund voor de volgende aanvraagheaders: 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 allowlist is hoofdlettergevoelig ( bug 449152902 ).

Bij het toevoegen aan een aanvraag- of antwoordheader gebruikt de browser waar mogelijk het juiste scheidingsteken.

Voorbeelden

Codevoorbeelden

Dynamische regels bijwerken

Het volgende voorbeeld laat zien hoe u updateDynamicRules() aanroept. De procedure voor updateSessionRules() is hetzelfde.

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

Statische regels bijwerken

Het volgende voorbeeld laat zien hoe u regelsets kunt in- en uitschakelen, rekening houdend met het aantal beschikbare en het maximale aantal ingeschakelde statische regelsets. U doet dit wanneer het aantal benodigde statische regels het toegestane aantal overschrijdt. Om dit te laten werken, moeten sommige van uw regelsets worden geïnstalleerd met enkele van uw regelsets uitgeschakeld (door "Enabled" in het manifestbestand op false te zetten).

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

Voorbeelden van regels

De volgende voorbeelden illustreren hoe Chrome regels in een extensie prioriteert. Wanneer u ze bekijkt, kunt u de prioriteringsregels in een apart venster openen.

De sleutel "prioriteit"

Voor deze voorbeelden is hosttoestemming voor *://*.example.com/* vereist.

Om de prioriteit van een bepaalde URL te bepalen, bekijkt u de (door de ontwikkelaar gedefinieerde) sleutel "priority" , de sleutel "action" en de sleutel "urlFilter" . Deze voorbeelden verwijzen naar het onderstaande voorbeeldregelbestand.

Navigatie naar https://google.com
Twee regels gelden voor deze URL: de regels met ID 1 en 4. Regel 1 is van toepassing omdat "block" een hogere prioriteit hebben dan "redirect" . De overige regels zijn niet van toepassing omdat ze voor langere URL's gelden.
Navigatie naar https://google.com/1234
Vanwege de langere URL komt de regel met ID 2 nu ook overeen met de regels met ID's 1 en 4. De regel met ID 2 is van toepassing omdat "allow" een hogere prioriteit heeft dan "block" en "redirect" .
Navigatie naar https://google.com/12345
Alle vier de regels komen overeen met deze URL. De regel met ID 3 is van toepassing omdat de door de ontwikkelaar gedefinieerde prioriteit de hoogste van de groep is.
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "||google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "||google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
  },
]

Omleidingen

Voor het onderstaande voorbeeld is hosttoestemming nodig voor *://*.example.com/* .

Het volgende voorbeeld laat zien hoe u een verzoek van example.com kunt doorsturen naar een pagina binnen de extensie zelf. Het extensiepad /a.jpg wordt omgezet naar chrome-extension://EXTENSION_ID/a.jpg , waarbij EXTENSION_ID de ID van uw extensie is. Om dit te laten werken, moet het manifest /a.jpg declareren als een webtoegankelijke bron .

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "||https://www.example.com/",
    "resourceTypes": ["main_frame"]
  }
}

Het volgende gebruikt de sleutel "transform" om door te verwijzen naar een subdomein van example.com. Het gebruikt een domeinnaamanker ("||") om verzoeken met elk schema van example.com te onderscheppen. De sleutel "scheme" in "transform" specificeert dat doorverwijzingen naar het subdomein altijd "https" gebruiken.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com/",
    "resourceTypes": ["main_frame"]
  }
}

In het volgende voorbeeld worden reguliere expressies gebruikt om om te leiden van https://www.abc.xyz.com/path naar https://abc.xyz.com/path . Let op hoe punten in de sleutel "regexFilter" worden weggelaten en dat de vastleggende groep "abc" of "def" selecteert. De sleutel "regexSubstitution" specificeert de eerste geretourneerde match van de reguliere expressie met behulp van "\1". In dit geval wordt "abc" uit de omgeleide URL vastgelegd en in de substitutie geplaatst.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

Kopteksten

In het volgende voorbeeld worden alle cookies uit zowel het hoofdframe als alle subframes verwijderd.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

Typen

DomainType

Dit beschrijft of het verzoek een eerste of derde partij is in het frame waarin het is ontstaan. Een verzoek wordt een eerste partij genoemd als het hetzelfde domein (eTLD+1) heeft als het frame waarin het verzoek is ontstaan.

Enum

"eerstePartij"
Het netwerkverzoek is de eerste partij in het frame waaruit het afkomstig is.

"derde partij"
Het netwerkverzoek is een derde partij ten opzichte van het frame waaruit het afkomstig is.

ExtensionActionOptions

Chroom 88+

Eigenschappen

  • weergaveActieAantalAlsBadgeTekst

    boolean optioneel

    Of het aantal acties voor een pagina automatisch moet worden weergegeven als badgetekst van de extensie. Deze voorkeur blijft behouden voor alle sessies.

  • tabbladUpdate
    Chroom 89+

    Details over hoe het aantal acties op het tabblad moet worden aangepast.

GetDisabledRuleIdsOptions

Chroom 111+

Eigenschappen

  • regelset-ID

    snaar

    De id die overeenkomt met een statische Ruleset .

GetRulesFilter

Chroom 111+

Eigenschappen

  • regel-ID's

    nummer[] optioneel

    Als dit is opgegeven, worden alleen regels met overeenkomende ID's opgenomen.

HeaderInfo

Chroom 128+

Eigenschappen

  • uitgeslotenwaarden

    string[] optioneel

    Indien opgegeven, wordt aan deze voorwaarde niet voldaan als de header bestaat, maar de waarde ervan ten minste één element in deze lijst bevat. Hierbij wordt dezelfde matchpatroonsyntaxis gebruikt als values ​​.

  • koptekst

    snaar

    De naam van de header. Deze voorwaarde komt alleen overeen met de naam als zowel values als excludedValues niet zijn opgegeven.

  • waarden

    string[] optioneel

    Indien opgegeven, komt deze voorwaarde overeen als de waarde van de header overeenkomt met ten minste één patroon in deze lijst. Dit ondersteunt hoofdletterongevoelige matching van headerwaarden en de volgende constructies:

    '*' : Komt overeen met een willekeurig aantal tekens.

    '?' : Komt overeen met nul of één teken.

    '*' en '?' kunnen worden geëscapete met een backslash, bijvoorbeeld '\*' en '\?'

HeaderOperation

Chroom 86+

Hierin worden de mogelijke bewerkingen voor een 'modifyHeaders'-regel beschreven.

Enum

"toevoegen"
Voegt een nieuwe vermelding toe voor de opgegeven header. Bij het wijzigen van de headers van een aanvraag wordt deze bewerking alleen ondersteund voor specifieke headers .

"set"
Stelt een nieuwe waarde in voor de opgegeven header en verwijdert alle bestaande headers met dezelfde naam.

"verwijderen"
Verwijdert alle vermeldingen voor de opgegeven header.

IsRegexSupportedResult

Chroom 87+

Eigenschappen

  • wordt ondersteund

    Booleaanse

  • reden

    Geeft de reden aan waarom de reguliere expressie niet wordt ondersteund. Alleen beschikbaar als isSupported de waarde false heeft.

MatchedRule

Eigenschappen

  • regel-ID

    nummer

    De ID van een overeenkomende regel.

  • regelset-ID

    snaar

    ID van de Ruleset waartoe deze regel behoort. Voor een regel die afkomstig is uit de set dynamische regels, is dit gelijk aan DYNAMIC_RULESET_ID .

MatchedRuleInfo

Eigenschappen

  • tabbladId

    nummer

    De tabID van het tabblad waarvan de aanvraag afkomstig is, als het tabblad nog actief is. Anders -1.

  • tijdstempel

    nummer

    Het tijdstip waarop de regel werd toegepast. Tijdstempels komen overeen met de Javascript-conventie voor tijden, d.w.z. het aantal milliseconden sinds het tijdperk.

MatchedRuleInfoDebug

Eigenschappen

MatchedRulesFilter

Eigenschappen

  • minTijdstempel

    nummer optioneel

    Als dit is opgegeven, worden alleen regels gevonden na het opgegeven tijdstempel.

  • tabbladId

    nummer optioneel

    Indien opgegeven, komt deze alleen overeen met regels voor het opgegeven tabblad. Indien ingesteld op -1, komt deze overeen met regels die niet aan een actief tabblad zijn gekoppeld.

ModifyHeaderInfo

Chroom 86+

Eigenschappen

  • koptekst

    snaar

    De naam van de header die moet worden gewijzigd.

  • operatie

    De bewerking die op een header moet worden uitgevoerd.

  • waarde

    string optioneel

    De nieuwe waarde voor de header. Moet worden opgegeven voor append en set .

QueryKeyValue

Eigenschappen

  • sleutel

    snaar

  • Alleenvervangen

    boolean optioneel

    Chroom 94+

    Indien true, wordt de querysleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. Standaardwaarde is false.

  • waarde

    snaar

QueryTransform

Eigenschappen

  • addOrReplaceParams

    QueryKeyValue [] optioneel

    De lijst met sleutel-waardeparen die moeten worden toegevoegd of vervangen.

  • verwijderParams

    string[] optioneel

    De lijst met querysleutels die moeten worden verwijderd.

Redirect

Eigenschappen

  • extensiePad

    string optioneel

    Pad relatief ten opzichte van de extensiedirectory. Moet beginnen met '/'.

  • regexSubstitutie

    string optioneel

    Substitutiepatroon voor regels die een regexFilter specificeren. De eerste match met regexFilter in de URL wordt vervangen door dit patroon. Binnen regexSubstitution kunnen backslash-escaped cijfers (\1 tot en met \9) worden gebruikt om de corresponderende capture-groepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst.

  • transformeren

    URLTransform optioneel

    Uit te voeren URL-transformaties.

  • url

    string optioneel

    De omleidings-URL. Omleidingen naar JavaScript-URL's zijn niet toegestaan.

RegexOptions

Chroom 87+

Eigenschappen

  • isCaseSensitive

    boolean optioneel

    Of de opgegeven regex hoofdlettergevoelig is. Standaard is dit true.

  • reguliere expressie

    snaar

    De reguliere expressie om te controleren.

  • vereisenCapturing

    boolean optioneel

    Of de opgegeven regex vastlegging vereist. Vastlegging is alleen vereist voor omleidingsregels die een regexSubstition -actie specificeren. De standaardwaarde is false.

RequestDetails

Eigenschappen

  • document-ID

    string optioneel

    Chroom 106+

    De unieke identificatie voor het document van het frame, als deze aanvraag voor een frame is.

  • documentlevenscyclus
    Chroom 106+

    De levenscyclus van het document van het frame, als deze aanvraag voor een frame is.

  • frame-ID

    nummer

    De waarde 0 geeft aan dat de aanvraag in het hoofdframe plaatsvindt; een positieve waarde geeft de ID aan van een subframe waarin de aanvraag plaatsvindt. Als het document van een (sub-)frame wordt geladen ( type is main_frame of sub_frame ), geeft frameId de ID van dit frame aan, niet de ID van het buitenste frame. Frame-ID's zijn uniek binnen een tabblad.

  • frameType

    FrameType optioneel

    Chroom 106+

    Het type frame, als dit verzoek om een ​​frame gaat.

  • initiatiefnemer

    string optioneel

    De oorsprong waar de aanvraag is gestart. Deze verandert niet door middel van redirects. Als dit een ondoorzichtige oorsprong is, wordt de string 'null' gebruikt.

  • methode

    snaar

    Standaard HTTP-methode.

  • ouderDocumentId

    string optioneel

    Chroom 106+

    De unieke identificatie voor het bovenliggende document van het frame, als deze aanvraag voor een frame is en een bovenliggend document heeft.

  • ouderFrameId

    nummer

    ID van het frame dat het frame omsluit dat de aanvraag heeft verzonden. Stel in op -1 als er geen bovenliggend frame bestaat.

  • aanvraag-ID

    snaar

    De ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie.

  • tabbladId

    nummer

    De ID van het tabblad waarop de aanvraag plaatsvindt. Stel in op -1 als de aanvraag niet aan een tabblad is gerelateerd.

  • Het resourcetype van de aanvraag.

  • url

    snaar

    De URL van het verzoek.

RequestMethod

Chroom 91+

Dit beschrijft de HTTP-aanvraagmethode van een netwerkaanvraag.

Enum

"verbinden"

"verwijderen"

"krijgen"

"hoofd"

"opties"

"lapje"

"na"

"neerzetten"

"ander"

ResourceType

Hiermee wordt het resourcetype van de netwerkaanvraag beschreven.

Enum

"hoofdframe"

"sub_frame"

"stijlblad"

"script"

"afbeelding"

"lettertype"

"voorwerp"

"xmlhttprequest"

"ping"

"csp_rapport"

"media"

"websocket"

"webtransport"

"webbundel"

"ander"

Rule

Eigenschappen

  • actie

    De actie die moet worden ondernomen als aan deze regel wordt voldaan.

  • voorwaarde

    De voorwaarde waaronder deze regel wordt geactiveerd.

  • id

    nummer

    Een id die een regel eenduidig ​​identificeert. Verplicht en moet >= 1 zijn.

  • prioriteit

    nummer optioneel

    Regelprioriteit. Standaardwaarde is 1. Indien opgegeven, moet dit >= 1 zijn.

RuleAction

Eigenschappen

  • omleiden

    Omleiden optioneel

    Beschrijft hoe de omleiding moet worden uitgevoerd. Alleen geldig voor omleidingsregels.

  • aanvraagheaders

    ModifyHeaderInfo [] optioneel

    Chroom 86+

    De aanvraagheaders die voor de aanvraag moeten worden gewijzigd. Alleen geldig als RuleActionType "modifyHeaders" is.

  • reactieHeaders

    ModifyHeaderInfo [] optioneel

    Chroom 86+

    De responsheaders die voor de aanvraag moeten worden gewijzigd. Alleen geldig als RuleActionType "modifyHeaders" is.

  • Het type actie dat moet worden uitgevoerd.

RuleActionType

Beschrijft het type actie dat moet worden ondernomen als een bepaalde RuleCondition overeenkomt.

Enum

"blok"
Blokkeer het netwerkverzoek.

"omleiden"
Stuur het netwerkverzoek om.

"toestaan"
Sta het netwerkverzoek toe. Het verzoek wordt niet onderschept als er een toestemmingsregel is die hieraan voldoet.

"upgradeSchema"
Werk het schema van de netwerkaanvraag-URL bij naar https als de aanvraag http of ftp is.

"modifyHeaders"
Wijzig de aanvraag-/antwoordheaders van het netwerkverzoek.

"AlleAanvragen Toestaan"
Sta alle verzoeken binnen een framehiërarchie toe, inclusief het frameverzoek zelf.

RuleCondition

Eigenschappen

  • domeinType

    DomainType optioneel

    Geeft aan of het netwerkverzoek een first-party of third-party-verzoek is voor het domein waarvan het afkomstig is. Als u dit weglaat, worden alle verzoeken geaccepteerd.

  • domeinen

    string[] optioneel

    Verouderd sinds Chrome 101

    Gebruik in plaats daarvan initiatorDomains

    De regel komt alleen overeen met netwerkverzoeken die afkomstig zijn uit de lijst met domains .

  • uitgesloten domeinen

    string[] optioneel

    Verouderd sinds Chrome 101

    Gebruik in plaats daarvan excludedInitiatorDomains

    De regel komt niet overeen met netwerkverzoeken die afkomstig zijn uit de lijst met excludedDomains .

  • uitgeslotenInitiatorDomeinen

    string[] optioneel

    Chroom 101+

    De regel komt niet overeen met netwerkverzoeken die afkomstig zijn van de lijst met excludedInitiatorDomains . Als de lijst leeg is of ontbreekt, worden geen domeinen uitgesloten. Dit heeft voorrang op initiatorDomains .

    Opmerkingen:

    • Subdomeinen zoals "a.example.com" zijn ook toegestaan.
    • De gegevens mogen alleen uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Dit komt overeen met de initiator van de aanvraag en niet met de URL van de aanvraag.
    • Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
  • uitgeslotenRequestDomains

    string[] optioneel

    Chroom 101+

    De regel komt niet overeen met netwerkverzoeken wanneer het domein overeenkomt met een domein uit de lijst met excludedRequestDomains . Als de lijst leeg is of ontbreekt, worden geen domeinen uitgesloten. Dit heeft voorrang op requestDomains .

    Opmerkingen:

    • Subdomeinen zoals "a.example.com" zijn ook toegestaan.
    • De gegevens mogen alleen uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
  • uitgeslotenAanvraagMethoden

    RequestMethod [] optioneel

    Chroom 91+

    Lijst met aanvraagmethoden waaraan de regel niet voldoet. Slechts één van de twee requestMethods of excludedRequestMethods mag worden opgegeven. Als geen van beide is opgegeven, komen alle aanvraagmethoden overeen.

  • uitgeslotenResourceTypes

    ResourceType [] optioneel

    Lijst met resourcetypen die niet overeenkomen met de regel. Slechts één van resourceTypes en excludedResourceTypes mag worden opgegeven. Als geen van beide wordt opgegeven, worden alle resourcetypen behalve "main_frame" geblokkeerd.

  • uitgeslotenResponseHeaders

    HeaderInfo [] optioneel

    Chroom 128+

    De regel komt niet overeen als de aanvraag overeenkomt met een van de voorwaarden in de responsheader in deze lijst (indien opgegeven). Als zowel excludedResponseHeaders als responseHeaders zijn opgegeven, heeft de eigenschap excludedResponseHeaders voorrang.

  • uitgeslotenTabIds

    nummer[] optioneel

    Chroom 92+

    Lijst met tabs.Tab.id waaraan de regel niet mag voldoen. Een ID van tabs.TAB_ID_NONE sluit verzoeken uit die niet afkomstig zijn van een tabblad. Alleen ondersteund voor sessiegerichte regels.

  • initiatordomeinen

    string[] optioneel

    Chroom 101+

    De regel komt alleen overeen met netwerkverzoeken die afkomstig zijn uit de lijst met initiatorDomains . Als de lijst wordt weggelaten, wordt de regel toegepast op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.

    Opmerkingen:

    • Subdomeinen zoals "a.example.com" zijn ook toegestaan.
    • De gegevens mogen alleen uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Dit komt overeen met de initiator van de aanvraag en niet met de URL van de aanvraag.
    • Subdomeinen van de vermelde domeinen worden ook gekoppeld.
  • isUrlFilterCaseSensitive

    boolean optioneel

    Of het urlFilter of regexFilter (afhankelijk van welke is opgegeven) hoofdlettergevoelig is. Standaard is dit false.

  • regexFilter

    string optioneel

    Reguliere expressie die overeenkomt met de netwerkaanvraag-URL. Dit volgt de RE2-syntaxis .

    Let op: Er kan slechts één van urlFilter of regexFilter worden opgegeven.

    Let op: Het regexFilter mag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een URL waarbij de host is gecodeerd in punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn gecodeerd in UTF-8.

  • aanvraagdomeinen

    string[] optioneel

    Chroom 101+

    De regel komt alleen overeen met netwerkverzoeken als het domein overeenkomt met een domein uit de lijst met requestDomains . Als de lijst wordt weggelaten, wordt de regel toegepast op verzoeken van alle domeinen. Een lege lijst is niet toegestaan.

    Opmerkingen:

    • Subdomeinen zoals "a.example.com" zijn ook toegestaan.
    • De gegevens mogen alleen uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Subdomeinen van de vermelde domeinen worden ook gekoppeld.
  • aanvraagmethoden

    RequestMethod [] optioneel

    Chroom 91+

    Lijst met HTTP-aanvraagmethoden waaraan de regel kan voldoen. Een lege lijst is niet toegestaan.

    Let op: Als u een requestMethods -regelvoorwaarde opgeeft, worden ook niet-HTTP(s)-aanvragen uitgesloten. Als u excludedRequestMethods opgeeft, gebeurt dit niet.

  • resourceTypes

    ResourceType [] optioneel

    Lijst met resourcetypen waarop de regel van toepassing is. Een lege lijst is niet toegestaan.

    Let op: dit moet worden opgegeven voor allowAllRequests -regels en mag alleen de resourcetypen sub_frame en main_frame bevatten.

  • reactieHeaders

    HeaderInfo [] optioneel

    Chroom 128+

    De regel komt overeen als de aanvraag overeenkomt met een van de antwoordheadervoorwaarden in deze lijst (indien opgegeven).

  • tabbladen

    nummer[] optioneel

    Chroom 92+

    Lijst met tabs.Tab.id waaraan de regel moet voldoen. De ID tabs.TAB_ID_NONE komt overeen met verzoeken die niet afkomstig zijn van een tab. Een lege lijst is niet toegestaan. Alleen ondersteund voor sessiegerichte regels.

  • urlFilter

    string optioneel

    Het patroon dat wordt vergeleken met de netwerkaanvraag-URL. Ondersteunde constructies:

    '*' : Joker: Komt overeen met een willekeurig aantal tekens.

    '|' : Linker-/rechteranker: Als dit aan het begin of einde van het patroon wordt gebruikt, wordt respectievelijk het begin/einde van de url opgegeven.

    '||' : Domeinnaamanker: Als dit aan het begin van het patroon wordt gebruikt, specificeert dit het begin van een (sub-)domein van de URL.

    '^' : Scheidingsteken: Dit komt overeen met alles behalve een letter, een cijfer of een van de volgende: _ , - . . of % . Dit komt ook overeen met het einde van de URL.

    Daarom bestaat urlFilter uit de volgende onderdelen: (optioneel linker-/domeinnaamanker) + patroon + (optioneel rechteranker).

    Indien weggelaten, worden alle URL's vergeleken. Een lege string is niet toegestaan.

    Een patroon dat begint met ||* is niet toegestaan. Gebruik in plaats daarvan * .

    Let op: Er kan slechts één van urlFilter of regexFilter worden opgegeven.

    Note: The urlFilter must be composed of only ASCII characters. This is matched against a url where the host is encoded in the punycode format (in case of internationalized domains) and any other non-ascii characters are url encoded in utf-8. For example, when the request url is http://abc.рф?q=ф, the urlFilter will be matched against the url http://abc.xn--p1ai/?q=%D1%84.

Ruleset

Eigenschappen

  • ingeschakeld

    Booleaanse

    Whether the ruleset is enabled by default.

  • id

    snaar

    A non-empty string uniquely identifying the ruleset. IDs beginning with '_' are reserved for internal use.

  • pad

    snaar

    The path of the JSON ruleset relative to the extension directory.

RulesMatchedDetails

Eigenschappen

TabActionCountUpdate

Chrome 89+

Eigenschappen

  • toename

    nummer

    The amount to increment the tab's action count by. Negative values will decrement the count.

  • tabId

    nummer

    The tab for which to update the action count.

TestMatchOutcomeResult

Chrome 103+

Eigenschappen

  • matchedRules

    The rules (if any) that match the hypothetical request.

TestMatchRequestDetails

Chrome 103+

Eigenschappen

  • initiatiefnemer

    string optioneel

    The initiator URL (if any) for the hypothetical request.

  • methode

    RequestMethod optional

    Standard HTTP method of the hypothetical request. Defaults to "get" for HTTP requests and is ignored for non-HTTP requests.

  • responseHeaders

    object optional

    Chrome 129+

    The headers provided by a hypothetical response if the request does not get blocked or redirected before it is sent. Represented as an object which maps a header name to a list of string values. If not specified, the hypothetical response would return empty response headers, which can match rules which match on the non-existence of headers. Eg {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • tabId

    number optional

    The ID of the tab in which the hypothetical request takes place. Does not need to correspond to a real tab ID. Default is -1, meaning that the request isn't related to a tab.

  • The resource type of the hypothetical request.

  • url

    snaar

    The URL of the hypothetical request.

UnsupportedRegexReason

Chrome 87+

Describes the reason why a given regular expression isn't supported.

Enum

"syntaxError"
The regular expression is syntactically incorrect, or uses features not available in the RE2 syntax .

"memoryLimitExceeded"
The regular expression exceeds the memory limit.

UpdateRuleOptions

Chrome 87+

Eigenschappen

  • addRules

    Rule [] optional

    Rules to add.

  • removeRuleIds

    number[] optional

    IDs of the rules to remove. Any invalid IDs will be ignored.

UpdateRulesetOptions

Chrome 87+

Eigenschappen

  • disableRulesetIds

    string[] optioneel

    The set of ids corresponding to a static Ruleset that should be disabled.

  • enableRulesetIds

    string[] optioneel

    The set of ids corresponding to a static Ruleset that should be enabled.

UpdateStaticRulesOptions

Chrome 111+

Eigenschappen

  • disableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to disable.

  • enableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to enable.

  • rulesetId

    snaar

    The id corresponding to a static Ruleset .

URLTransform

Eigenschappen

  • fragment

    string optioneel

    The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'.

  • gastheer

    string optioneel

    The new host for the request.

  • wachtwoord

    string optioneel

    The new password for the request.

  • pad

    string optioneel

    The new path for the request. If empty, the existing path is cleared.

  • haven

    string optioneel

    The new port for the request. If empty, the existing port is cleared.

  • vraag

    string optioneel

    The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'.

  • queryTransform

    QueryTransform optional

    Add, remove or replace query key-value pairs.

  • scheme

    string optioneel

    The new scheme for the request. Allowed values are "http", "https", "ftp" and "chrome-extension".

  • gebruikersnaam

    string optioneel

    The new username for the request.

Eigenschappen

DYNAMIC_RULESET_ID

Ruleset ID for the dynamic rules added by the extension.

Waarde

"_dynamisch"

GETMATCHEDRULES_QUOTA_INTERVAL

Time interval within which MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules calls can be made, specified in minutes. Additional calls will fail immediately and set runtime.lastError . Note: getMatchedRules calls associated with a user gesture are exempt from the quota.

Waarde

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89+

The minimum number of static rules guaranteed to an extension across its enabled static rulesets. Any rules above this limit will count towards the global static rule limit .

Waarde

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

The number of times getMatchedRules can be called within a period of GETMATCHEDRULES_QUOTA_INTERVAL .

Waarde

20

MAX_NUMBER_OF_DYNAMIC_RULES

The maximum number of dynamic rules that an extension can add.

Waarde

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94+

The maximum number of static Rulesets an extension can enable at any one time.

Waarde

50

MAX_NUMBER_OF_REGEX_RULES

The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of dynamic rules and those specified in the rule resources file.

Waarde

1000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120+

The maximum number of session scoped rules that an extension can add.

Waarde

5000

MAX_NUMBER_OF_STATIC_RULESETS

The maximum number of static Rulesets an extension can specify as part of the "rule_resources" manifest key.

Waarde

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120+

The maximum number of "unsafe" dynamic rules that an extension can add.

Waarde

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120+

The maximum number of "unsafe" session scoped rules that an extension can add.

Waarde

5000

SESSION_RULESET_ID

Chrome 90+

Ruleset ID for the session-scoped rules added by the extension.

Waarde

"_sessie"

Methoden

getAvailableStaticRuleCount()

Chrome 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>

Returns the number of static rules an extension can enable before the global static rule limit is reached.

Retourneren

  • Promise<number>

    Chrome 91+

getDisabledRuleIds()

Chrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
)
: Promise<number[]>

Returns the list of static rules in the given Ruleset that are currently disabled.

Parameters

Retourneren

  • Promise<number[]>

getDynamicRules()

chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
)
: Promise<Rule[]>

Returns the current set of dynamic rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .

Parameters

  • filter

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

Retourneren

  • Promise< Rule []>

    Chrome 91+

getEnabledRulesets()

chrome.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>

Returns the ids for the current set of enabled static rulesets.

Retourneren

  • Promise<string[]>

    Chrome 91+

getMatchedRules()

chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
)
: Promise<RulesMatchedDetails>

Returns all rules matched for the extension. Callers can optionally filter the list of matched rules by specifying a filter . This method is only available to extensions with the "declarativeNetRequestFeedback" permission or having the "activeTab" permission granted for the tabId specified in filter . Note: Rules not associated with an active document that were matched more than five minutes ago will not be returned.

Parameters

Retourneren

getSessionRules()

Chrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
)
: Promise<Rule[]>

Returns the current set of session scoped rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .

Parameters

  • filter

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

Retourneren

  • Promise< Rule []>

    Chrome 91+

isRegexSupported()

Chrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
)
: Promise<IsRegexSupportedResult>

Checks if the given regular expression will be supported as a regexFilter rule condition.

Parameters

  • regexOptions

    The regular expression to check.

Retourneren

setExtensionActionOptions()

Chrome 88+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
)
: Promise<void>

Configures if the action count for tabs should be displayed as the extension action's badge text and provides a way for that action count to be incremented.

Parameters

Retourneren

  • Promise<void>

    Chrome 91+

testMatchOutcome()

Chrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
)
: Promise<TestMatchOutcomeResult>

Checks if any of the extension's declarativeNetRequest rules would match a hypothetical request. Note: Only available for unpacked extensions as this is only intended to be used during extension development.

Parameters

Retourneren

updateDynamicRules()

chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
)
: Promise<void>

Modifies the current set of dynamic rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:

  • This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
  • These rules are persisted across browser sessions and across extension updates.
  • Static rules specified as part of the extension package can not be removed using this function.
  • MAX_NUMBER_OF_DYNAMIC_RULES is the maximum number of dynamic rules an extension can add. The number of unsafe rules must not exceed MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

Parameters

Retourneren

  • Promise<void>

    Chrome 91+

updateEnabledRulesets()

chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
)
: Promise<void>

Updates the set of enabled static rulesets for the extension. The rulesets with IDs listed in options.disableRulesetIds are first removed, and then the rulesets listed in options.enableRulesetIds are added. Note that the set of enabled static rulesets is persisted across sessions but not across extension updates, ie the rule_resources manifest key will determine the set of enabled static rulesets on each extension update.

Parameters

Retourneren

  • Promise<void>

    Chrome 91+

updateSessionRules()

Chrome 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
)
: Promise<void>

Modifies the current set of session scoped rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:

  • This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
  • These rules are not persisted across sessions and are backed in memory.
  • MAX_NUMBER_OF_SESSION_RULES is the maximum number of session rules an extension can add.

Parameters

Retourneren

  • Promise<void>

    Chrome 91+

updateStaticRules()

Chrome 111+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
)
: Promise<void>

Disables and enables individual static rules in a Ruleset . Changes to rules belonging to a disabled Ruleset will take effect the next time that it becomes enabled.

Parameters

Retourneren

  • Promise<void>

Evenementen

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

Fired when a rule is matched with a request. Only available for unpacked extensions with the "declarativeNetRequestFeedback" permission as this is intended to be used for debugging purposes only.

Parameters