chrome.declarativeNetRequest

Beschrijving

De chrome.declarativeNetRequest API wordt gebruikt om netwerkverzoeken te blokkeren of te wijzigen door declaratieve regels op te geven. Hierdoor kunnen extensies netwerkverzoeken wijzigen zonder deze te onderscheppen en de inhoud ervan te bekijken, waardoor meer privacy wordt geboden.

Machtigingen

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

Beschikbaarheid

Chroom 84+

Manifest

Naast de hierboven beschreven machtigingen vereisen bepaalde typen regelsets, met name statische regelsets, het declareren van de manifestsleutel "declarative_net_request" , die een woordenboek moet zijn met een enkele sleutel genaamd "rule_resources" . Deze sleutel is een array met woordenboeken van het type Ruleset , zoals hieronder weergegeven. (Merk op dat de naam 'Regelset' niet voorkomt in de JSON van het manifest, aangezien het slechts een array is.) Statische regelsets worden verderop in dit document uitgelegd.

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

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

Concepten en gebruik

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

  • Een netwerkverzoek blokkeren.
  • Upgrade het schema (http naar https).
  • Voorkom dat een verzoek wordt geblokkeerd door overeenkomende geblokkeerde regels te negeren.
  • Een netwerkverzoek omleiden.
  • Wijzig de headers van verzoeken of antwoorden.

Er zijn drie soorten regelsets, die op enigszins verschillende manieren worden beheerd.

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

In de volgende paragrafen worden de typen regelsets in detail uitgelegd.

Dynamische en sessiegerichte regelsets

Dynamische regels en sessieregelsets worden beheerd met JavaScript terwijl een extensie in gebruik is.

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

Er is slechts één van deze typen regelsets. Een extensie kan er dynamisch regels aan toevoegen of verwijderen door updateDynamicRules() en updateSessionRules() aan te roepen, op voorwaarde dat de regellimieten niet worden overschreden. Zie Regellimieten voor informatie over regellimieten. Een voorbeeld hiervan kun je zien onder codevoorbeelden .

Statische regelsets

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

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

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

Statische regels en regelsets in- en uitschakelen

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

De set ingeschakelde statische regels en regelsets blijft behouden in alle browsersessies. Geen van beide blijft behouden bij extensie-updates, wat betekent dat alleen de regels die u in uw regelbestanden hebt gelaten, na een update beschikbaar zijn.

Om prestatieredenen zijn er ook beperkingen aan het aantal regels en regelsets dat tegelijk kan worden ingeschakeld. Roep getAvailableStaticRuleCount() aan om het aantal aanvullende regels te controleren dat mogelijk is ingeschakeld. Zie Regellimieten voor informatie over regellimieten.

Om statische regels in of uit te schakelen, roept u updateStaticRules() aan. Deze methode gebruikt een UpdateStaticRulesOptions object, dat arrays met ID's van regels bevat die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de "id" -sleutel van het Ruleset -woordenboek.

Om statische regelsets in of uit te schakelen, roept u updateEnabledRulesets() aan. Deze methode gebruikt een UpdateRulesetOptions object, dat arrays met ID's van regelsets bevat die moeten worden in- of uitgeschakeld. De ID's worden gedefinieerd met behulp van de "id" -sleutel van het Ruleset -woordenboek.

Regels bouwen

Ongeacht het type begint een regel met vier velden, zoals hieronder weergegeven. Terwijl de "id" en "priority" -sleutels een getal hebben, kunnen de "action" en "condition" -sleutels verschillende blokkeer- en omleidingsvoorwaarden bieden. De volgende regel blokkeert alle scriptverzoeken die afkomstig zijn van "foo.com" naar elke URL met "abc" als subtekenreeks.

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

urlFilter overeenkomende tekens

Met de "condition" sleutel van een regel kan een "urlFilter" sleutel worden toegepast op URL's onder een opgegeven domein. U maakt patronen met behulp van patroonherkenningstokens . Hieronder vindt u enkele voorbeelden.

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

Prioriteit van regels

Regels worden geactiveerd door verzoeken die vanaf webpagina's worden verzonden. Als meerdere regels overeenkomen met een bepaald verzoek, moeten de regels prioriteit krijgen. In dit gedeelte wordt uitgelegd hoe deze prioriteit krijgen. Prioritering gebeurt in twee fasen.

  1. Aan regels binnen een extensie wordt prioriteit bepaald.
  2. Als meer dan één extensie een regel op een verzoek kan toepassen, wordt de prioriteit bepaald voor alle extensies die overeenkomen met een bepaald verzoek.

Overweeg om op deze manier te matchen: welke regel dan ook die aan een bepaalde extensie prioriteit geeft, krijgt dan prioriteit ten opzichte van regels van andere extensies.

Regelprioriteit binnen een extensie

Binnen één extensie wordt de prioritering uitgewerkt volgens het volgende proces:

  1. De regel met de hoogste door de ontwikkelaar gedefinieerde prioriteit (met andere woorden: het veld "priority" ) wordt geretourneerd.
  2. Als er meer dan één regel is met de hoogste door de ontwikkelaar gedefinieerde prioriteit, krijgen de regels prioriteit via het veld "action" , in de volgende volgorde:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. Als het actietype niet block or redirect is, worden alle overeenkomende modifyHeaders -regels geëvalueerd. Houd er rekening mee dat als er regels zijn met een door de ontwikkelaar gedefinieerde prioriteit die lager is dan de prioriteit die is opgegeven voor allow en allowAllRequests , dergelijke regels worden genegeerd.

  4. Als meerdere regels dezelfde header wijzigen, wordt de wijziging bepaald door het door de ontwikkelaar gedefinieerde veld "priority" en door de opgegeven bewerkingen.

    • Als een regel aan een koptekst wordt toegevoegd, kunnen regels met een lagere prioriteit alleen aan die koptekst worden toegevoegd. Instel- en verwijderbewerkingen zijn niet toegestaan.
    • Als een regel een koptekst instelt, kunnen regels met een lagere prioriteit alleen aan die koptekst worden toegevoegd. Andere wijzigingen zijn niet toegestaan.
    • Als een regel een koptekst verwijdert, kunnen regels met een lagere prioriteit de koptekst niet verder wijzigen.

Regelprioriteit tussen extensies

Als slechts één extensie een regel heeft die overeenkomt met een verzoek, wordt die regel toegepast. Maar als er meer dan één extensie overeenkomt met een verzoek, wordt het volgende proces gebruikt:

  1. Regels krijgen prioriteit via het veld "action" , in de volgende volgorde:

    1. block
    2. redirect of upgradeScheme
    3. allow of allowAllRequests
  2. Als er meer dan één regel overeenkomt, krijgt de meest recent geïnstalleerde extensie voorrang.

Regellimieten

Er is prestatieoverhead verbonden aan het laden en evalueren van regels in de browser, dus er zijn enkele limieten van toepassing bij het gebruik van de API. Limieten zijn afhankelijk van het type regel dat u gebruikt.

Statische regels

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

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

Dynamische en sessieregels

De limieten die worden toegepast op dynamische regels en sessieregels zijn eenvoudiger dan statische regels. Het totale aantal van beide kan niet groter zijn dan 5000. Dit wordt de MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES genoemd.

Regels die regex gebruiken

Alle soorten regels kunnen reguliere expressies gebruiken; het totale aantal regex-regels van elk type kan echter niet groter zijn dan 1000. Dit wordt de MAX_NUMBER_OF_REGEX_RULES genoemd.

Bovendien moet elke regel minder dan 2 KB groot zijn nadat deze is gecompileerd. Dit komt grofweg overeen met de complexiteit van de regel. Als u een regel probeert te laden die deze limiet overschrijdt, ziet u een waarschuwing zoals hieronder en wordt de regel genegeerd.

rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.

Interacties met servicemedewerkers

Een declarativeNetRequest is alleen van toepassing op verzoeken die de netwerkstack bereiken. Dit omvat reacties uit de HTTP-cache, maar mogelijk geen reacties die via de onfetch handler van een servicemedewerker gaan. declarativeNetRequest heeft geen invloed op de antwoorden die zijn gegenereerd door de servicewerknemer of opgehaald uit CacheStorage , maar wel op de aanroepen van fetch() die in een servicewerknemer zijn gedaan.

Webtoegankelijke bronnen

Een declarativeNetRequest-regel kan niet omleiden van een openbare bronaanvraag naar een bron die niet via internet toegankelijk is. Als u dit wel doet, wordt er een fout geactiveerd. Dit geldt zelfs als de opgegeven webtoegankelijke bron eigendom is van de omleidingsextensie. Om bronnen voor declarativeNetRequest te declareren, gebruikt u de array "web_accessible_resources" van het manifest.

Voorbeelden

Codevoorbeelden

Dynamische regels bijwerken

In het volgende voorbeeld ziet u hoe u updateDynamicRules() aanroept. De procedure voor updateSessionRules() is hetzelfde.

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

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

Update statische regelsets

In het volgende voorbeeld ziet u hoe u regelsets in- en uitschakelt, waarbij rekening wordt gehouden met het aantal beschikbare en het maximale aantal ingeschakelde statische regelsets. U doet dit als het aantal statische regels dat u nodig heeft het toegestane aantal overschrijdt. Om dit te laten werken, moeten sommige van uw regelsets worden geïnstalleerd terwijl sommige van uw regelsets zijn uitgeschakeld (in het manifestbestand staat "Enabled" op false ).

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

Regel voorbeelden

De onderstaande voorbeelden laten zien hoe Chrome prioriteit geeft aan regels in een extensie. Wanneer u ze bekijkt, wilt u wellicht de prioriteitsregels in een apart venster openen.

De "prioriteit"-toets

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

Om de prioriteit van een bepaalde URL te bepalen, kijkt u naar de (door de ontwikkelaar gedefinieerde) "priority" -sleutel, de "action" -sleutel en de "urlFilter" -sleutel. Deze voorbeelden verwijzen naar het voorbeeldregelbestand dat eronder wordt weergegeven.

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

Omleidingen

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

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

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

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

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

In het volgende voorbeeld worden reguliere expressies gebruikt om om te leiden van https://www.abc.xyz.com/path naar https://abc.xyz.com/path . In de "regexFilter" -sleutel ziet u hoe punten worden geëscaped en dat de vastleggende groep "abc" of "def" selecteert. De sleutel "regexSubstitution" specificeert de eerste geretourneerde overeenkomst van de reguliere expressie met behulp van "\1". In dit geval wordt "abc" opgehaald uit de omgeleide URL en in de vervanging geplaatst.

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

Kopteksten

In het volgende voorbeeld worden alle cookies verwijderd van zowel een hoofdframe als eventuele subframes.

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

Soorten

DomainType

Dit beschrijft of het verzoek de eerste of derde partij is van het frame waaruit het afkomstig is. Er wordt gesproken van een verzoek van de eerste partij als het hetzelfde domein (eTLD+1) heeft als het frame waaruit het verzoek afkomstig is.

Enum

"eerstepartij"
Het netwerkverzoek is de eerste partij bij het frame waaruit het afkomstig is.

"derde partij"
Het netwerkverzoek is een derde partij in het frame waaruit het afkomstig is.

ExtensionActionOptions

Chroom 88+

Eigenschappen

  • displayActionCountAsBadgeText

    Booleaans optioneel

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

  • tabbladBijwerken
    Chroom 89+

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

GetDisabledRuleIdsOptions

Chroom 111+

Eigenschappen

  • regelsetId

    snaar

    De id die overeenkomt met een statische Ruleset .

GetRulesFilter

Chroom 111+

Eigenschappen

  • regelIds

    nummer[] optioneel

    Indien opgegeven, worden alleen regels met overeenkomende ID's opgenomen.

HeaderInfo

Chroom 128+

Eigenschappen

  • uitgeslotenWaarden

    tekenreeks[] optioneel

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

  • koptekst

    snaar

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

  • waarden

    tekenreeks[] optioneel

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

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

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

    '*' En '?' kan worden geëscaped met een backslash, bijvoorbeeld '\*' en '\?'

HeaderOperation

Chroom 86+

Dit beschrijft de mogelijke bewerkingen voor een "modifyHeaders"-regel.

Enum

"toevoegen"
Voegt een nieuw item toe voor de opgegeven koptekst. Deze bewerking wordt niet ondersteund voor aanvraagheaders.

"set"
Stelt een nieuwe waarde in voor de opgegeven header, waarbij alle bestaande headers met dezelfde naam worden verwijderd.

"verwijderen"
Verwijdert alle vermeldingen voor de opgegeven koptekst.

IsRegexSupportedResult

Chroom 87+

Eigenschappen

  • wordt ondersteund

    Booleaans

  • Specificeert de reden waarom de reguliere expressie niet wordt ondersteund. Alleen opgegeven als isSupported false is.

MatchedRule

Eigenschappen

  • regelId

    nummer

    De ID van een overeenkomende regel.

  • regelsetId

    snaar

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

MatchedRuleInfo

Eigenschappen

  • regel
  • tabId

    nummer

    De tabId van het tabblad waarvan het verzoek afkomstig is als het tabblad nog actief is. Anders -1.

  • tijdstempel

    nummer

    Het tijdstip waarop de regel werd toegepast. Tijdstempels komen overeen met de Javascript-conventie voor tijden, dat wil zeggen het aantal milliseconden sinds het tijdperk.

MatchedRuleInfoDebug

Eigenschappen

MatchedRulesFilter

Eigenschappen

  • minTijdstempel

    nummer optioneel

    Indien opgegeven, komt het alleen overeen met regels na het opgegeven tijdstempel.

  • tabId

    nummer optioneel

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

ModifyHeaderInfo

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

    tekenreeks optioneel

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

QueryKeyValue

Eigenschappen

  • sleutel

    snaar

  • vervangAlleen

    Booleaans optioneel

    Chroom 94+

    Indien waar, wordt de querysleutel alleen vervangen als deze al aanwezig is. Anders wordt de sleutel ook toegevoegd als deze ontbreekt. Standaard ingesteld op false.

  • waarde

    snaar

QueryTransform

Eigenschappen

  • addOrReplaceParams

    QueryKeyValue [] optioneel

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

  • verwijderParams

    tekenreeks[] optioneel

    De lijst met querysleutels die moeten worden verwijderd.

Redirect

Eigenschappen

  • extensiePad

    tekenreeks optioneel

    Pad relatief aan de extensiemap. Moet beginnen met '/'.

  • regexSubstitutie

    tekenreeks optioneel

    Vervangingspatroon voor regels die een regexFilter specificeren. De eerste overeenkomst van regexFilter binnen de url wordt vervangen door dit patroon. Binnen regexSubstitution kunnen cijfers met een backslash-escape (\1 tot en met \9) worden gebruikt om de overeenkomstige capture-groepen in te voegen. \0 verwijst naar de volledige overeenkomende tekst.

  • transformeren

    URLTransform optioneel

    URL-transformaties die moeten worden uitgevoerd.

  • URL

    tekenreeks optioneel

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

RegexOptions

Chroom 87+

Eigenschappen

  • is hoofdlettergevoelig

    Booleaans optioneel

    Of de opgegeven regex hoofdlettergevoelig is. Standaard is waar.

  • regex

    snaar

    De reguliere expresson om te controleren.

  • vereisenCapturing

    Booleaans optioneel

    Of de opgegeven regex vastlegging vereist. Vastleggen is alleen vereist voor omleidingsregels die een actie regexSubstition specificeren. De standaardwaarde is onwaar.

RequestDetails

Eigenschappen

  • documentId

    tekenreeks optioneel

    Chroom 106+

    De unieke identificatie voor het framedocument, als dit verzoek om een ​​frame gaat.

  • documentLevenscyclus
    Chroom 106+

    De levenscyclus van het framedocument, als dit verzoek om een ​​frame gaat.

  • frameId

    nummer

    De waarde 0 geeft aan dat het verzoek in het hoofdframe plaatsvindt; een positieve waarde geeft de ID aan van een subframe waarin het verzoek plaatsvindt. Als het document van een (sub-)frame wordt geladen ( type 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

    tekenreeks optioneel

    De oorsprong waar het verzoek is geïnitieerd. Dit verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de string 'null' gebruikt.

  • methode

    snaar

    Standaard HTTP-methode.

  • parentDocumentId

    tekenreeks optioneel

    Chroom 106+

    De unieke identificatie voor het bovenliggende document van het frame, als dit verzoek voor een frame geldt en een bovenliggend document heeft.

  • ouderFrameId

    nummer

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

  • verzoekID

    snaar

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

  • tabId

    nummer

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

  • Het resourcetype van de aanvraag.

  • URL

    snaar

    De URL van het verzoek.

RequestMethod

Chroom 91+

Dit beschrijft de HTTP-verzoekmethode van een netwerkverzoek.

Enum

"verbinden"

"verwijderen"

"krijgen"

"hoofd"

"opties"

"lapje"

"na"

"neerzetten"

"ander"

ResourceType

Dit beschrijft het brontype van het netwerkverzoek.

Enum

"hoofdframe"

"subframe"

"stijlblad"

"script"

"afbeelding"

"lettertype"

"voorwerp"

"xmlhttpverzoek"

"ping"

"csp_rapport"

"media"

"websocket"

"webtransport"

"webbundel"

"ander"

Rule

Eigenschappen

  • actie

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

  • voorwaarde

    De voorwaarde waaronder deze regel wordt geactiveerd.

  • Identiteitskaart

    nummer

    Een ID die een regel op unieke wijze identificeert. Verplicht en moet >= 1 zijn.

  • prioriteit

    nummer optioneel

    Regelprioriteit. Standaard ingesteld op 1. Indien opgegeven, moet dit >= 1 zijn.

RuleAction

Eigenschappen

  • omleiden

    Omleiden optioneel

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

  • verzoekHeaders

    ModifyHeaderInfo [] optioneel

    Chroom 86+

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

  • reactieHeaders

    ModifyHeaderInfo [] optioneel

    Chroom 86+

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

  • Het type actie dat moet worden uitgevoerd.

RuleActionType

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

Enum

"blok"
Blokkeer het netwerkverzoek.

"doorsturen"
Leid het netwerkverzoek om.

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

"upgradeschema"
Upgrade het schema van de netwerkverzoek-URL naar https als het verzoek http of ftp is.

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

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

RuleCondition

Eigenschappen

  • domeinType

    Domeintype optioneel

    Geeft aan of het netwerkverzoek afkomstig is van de eerste of derde partij van het domein waarvan het afkomstig is. Indien dit wordt weggelaten, worden alle verzoeken geaccepteerd.

  • domeinen

    tekenreeks[] optioneel

    Verouderd sinds Chrome 101

    Gebruik in plaats daarvan initiatorDomains

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

  • uitgesloten domeinen

    tekenreeks[] 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 .

  • uitgeslotenInitiatorDomains

    tekenreeks[] optioneel

    Chroom 101+

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

    Opmerkingen:

    • Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
    • De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Dit komt overeen met de verzoekinitiator en niet met de verzoek-URL.
    • Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
  • uitgeslotenRequestDomains

    tekenreeks[] optioneel

    Chroom 101+

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

    Opmerkingen:

    • Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
    • De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Subdomeinen van de genoemde domeinen zijn eveneens uitgesloten.
  • uitgeslotenRequestMethods

    RequestMethod [] optioneel

    Chroom 91+

    Lijst met aanvraagmethoden waarbij de regel niet overeenkomt. Er mag slechts één van requestMethods en excludedRequestMethods worden opgegeven. Als geen van beide is opgegeven, komen alle aanvraagmethoden overeen.

  • uitgeslotenResourceTypes

    ResourceType [] optioneel

    Lijst met resourcetypen waarvoor de regel niet overeenkomt. Er mag slechts één van resourceTypes en excludedResourceTypes worden opgegeven. Als geen van beide is opgegeven, worden alle resourcetypen behalve 'main_frame' geblokkeerd.

  • uitgeslotenResponseHeaders

    HeaderInfo [] optioneel

    Chroom 128+

    Regel komt niet overeen als het verzoek overeenkomt met een voorwaarde van de antwoordheader in deze lijst (indien opgegeven). Als zowel excludedResponseHeaders 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.

  • initiatorDomains

    tekenreeks[] optioneel

    Chroom 101+

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

    Opmerkingen:

    • Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
    • De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Dit komt overeen met de verzoekinitiator en niet met de verzoek-URL.
    • Subdomeinen van de genoemde domeinen worden ook gematcht.
  • isUrlFilterCaseSensitive

    Booleaans optioneel

    Of het urlFilter of regexFilter (welke dan ook is opgegeven) hoofdlettergevoelig is. Standaard is onwaar.

  • regexFilter

    tekenreeks optioneel

    Reguliere expressie die moet overeenkomen met de URL van het netwerkverzoek. Dit volgt de RE2-syntaxis .

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

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

  • aanvraagDomeinen

    tekenreeks[] optioneel

    Chroom 101+

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

    Opmerkingen:

    • Subdomeinen zoals 'a.example.com' zijn ook toegestaan.
    • De vermeldingen mogen uitsluitend uit ASCII-tekens bestaan.
    • Gebruik punycode-codering voor geïnternationaliseerde domeinen.
    • Subdomeinen van de genoemde domeinen worden ook gematcht.
  • aanvraagmethoden

    RequestMethod [] optioneel

    Chroom 91+

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

    Opmerking: Door een requestMethods -regelvoorwaarde op te geven, worden ook niet-HTTP(s)-aanvragen uitgesloten, terwijl het opgeven van excludedRequestMethods dat niet doet.

  • resourcetypen

    ResourceType [] optioneel

    Lijst met resourcetypen waaraan de regel kan voldoen. Een lege lijst is niet toegestaan.

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

  • reactieHeaders

    HeaderInfo [] optioneel

    Chroom 128+

    Regel komt overeen als het verzoek overeenkomt met een voorwaarde van de antwoordheader in deze lijst (indien opgegeven).

  • tabbladID's

    nummer[] optioneel

    Chroom 92+

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

  • urlFilter

    tekenreeks optioneel

    Het patroon dat overeenkomt met de netwerkverzoek-URL. Ondersteunde constructies:

    '*' : Wildcard: komt overeen met een willekeurig aantal tekens.

    '|' : Links/rechts anker: Indien gebruikt aan een van beide uiteinden van het patroon, specificeert het respectievelijk het begin/einde van de URL.

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

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

    Daarom bestaat urlFilter uit de volgende onderdelen: (optioneel anker links/domeinnaam) + patroon + (optioneel anker rechts).

    Als u dit weglaat, komen alle URL's overeen. Een lege string is niet toegestaan.

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

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

    Opmerking: het urlFilter mag alleen uit ASCII-tekens bestaan. Dit wordt vergeleken met een url waarbij de host is gecodeerd in het punycode-formaat (in het geval van geïnternationaliseerde domeinen) en alle andere niet-ASCII-tekens zijn url-gecodeerd in utf-8. Als de verzoek-URL bijvoorbeeld http://abc.рф?q=ф is, wordt het urlFilter vergeleken met de URL http://abc.xn--p1ai/?q=%D1%84.

Ruleset

Eigenschappen

  • ingeschakeld

    Booleaans

    Of de regelset standaard is ingeschakeld.

  • Identiteitskaart

    snaar

    Een niet-lege tekenreeks die de regelset op unieke wijze identificeert. ID's die beginnen met '_' zijn gereserveerd voor intern gebruik.

  • pad

    snaar

    Het pad van de JSON-regelset ten opzichte van de extensiemap.

RulesMatchedDetails

Eigenschappen

  • regelsMatchedInfo

    Regels die overeenkomen met het opgegeven filter.

TabActionCountUpdate

Chroom 89+

Eigenschappen

  • verhogen

    nummer

    Het bedrag waarmee de actietelling van het tabblad moet worden verhoogd. Negatieve waarden verlagen het aantal.

  • tabId

    nummer

    Het tabblad waarvoor u het aantal acties wilt bijwerken.

TestMatchOutcomeResult

Chroom 103+

Eigenschappen

  • overeenkomende regels

    De regels (indien aanwezig) die overeenkomen met het hypothetische verzoek.

TestMatchRequestDetails

Chroom 103+

Eigenschappen

  • initiatiefnemer

    tekenreeks optioneel

    De initiator-URL (indien aanwezig) voor het hypothetische verzoek.

  • methode

    RequestMethode optioneel

    Standaard HTTP-methode van het hypothetische verzoek. Standaard ingesteld op 'get' voor HTTP-verzoeken en wordt genegeerd voor niet-HTTP-verzoeken.

  • reactieHeaders

    object optioneel

    Chroom 129+

    De headers die worden verstrekt door een hypothetisch antwoord als het verzoek niet wordt geblokkeerd of omgeleid voordat het wordt verzonden. Voorgesteld als een object dat een headernaam toewijst aan een lijst met tekenreekswaarden. Indien niet gespecificeerd, retourneert het hypothetische antwoord lege antwoordheaders, die kunnen overeenkomen met regels die overeenkomen met het niet bestaan ​​van headers. Bijv {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • tabId

    nummer optioneel

    De ID van het tabblad waarop het hypothetische verzoek plaatsvindt. Hoeft niet overeen te komen met een echt tabblad-ID. De standaardwaarde is -1, wat betekent dat het verzoek niet gerelateerd is aan een tabblad.

  • type

    Het resourcetype van de hypothetische aanvraag.

  • URL

    snaar

    De URL van het hypothetische verzoek.

UnsupportedRegexReason

Chroom 87+

Beschrijft de reden waarom een ​​bepaalde reguliere expressie niet wordt ondersteund.

Enum

"syntaxisfout"
De reguliere expressie is syntactisch onjuist of gebruikt functies die niet beschikbaar zijn in de RE2-syntaxis .

"geheugenlimiet overschreden"
De reguliere expressie overschrijdt de geheugenlimiet.

UpdateRuleOptions

Chroom 87+

Eigenschappen

  • regels toevoegen

    Regel [] optioneel

    Regels om toe te voegen.

  • removeRuleIds

    nummer[] optioneel

    ID's van de regels die moeten worden verwijderd. Eventuele ongeldige ID's worden genegeerd.

UpdateRulesetOptions

Chroom 87+

Eigenschappen

  • uitschakelenRulesetIds

    tekenreeks[] optioneel

    De set ID's die overeenkomt met een statische Ruleset die moet worden uitgeschakeld.

  • enableRulesetIds

    tekenreeks[] optioneel

    De set ID's die overeenkomt met een statische Ruleset die moet worden ingeschakeld.

UpdateStaticRulesOptions

Chroom 111+

Eigenschappen

  • uitschakelenRuleIds

    nummer[] optioneel

    Set id's die overeenkomen met regels in de Ruleset die moeten worden uitgeschakeld.

  • enableRuleIds

    nummer[] optioneel

    Set id's die overeenkomen met regels in de Ruleset die moeten worden ingeschakeld.

  • regelsetId

    snaar

    De id die overeenkomt met een statische Ruleset .

URLTransform

Eigenschappen

  • fragment

    tekenreeks optioneel

    Het nieuwe fragment voor het verzoek. Moet ofwel leeg zijn, in welk geval het bestaande fragment wordt gewist; of moet beginnen met '#'.

  • gastheer

    tekenreeks optioneel

    De nieuwe host voor het verzoek.

  • wachtwoord

    tekenreeks optioneel

    Het nieuwe wachtwoord voor de aanvraag.

  • pad

    tekenreeks optioneel

    Het nieuwe pad voor de aanvraag. Indien leeg, wordt het bestaande pad gewist.

  • haven

    tekenreeks optioneel

    De nieuwe poort voor de aanvraag. Indien leeg, wordt de bestaande poort gewist.

  • vraag

    tekenreeks optioneel

    De nieuwe query voor de aanvraag. Moet ofwel leeg zijn, in welk geval de bestaande zoekopdracht wordt gewist; of moet beginnen met '?'.

  • vraagTransform

    QueryTransform optioneel

    Voeg sleutel-waardeparen voor zoekopdrachten toe, verwijder of vervang ze.

  • schema

    tekenreeks optioneel

    Het nieuwe schema voor de aanvraag. Toegestane waarden zijn "http", "https", "ftp" en "chrome-extension".

  • gebruikersnaam

    tekenreeks optioneel

    De nieuwe gebruikersnaam voor het verzoek.

Eigenschappen

DYNAMIC_RULESET_ID

Regelset-ID voor de dynamische regels die door de extensie zijn toegevoegd.

Waarde

"_dynamisch"

GETMATCHEDRULES_QUOTA_INTERVAL

Tijdsinterval waarbinnen MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules -aanroepen kunnen worden gedaan, gespecificeerd in minuten. Extra aanroepen mislukken onmiddellijk en stellen runtime.lastError in. Opmerking: getMatchedRules -oproepen die zijn gekoppeld aan een gebruikersgebaar zijn vrijgesteld van het quotum.

Waarde

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89+

Het minimum aantal statische regels die zijn gegarandeerd naar een uitbreiding over de ingeschakelde statische regelsets. Alle regels boven deze limiet tellen mee voor de globale statische regellimiet .

Waarde

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

Het aantal keren dat getMatchedRules kan worden opgeroepen binnen een periode van GETMATCHEDRULES_QUOTA_INTERVAL .

Waarde

20

MAX_NUMBER_OF_DYNAMIC_RULES

Het maximale aantal dynamische regels dat een extensie kan toevoegen.

Waarde

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94+

Het maximale aantal statische Rulesets die een verlenging op elk moment kan inschakelen.

Waarde

50

MAX_NUMBER_OF_REGEX_RULES

Het maximale aantal reguliere expressieregels dat een extensie kan toevoegen. Deze limiet wordt afzonderlijk geëvalueerd op de set dynamische regels en die gespecificeerd in het bestandsbronnenbestand.

Waarde

1000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120+

Het maximale aantal sessiesegelregels dat een extensie kan toevoegen.

Waarde

5000

MAX_NUMBER_OF_STATIC_RULESETS

Het maximale aantal statische Rulesets die een extensie kan specificeren als onderdeel van de manifeste "rule_resources" .

Waarde

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120+

Het maximale aantal "onveilige" dynamische regels dat een extensie kan toevoegen.

Waarde

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120+

Het maximale aantal "onveilige" sessie -regels die een verlenging kan toevoegen.

Waarde

5000

SESSION_RULESET_ID

Chrome 90+

REGELSET-ID VOOR DE SESSION-gescopeerde regels toegevoegd door de extensie.

Waarde

"_sessie"

Methoden

getAvailableStaticRuleCount()

Beloof Chrome 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)

Retourneert het aantal statische regels die een verlenging kan inschakelen voordat de globale statische regellimiet wordt bereikt.

Parameters

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    (count: number) => void

    • graaf

      nummer

Retouren

  • Belofte <Mummer>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getDisabledRuleIds()

Beloof Chrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)

Retourneert de lijst met statische regels in de gegeven Ruleset die momenteel zijn uitgeschakeld.

Parameters

  • Geeft de regelset op om te vragen.

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    (disabledRuleIds: number[]) => void

    • uitgeschakeld

      nummer[]

Retouren

  • Belofte <number []>>

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getDynamicRules()

Belofte
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Retourneert de huidige set dynamische regels voor de extensie. Bellers kunnen optioneel de lijst met opgehaalde regels filteren door een filter op te geven.

Parameters

  • filter

    GetRulesFilter optioneel

    Chrome 111+

    Een object om de lijst met opgehaalde regels te filteren.

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    (rules: Rule[]) => void

Retouren

  • Belofte < regel []>>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getEnabledRulesets()

Belofte
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)

Retourneert de ID's voor de huidige set ingeschakelde statische regelsets.

Parameters

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    (rulesetIds: string[]) => void

    • regelsetids

      snaar[]

Retouren

  • Belofte <String []>>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getMatchedRules()

Belofte
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)

Retourneert alle regels die overeenkomen met de extensie. Bellers kunnen optioneel de lijst met gematchte regels filteren door een filter op te geven. Deze methode is alleen beschikbaar voor extensies met de toestemming "declarativeNetRequestFeedback" of met de "activeTab" -vergunning toegekend voor het tabId dat is opgegeven in filter . Opmerking: regels die niet zijn geassocieerd met een actief document dat meer dan vijf minuten geleden is gekoppeld, worden niet geretourneerd.

Parameters

Retouren

  • Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

getSessionRules()

Beloof Chrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Retourneert de huidige set sessie -scoped regels voor de extensie. Bellers kunnen optioneel de lijst met opgehaalde regels filteren door een filter op te geven.

Parameters

  • filter

    GetRulesFilter optioneel

    Chrome 111+

    Een object om de lijst met opgehaalde regels te filteren.

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    (rules: Rule[]) => void

Retouren

  • Belofte < regel []>>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

isRegexSupported()

Beloof Chrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)

Controleert of de gegeven reguliere expressie wordt ondersteund als een regexFilter -regelvoorwaarde.

Parameters

Retouren

  • Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

setExtensionActionOptions()

Beloof Chrome 88+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)

Configureert als het aantal acties voor tabbladen moet worden weergegeven als de badgetekst van de extensie -actie en biedt een manier om dat actietelling te verhogen.

Parameters

  • terugbellen

    functie optioneel

    Chrome 89+

    De callback -parameter ziet eruit als:

    () => void

Retouren

  • Belofte <void>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

testMatchOutcome()

Beloof Chrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)

Controleert of een van de DeclarativenTeRequest -regels van de extensie zou overeenkomen met een hypothetisch verzoek. Opmerking: alleen beschikbaar voor uitgepakte extensies, omdat dit alleen bedoeld is om te worden gebruikt tijdens de ontwikkeling van de extensie.

Parameters

Retouren

  • Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

updateDynamicRules()

Belofte
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Wijzigt de huidige set dynamische regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds 's worden eerst verwijderd en vervolgens worden de regels in options.addRules toegevoegd. Opmerkingen:

  • Deze update vindt plaats als een enkele atoombewerking: alle opgegeven regels worden toegevoegd en verwijderd, of een fout wordt geretourneerd.
  • Deze regels zijn volgehouden tussen browsersessies en over extensie -updates.
  • Statische regels die zijn opgegeven als onderdeel van het extensiepakket kunnen niet worden verwijderd met behulp van deze functie.
  • MAX_NUMBER_OF_DYNAMIC_RULES is het maximale aantal dynamische regels die een extensie kan toevoegen. Het aantal onveilige regels mag niet hoger zijn dan MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

Parameters

  • Chrome 87+
  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    () => void

Retouren

  • Belofte <void>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

updateEnabledRulesets()

Belofte
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)

Werkt de set ingeschakelde statische regelsets bij voor de extensie. De regelsets met ID's vermeld in options.disableRulesetIds 's worden eerst verwijderd en vervolgens worden de regelsets vermeld in options.enableRulesetIds 's toegevoegd. Merk op dat de set van ingeschakelde statische regelsets in sessies blijft bestaan, maar niet over extensie -updates, dwz de manifest -sleutel van de rule_resources bepaalt de set van ingeschakelde statische regelsets bij elke extensie -update.

Parameters

  • Chrome 87+
  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    () => void

Retouren

  • Belofte <void>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

updateSessionRules()

Beloof Chrome 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Wijzigt de huidige set sessiescoped regels voor de extensie. De regels met ID's vermeld in options.removeRuleIds 's worden eerst verwijderd en vervolgens worden de regels in options.addRules toegevoegd. Opmerkingen:

  • Deze update vindt plaats als een enkele atoombewerking: alle opgegeven regels worden toegevoegd en verwijderd, of een fout wordt geretourneerd.
  • Deze regels zijn niet volgehouden in sessies en worden in het geheugen ondersteund.
  • MAX_NUMBER_OF_SESSION_RULES is het maximale aantal sessieregels dat een extensie kan toevoegen.

Parameters

  • terugbellen

    functie optioneel

    De callback -parameter ziet eruit als:

    () => void

Retouren

  • Belofte <void>

    Chrome 91+

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

updateStaticRules()

Beloof Chrome 111+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)

Schakelt en maakt individuele statische regels in een Ruleset mogelijk. Wijzigingen in regels die tot een uitgeschakelde Ruleset behoren, worden van kracht de volgende keer dat deze wordt ingeschakeld.

Parameters

Retouren

  • Belofte <void>

    Beloften worden alleen ondersteund voor manifest V3 en later moeten andere platforms callbacks gebruiken.

Evenementen

onRuleMatchedDebug

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

Afgevuurd wanneer een regel wordt gekoppeld aan een verzoek. Alleen beschikbaar voor uitgepakte extensies met de toestemming "declarativeNetRequestFeedback" omdat dit alleen bedoeld is om te worden gebruikt voor foutopsporingsdoeleinden.

Parameters