Deskripsi
chrome.declarativeNetRequest API digunakan untuk memblokir atau mengubah permintaan jaringan dengan menentukan aturan deklaratif. Hal ini memungkinkan ekstensi mengubah permintaan jaringan tanpa mencegatnya dan melihat kontennya, sehingga memberikan lebih banyak privasi.
Izin
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
Ketersediaan
Manifes
Selain izin yang dijelaskan di atas, jenis set aturan tertentu, khususnya set aturan statis, memerlukan deklarasi kunci manifes "declarative_net_request", yang harus berupa kamus dengan satu kunci bernama "rule_resources". Kunci ini adalah array yang berisi kamus berjenis Ruleset, seperti yang ditunjukkan di bawah. (Perhatikan bahwa nama 'Ruleset' tidak muncul di JSON manifes karena hanya berupa array.) Kumpulan aturan statis akan dijelaskan nanti dalam dokumen ini.
{
  "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/*"
  ],
  ...
}
Konsep dan penggunaan
Untuk menggunakan API ini, tentukan satu atau beberapa set aturan. Ruleset berisi array aturan. Satu aturan melakukan salah satu hal berikut:
- Blokir permintaan jaringan.
- Upgrade skema (http ke https).
- Mencegah permintaan diblokir dengan meniadakan aturan yang diblokir yang cocok.
- Mengalihkan permintaan jaringan.
- Ubah header permintaan atau respons.
Ada tiga jenis set aturan, yang dikelola dengan cara yang sedikit berbeda.
- Dinamis
- Persisten di seluruh sesi browser dan upgrade ekstensi serta dikelola menggunakan JavaScript saat ekstensi sedang digunakan.
- Sesi
- Dihapus saat browser dimatikan dan saat versi baru ekstensi diinstal. Aturan sesi dikelola menggunakan JavaScript saat ekstensi sedang digunakan.
- Statis
- Dikemas, diinstal, dan diupdate saat ekstensi diinstal atau diupgrade. Aturan statis disimpan dalam file aturan berformat JSON dan tercantum dalam file manifes.
Beberapa bagian berikutnya menjelaskan jenis set aturan secara mendetail.
Kumpulan aturan cakupan dinamis dan sesi
Kumpulan aturan dinamis dan sesi dikelola menggunakan JavaScript saat ekstensi sedang digunakan.
- Aturan dinamis tetap ada di seluruh sesi browser dan upgrade ekstensi.
- Aturan sesi dihapus saat browser dimatikan dan saat versi baru ekstensi diinstal.
Hanya ada satu setiap jenis set aturan ini. Ekstensi dapat menambahkan atau menghapus aturan secara dinamis dengan memanggil updateDynamicRules() dan updateSessionRules(), asalkan batas aturan tidak terlampaui. Untuk mengetahui informasi tentang batas aturan, lihat Batas aturan. Anda dapat melihat contohnya di bagian contoh kode.
Kumpulan aturan statis
Tidak seperti aturan dinamis dan sesi, aturan statis dikemas, diinstal, dan diupdate saat ekstensi diinstal atau diupgrade. Kebijakan ini disimpan dalam file aturan berformat JSON, yang ditunjukkan ke ekstensi menggunakan kunci "declarative_net_request" dan "rule_resources" seperti yang dijelaskan di atas, serta satu atau beberapa kamus Ruleset. Kamus Ruleset berisi jalur ke file aturan, ID untuk kumpulan aturan yang ada dalam file, dan apakah kumpulan aturan diaktifkan atau dinonaktifkan. Dua yang terakhir penting saat Anda mengaktifkan atau menonaktifkan ruleset secara terprogram.
{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}
Untuk menguji file aturan, muat ekstensi Anda yang belum di-unzip. Error dan peringatan tentang aturan statis yang tidak valid hanya ditampilkan untuk ekstensi yang tidak di-unzip. Aturan statis yang tidak valid dalam ekstensi yang dikemas akan diabaikan.
Mengaktifkan dan menonaktifkan aturan dan kumpulan aturan statis
Aturan statis individual dan kumpulan aturan statis lengkap dapat diaktifkan atau dinonaktifkan saat runtime.
Kumpulan aturan statis dan set aturan yang diaktifkan akan tetap ada di seluruh sesi browser. Keduanya tidak dipertahankan di seluruh update ekstensi, yang berarti hanya aturan yang Anda pilih untuk tetap ada di file aturan yang tersedia setelah update.
Untuk alasan performa, ada juga batasan jumlah aturan dan set aturan yang dapat diaktifkan sekaligus. Panggil getAvailableStaticRuleCount() untuk memeriksa jumlah aturan tambahan yang dapat diaktifkan. Untuk mengetahui informasi tentang batas aturan, lihat Batas aturan.
Untuk mengaktifkan atau menonaktifkan aturan statis, panggil updateStaticRules(). Metode ini mengambil objek UpdateStaticRulesOptions, yang berisi array ID aturan yang akan diaktifkan atau dinonaktifkan. ID ditentukan menggunakan kunci "id" dari kamus Ruleset.
Untuk mengaktifkan atau menonaktifkan ruleset statis, panggil updateEnabledRulesets(). Metode ini mengambil objek UpdateRulesetOptions, yang berisi array ID set aturan yang akan diaktifkan atau dinonaktifkan. ID ditentukan menggunakan kunci "id" dari kamus Ruleset.
Membuat aturan
Terlepas dari jenisnya, aturan dimulai dengan empat kolom seperti yang ditunjukkan di bawah. Meskipun kunci "id" dan "priority" menggunakan angka, kunci "action" dan "condition" dapat memberikan beberapa kondisi pemblokiran dan pengalihan. Aturan berikut memblokir semua permintaan skrip yang berasal dari "foo.com" ke URL mana pun dengan "abc" sebagai substring.
{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}
Karakter pencocokan urlFilter
Kunci "condition" aturan memungkinkan kunci "urlFilter" untuk bertindak pada URL di bawah domain tertentu. Anda membuat pola menggunakan token pencocokan pola. Beberapa contoh ditampilkan di bawah.
| urlFilter | Kecocokan | Tidak cocok | 
|---|---|---|
| "abc" | https://abcd.com https://example.com/abcd | https://ab.com | 
| "abc*d" | https://abcd.com https://example.com/abcxyzd | https://abc.com | 
| "||a.example.com" | https://a.example.com/ https://b.a.example.com/xyz | https://example.com/ | 
| "|https*" | https://example.com | http://example.com/ http://https.com | 
| "example*^123|" | https://example.com/123 http://abc.com/example?123 | https://example.com/1234 https://abc.com/example0123 | 
Prioritas aturan
Aturan dipicu oleh permintaan yang dikirim dari halaman web. Jika beberapa aturan cocok dengan permintaan tertentu, aturan tersebut harus diprioritaskan. Bagian ini menjelaskan cara memprioritaskannya. Prioritas dilakukan dalam dua tahap.
- Prioritas ditentukan untuk aturan dalam ekstensi.
- Jika lebih dari satu ekstensi dapat menerapkan aturan ke permintaan, prioritas ditentukan untuk semua ekstensi yang cocok dengan permintaan tertentu.
Memikirkan pencocokan dengan cara ini: aturan apa pun yang diprioritaskan oleh ekstensi tertentu akan diprioritaskan terhadap aturan dari ekstensi lain.
Prioritas aturan dalam ekstensi
Dalam satu ekstensi, prioritas ditentukan menggunakan proses berikut:
- Aturan dengan prioritas tertinggi yang ditentukan developer (dengan kata lain, kolom "priority") akan ditampilkan.
- Jika ada lebih dari satu aturan dengan prioritas tertinggi yang ditentukan developer, aturan diprioritaskan menggunakan kolom - "action", dalam urutan berikut:- allow
- allowAllRequests
- block
- upgradeScheme
- redirect
 
- Jika jenis tindakan bukan - blockatau- redirect, aturan- modifyHeadersyang cocok akan dievaluasi. Perhatikan bahwa jika ada aturan dengan prioritas yang ditentukan developer lebih rendah daripada prioritas yang ditentukan untuk- allowdan- allowAllRequests, aturan tersebut akan diabaikan.
- Jika beberapa aturan mengubah header yang sama, modifikasi ditentukan oleh kolom - "priority"yang ditentukan developer dan oleh operasi yang ditentukan.- Jika aturan ditambahkan ke header, aturan dengan prioritas yang lebih rendah hanya dapat ditambahkan ke header tersebut. Operasi penyetelan dan penghapusan tidak diizinkan.
- Jika aturan menetapkan header, aturan dengan prioritas yang lebih rendah hanya dapat menambahkan ke header tersebut. Tidak ada modifikasi lain yang diizinkan.
- Jika aturan menghapus header, aturan dengan prioritas lebih rendah tidak dapat mengubah header lebih lanjut.
 
Prioritas aturan di antara ekstensi
Jika hanya satu ekstensi yang memiliki aturan yang cocok dengan permintaan, aturan tersebut akan diterapkan. Namun, jika lebih dari satu ekstensi cocok dengan permintaan, proses berikut akan digunakan:
- Aturan diprioritaskan menggunakan kolom - "action", dalam urutan berikut:- block
- redirectatau- upgradeScheme
- allowatau- allowAllRequests
 
- Jika lebih dari satu aturan cocok, ekstensi yang baru saja diinstal akan mendapatkan prioritas. 
Batas aturan
Ada overhead performa untuk memuat dan mengevaluasi aturan di browser, jadi beberapa batasan berlaku saat menggunakan API. Batas bergantung pada jenis aturan yang Anda gunakan.
Aturan statis
Aturan statis adalah aturan yang ditentukan dalam file aturan yang dideklarasikan dalam file manifes. Ekstensi dapat menentukan hingga 50 kumpulan aturan statis sebagai bagian dari kunci manifes "rule_resources", tetapi hanya 10 kumpulan aturan ini yang dapat diaktifkan dalam satu waktu. Yang terakhir disebut MAX_NUMBER_OF_ENABLED_STATIC_RULESETS. Secara keseluruhan, set aturan tersebut dijamin memiliki minimal 30.000 aturan. Hal ini disebut GUARANTEED_MINIMUM_STATIC_RULES.
Jumlah aturan yang tersedia setelah itu bergantung pada jumlah aturan yang diaktifkan oleh semua ekstensi yang diinstal di browser pengguna. Anda dapat menemukan nomor ini saat runtime dengan memanggil getAvailableStaticRuleCount(). Anda dapat melihat contohnya di bagian contoh kode.
Aturan dinamis dan sesi
Batas yang diterapkan pada aturan dinamis dan sesi lebih sederhana daripada aturan statis. Jumlah total keduanya tidak boleh melebihi 5.000. Hal ini disebut MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES.
Aturan yang menggunakan regex
Semua jenis aturan dapat menggunakan ekspresi reguler; namun, jumlah total aturan regex dari setiap jenis tidak boleh melebihi 1.000. Nilai ini disebut MAX_NUMBER_OF_REGEX_RULES.
Selain itu, setiap aturan harus berukuran kurang dari 2 KB setelah dikompilasi. Hal ini kira-kira berkorelasi dengan kompleksitas aturan. Jika Anda mencoba memuat aturan yang melebihi batas ini, Anda akan melihat peringatan seperti di bawah dan aturan akan diabaikan.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Interaksi dengan pekerja layanan
declarativeNetRequest hanya berlaku untuk permintaan yang mencapai stack jaringan. Hal ini mencakup respons dari cache HTTP, tetapi mungkin tidak mencakup respons yang melalui handler onfetch pekerja layanan. declarativeNetRequest tidak akan memengaruhi respons yang dihasilkan oleh pekerja layanan atau diambil dari CacheStorage, tetapi akan memengaruhi panggilan ke fetch() yang dilakukan di pekerja layanan.
Resource yang dapat diakses web
Aturan declarativeNetRequest tidak dapat mengalihkan dari permintaan resource publik ke resource yang tidak dapat diakses web. Tindakan ini akan memicu error. Hal ini berlaku meskipun jika resource yang dapat diakses web yang ditentukan dimiliki oleh ekstensi pengalihan. Untuk mendeklarasikan resource untuk declarativeNetRequest, gunakan array "web_accessible_resources" manifes.
Contoh
Contoh kode
Memperbarui aturan dinamis
Contoh berikut menunjukkan cara memanggil updateDynamicRules(). Prosedur untuk updateSessionRules() sama.
// 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
});
Memperbarui kumpulan aturan statis
Contoh berikut menunjukkan cara mengaktifkan dan menonaktifkan set aturan sambil mempertimbangkan jumlah set aturan statis yang tersedia dan jumlah maksimum set aturan statis yang diaktifkan. Anda akan melakukannya jika jumlah aturan statis yang Anda perlukan melebihi jumlah yang diizinkan. Agar dapat berfungsi, beberapa set aturan Anda harus diinstal dengan beberapa set aturan Anda dinonaktifkan (menyetel "Enabled" ke false dalam file manifes).
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);
}
Contoh aturan
Contoh di bawah mengilustrasikan cara Chrome memprioritaskan aturan dalam ekstensi. Saat meninjaunya, Anda dapat membuka aturan prioritasi di jendela terpisah.
Kunci "priority"
Contoh ini memerlukan izin host untuk *://*.example.com/*.
Untuk mengetahui prioritas URL tertentu, lihat kunci "priority" (yang ditentukan developer), kunci "action", dan kunci "urlFilter". Contoh ini merujuk pada contoh file aturan yang ditampilkan di bawahnya.
- Navigasi ke https://google.com
- Dua aturan mencakup URL ini: aturan dengan ID 1 dan 4. Aturan dengan ID 1 berlaku karena tindakan "block"memiliki prioritas yang lebih tinggi daripada tindakan"redirect". Aturan lainnya tidak berlaku karena ditujukan untuk URL yang lebih panjang.
- Navigasi ke https://google.com/1234
- Karena URL yang lebih panjang, aturan dengan ID 2 kini cocok selain aturan dengan ID 1 dan 4. Aturan dengan ID 2 berlaku karena "allow"memiliki prioritas yang lebih tinggi daripada"block"dan"redirect".
- Navigasi ke https://google.com/12345
- Keempat aturan cocok dengan URL ini. Aturan dengan ID 3 berlaku karena prioritas yang ditentukan developer-nya adalah yang tertinggi dalam grup.
[
  {
    "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"] }
  },
]
Pengalihan
Contoh di bawah memerlukan izin host ke *://*.example.com/*.
Contoh berikut menunjukkan cara mengalihkan permintaan dari example.com ke halaman dalam ekstensi itu sendiri. Jalur ekstensi /a.jpg diselesaikan ke chrome-extension://EXTENSION_ID/a.jpg, dengan EXTENSION_ID adalah ID ekstensi Anda. Agar berfungsi, manifes harus mendeklarasikan /a.jpg sebagai resource yang dapat diakses web.
{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}
Contoh berikut menggunakan kunci "transform" untuk mengalihkan ke subdomain example.com. Contoh ini menggunakan penanda nama domain ("||") untuk mencegat permintaan dengan skema apa pun dari example.com. Kunci "scheme" di "transform" menentukan bahwa pengalihan ke subdomain akan selalu menggunakan "https".
{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}
Contoh berikut menggunakan ekspresi reguler untuk mengalihkan dari https://www.abc.xyz.com/path ke https://abc.xyz.com/path. Di kunci "regexFilter", perhatikan cara titik di-escape dan bahwa grup pengambilan memilih "abc" atau "def". Kunci "regexSubstitution" menentukan kecocokan pertama yang ditampilkan dari ekspresi reguler menggunakan "\1". Dalam hal ini, "abc" diambil dari URL yang dialihkan dan ditempatkan dalam penggantian.
{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}
Header
Contoh berikut menghapus semua cookie dari frame utama dan semua sub-frame.
{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Jenis
DomainType
Ini menjelaskan apakah permintaan adalah pihak pertama atau pihak ketiga ke frame tempat permintaan berasal. Permintaan dikatakan sebagai pihak pertama jika memiliki domain (eTLD+1) yang sama dengan frame tempat permintaan berasal.
Enum
"firstParty" 
 Permintaan jaringan adalah pihak pertama untuk frame tempat permintaan tersebut berasal.
"thirdParty" 
 Permintaan jaringan adalah pihak ketiga untuk frame tempat permintaan tersebut berasal.
ExtensionActionOptions
Properti
- 
    displayActionCountAsBadgeTextboolean opsional Apakah akan otomatis menampilkan jumlah tindakan untuk halaman sebagai teks badge ekstensi. Preferensi ini dipertahankan di seluruh sesi. 
- 
    tabUpdateTabActionCountUpdate opsional Chrome 89+Detail cara menyesuaikan jumlah tindakan tab. 
GetDisabledRuleIdsOptions
Properti
- 
    rulesetIdstring ID yang sesuai dengan Rulesetstatis.
GetRulesFilter
Properti
- 
    ruleIdsnumber[] opsional Jika ditentukan, hanya aturan dengan ID yang cocok yang disertakan. 
HeaderInfo
Properti
- 
    excludedValuesstring[] opsional Jika ditentukan, kondisi ini tidak cocok jika header ada, tetapi nilainya berisi setidaknya satu elemen dalam daftar ini. Ini menggunakan sintaksis pola kecocokan yang sama dengan values.
- 
    headerstring Nama header. Kondisi ini hanya cocok dengan nama jika valuesdanexcludedValuestidak ditentukan.
- 
    nilaistring[] opsional Jika ditentukan, kondisi ini cocok jika nilai header cocok dengan setidaknya satu pola dalam daftar ini. Hal ini mendukung pencocokan nilai header yang tidak peka huruf besar/kecil serta konstruksi berikut: '*' : Cocok dengan sejumlah karakter. '?' : Mencocokkan nol atau satu karakter. '*' dan '?' dapat diawali dengan garis miring terbalik, misalnya '\*' dan '\?' 
HeaderOperation
Bagian ini menjelaskan kemungkinan operasi untuk aturan "modifyHeaders".
Enum
"append" 
 Menambahkan entri baru untuk header yang ditentukan. Saat mengubah header permintaan, operasi ini hanya didukung untuk header tertentu.
"set" 
 Menetapkan nilai baru untuk header yang ditentukan, menghapus header yang ada dengan nama yang sama.
"remove" 
 Menghapus semua entri untuk header yang ditentukan.
IsRegexSupportedResult
Properti
- 
    isSupportedboolean 
- 
    alasanUnsupportedRegexReason opsional Menentukan alasan mengapa ekspresi reguler tidak didukung. Hanya diberikan jika isSupportedsalah.
MatchedRule
Properti
- 
    ruleIdangka ID aturan pencocokan. 
- 
    rulesetIdstring ID Rulesetyang memiliki aturan ini. Untuk aturan yang berasal dari kumpulan aturan dinamis, nilai ini akan sama denganDYNAMIC_RULESET_ID.
MatchedRuleInfo
Properti
- 
    aturan
- 
    tabIdangka TabId tab tempat permintaan berasal jika tab masih aktif. Lainnya -1. 
- 
    timeStampangka Waktu aturan cocok. Stempel waktu akan sesuai dengan konvensi Javascript untuk waktu, yaitu jumlah milidetik sejak epoch. 
MatchedRuleInfoDebug
Properti
- 
    mintaDetail tentang permintaan yang cocok dengan aturan. 
- 
    aturan
MatchedRulesFilter
Properti
- 
    minTimeStampnomor opsional Jika ditentukan, hanya cocok dengan aturan setelah stempel waktu yang diberikan. 
- 
    tabIdnomor opsional Jika ditentukan, hanya mencocokkan aturan untuk tab tertentu. Mencocokkan aturan yang tidak terkait dengan tab aktif jika disetel ke -1. 
ModifyHeaderInfo
Properti
- 
    headerstring Nama header yang akan diubah. 
- 
    operasiOperasi yang akan dilakukan pada header. 
- 
    nilaistring opsional Nilai baru untuk header. Harus ditentukan untuk operasi appenddanset.
QueryKeyValue
Properti
- 
    kuncistring 
- 
    replaceOnlyboolean opsional Chrome 94+Jika benar, kunci kueri hanya diganti jika sudah ada. Jika tidak, kunci juga ditambahkan jika tidak ada. Nilai defaultnya adalah false (salah). 
- 
    nilaistring 
QueryTransform
Properti
- 
    addOrReplaceParamsQueryKeyValue[] opsional Daftar pasangan nilai kunci kueri yang akan ditambahkan atau diganti. 
- 
    removeParamsstring[] opsional Daftar kunci kueri yang akan dihapus. 
Redirect
Properti
- 
    extensionPathstring opsional Jalur relatif terhadap direktori ekstensi. Harus diawali dengan '/'. 
- 
    regexSubstitutionstring opsional Pola substitusi untuk aturan yang menentukan regexFilter. Pencocokan pertamaregexFilterdalam URL akan diganti dengan pola ini. DalamregexSubstitution, digit yang di-escape dengan garis miring terbalik (\1 hingga \9) dapat digunakan untuk menyisipkan grup tangkapan yang sesuai. \0 merujuk ke seluruh teks yang cocok.
- 
    dan mengubah teks tersebutURLTransform opsional Transformasi URL yang akan dilakukan. 
- 
    urlstring opsional URL pengalihan. Pengalihan ke URL JavaScript tidak diizinkan. 
RegexOptions
Properti
- 
    isCaseSensitiveboolean opsional Apakah regexyang ditentukan peka huruf besar/kecil. Defaultnya adalah true (benar).
- 
    ekspresi regulerstring Ekspresi reguler yang akan diperiksa. 
- 
    requireCapturingboolean opsional Apakah regexyang ditentukan memerlukan pengambilan gambar. Pengambilan hanya diperlukan untuk aturan pengalihan yang menentukan tindakanregexSubstition. Default-nya adalah salah.
RequestDetails
Properti
- 
    documentIdstring opsional Chrome 106+ID unik untuk dokumen frame, jika permintaan ini ditujukan untuk frame. 
- 
    documentLifecycleDocumentLifecycle opsional Chrome 106+Siklus proses dokumen frame, jika permintaan ini ditujukan untuk frame. 
- 
    frameIdangka Nilai 0 menunjukkan bahwa permintaan terjadi di frame utama; nilai positif menunjukkan ID subframe tempat permintaan terjadi. Jika dokumen (sub-)frame dimuat ( typeadalahmain_frameatausub_frame),frameIdmenunjukkan ID frame ini, bukan ID frame luar. ID frame bersifat unik dalam tab.
- 
    frameTypeFrameType opsional Chrome 106+Jenis frame, jika permintaan ini ditujukan untuk frame. 
- 
    pemrakarsastring opsional Asal tempat permintaan dimulai. Hal ini tidak berubah melalui pengalihan. Jika ini adalah origin buram, string 'null' akan digunakan. 
- 
    methodstring Metode HTTP standar. 
- 
    parentDocumentIdstring opsional Chrome 106+ID unik untuk dokumen induk frame, jika permintaan ini ditujukan untuk frame dan memiliki induk. 
- 
    parentFrameIdangka ID frame yang membungkus frame yang mengirim permintaan. Disetel ke -1 jika tidak ada frame induk. 
- 
    requestIdstring ID permintaan. ID permintaan bersifat unik dalam sesi browser. 
- 
    tabIdangka ID tab tempat permintaan dilakukan. Disetel ke -1 jika permintaan tidak terkait dengan tab. 
- 
    jenisJenis resource permintaan. 
- 
    urlstring URL permintaan. 
RequestMethod
Ini menjelaskan metode permintaan HTTP dari permintaan jaringan.
Enum
"connect" 
 
"delete" 
 
"get" 
 
"head" 
 
"options" 
 
"patch" 
 
"post" 
 
"put" 
 
"lainnya" 
 
ResourceType
Bagian ini menjelaskan jenis resource permintaan jaringan.
Enum
"main_frame" 
 
"sub_frame" 
 
"stylesheet" 
 
"script" 
 
"image" 
 
"font" 
 
"object" 
 
"xmlhttprequest" 
 
"ping" 
 
"csp_report" 
 
"media" 
 
"websocket" 
 
"webtransport" 
 
"webbundle" 
 
"lainnya" 
 
Rule
Properti
- 
    tindakanTindakan yang harus dilakukan jika aturan ini cocok. 
- 
    kondisiKondisi saat aturan ini dipicu. 
- 
    idangka ID yang secara unik mengidentifikasi aturan. Wajib dan harus >= 1. 
- 
    prioritasnomor opsional Prioritas aturan. Default-nya adalah 1. Jika ditentukan, harus >= 1. 
RuleAction
Properti
- 
    alihkanPengalihan opsional Menjelaskan cara pengalihan harus dilakukan. Hanya valid untuk aturan pengalihan. 
- 
    requestHeadersModifyHeaderInfo[] opsional Chrome 86+Header permintaan yang akan diubah untuk permintaan. Hanya valid jika RuleActionType adalah "modifyHeaders". 
- 
    responseHeadersModifyHeaderInfo[] opsional Chrome 86+Header respons yang akan diubah untuk permintaan. Hanya valid jika RuleActionType adalah "modifyHeaders". 
- 
    jenisJenis tindakan yang akan dilakukan. 
RuleActionType
Menjelaskan jenis tindakan yang harus dilakukan jika RuleCondition tertentu cocok.
Enum
"block" 
 Memblokir permintaan jaringan.
"redirect" 
 Mengarahkan ulang permintaan jaringan.
"allow" 
 Izinkan permintaan jaringan. Permintaan tidak akan dicegat jika ada aturan izinkan yang cocok dengannya.
"upgradeScheme" 
 Mengupgrade skema URL permintaan jaringan ke https jika permintaan adalah http atau ftp.
"modifyHeaders" 
 Ubah header permintaan/respons dari permintaan jaringan.
"allowAllRequests" 
 Mengizinkan semua permintaan dalam hierarki frame, termasuk permintaan frame itu sendiri.
RuleCondition
Properti
- 
    domainTypeDomainType opsional Menentukan apakah permintaan jaringan adalah pihak pertama atau pihak ketiga ke domain tempat permintaan tersebut berasal. Jika tidak ada, semua permintaan akan diterima. 
- 
    domainsstring[] opsional Tidak digunakan lagi sejak Chrome 101Sebagai gantinya, gunakan initiatorDomains.Aturan hanya akan mencocokkan permintaan jaringan yang berasal dari daftar domains.
- 
    excludedDomainsstring[] opsional Tidak digunakan lagi sejak Chrome 101Sebagai gantinya, gunakan excludedInitiatorDomains.Aturan tidak akan cocok dengan permintaan jaringan yang berasal dari daftar excludedDomains.
- 
    excludedInitiatorDomainsstring[] opsional Chrome 101+Aturan tidak akan cocok dengan permintaan jaringan yang berasal dari daftar excludedInitiatorDomains. Jika daftar kosong atau tidak ada, tidak ada domain yang dikecualikan. Tindakan ini lebih diprioritaskan daripadainitiatorDomains.Catatan: - Sub-domain seperti "a.example.com" juga diizinkan.
- Entri hanya boleh terdiri dari karakter ASCII.
- Gunakan encoding punycode untuk domain internasional.
- Ini cocok dengan inisiator permintaan, bukan URL permintaan.
- Subdomain dari domain yang tercantum juga dikecualikan.
 
- 
    excludedRequestDomainsstring[] opsional Chrome 101+Aturan tidak akan cocok dengan permintaan jaringan saat domain cocok dengan salah satu domain dari daftar excludedRequestDomains. Jika daftar kosong atau tidak ada, tidak ada domain yang dikecualikan. Tindakan ini lebih diprioritaskan daripadarequestDomains.Catatan: - Sub-domain seperti "a.example.com" juga diizinkan.
- Entri hanya boleh terdiri dari karakter ASCII.
- Gunakan encoding punycode untuk domain internasional.
- Subdomain dari domain yang tercantum juga dikecualikan.
 
- 
    excludedRequestMethodsRequestMethod[] opsional Chrome 91+Daftar metode permintaan yang tidak akan cocok dengan aturan. Hanya satu dari requestMethodsdanexcludedRequestMethodsyang harus ditentukan. Jika keduanya tidak ditentukan, semua metode permintaan akan dicocokkan.
- 
    excludedResourceTypesResourceType[] opsional Daftar jenis resource yang tidak akan cocok dengan aturan. Hanya satu dari resourceTypesdanexcludedResourceTypesyang harus ditentukan. Jika tidak ada yang ditentukan, semua jenis resource kecuali "main_frame" akan diblokir.
- 
    excludedResponseHeadersHeaderInfo[] opsional Chrome 128+Aturan tidak cocok jika permintaan cocok dengan kondisi header respons apa pun dalam daftar ini (jika ditentukan). Jika excludedResponseHeadersdanresponseHeadersditentukan, propertiexcludedResponseHeadersakan diprioritaskan.
- 
    excludedTabIdsnumber[] opsional Chrome 92+Daftar tabs.Tab.idyang tidak boleh cocok dengan aturan. IDtabs.TAB_ID_NONEmengecualikan permintaan yang tidak berasal dari tab. Hanya didukung untuk aturan cakupan sesi.
- 
    initiatorDomainsstring[] opsional Chrome 101+Aturan hanya akan mencocokkan permintaan jaringan yang berasal dari daftar initiatorDomains. Jika daftar dihilangkan, aturan akan diterapkan ke permintaan dari semua domain. Daftar kosong tidak diizinkan.Catatan: - Sub-domain seperti "a.example.com" juga diizinkan.
- Entri hanya boleh terdiri dari karakter ASCII.
- Gunakan encoding punycode untuk domain internasional.
- Ini cocok dengan inisiator permintaan, bukan URL permintaan.
- Subdomain dari domain yang tercantum juga dicocokkan.
 
- 
    isUrlFilterCaseSensitiveboolean opsional Apakah urlFilteratauregexFilter(mana pun yang ditentukan) peka huruf besar/kecil. Defaultnya adalah false.
- 
    regexFilterstring opsional Ekspresi reguler untuk mencocokkan URL permintaan jaringan. Ini mengikuti sintaksis RE2. Catatan: Hanya salah satu dari urlFilteratauregexFilteryang dapat ditentukan.Catatan: regexFilterharus terdiri dari karakter ASCII saja. Ini dicocokkan dengan URL yang host-nya dienkode dalam format punycode (jika domain diinternasionalisasi) dan karakter non-ASCII lainnya dienkode ke URL dalam utf-8.
- 
    requestDomainsstring[] opsional Chrome 101+Aturan hanya akan mencocokkan permintaan jaringan jika domain cocok dengan salah satu domain dari daftar requestDomains. Jika daftar dihilangkan, aturan akan diterapkan ke permintaan dari semua domain. Daftar kosong tidak diizinkan.Catatan: - Sub-domain seperti "a.example.com" juga diizinkan.
- Entri hanya boleh terdiri dari karakter ASCII.
- Gunakan encoding punycode untuk domain internasional.
- Subdomain dari domain yang tercantum juga dicocokkan.
 
- 
    requestMethodsRequestMethod[] opsional Chrome 91+Daftar metode permintaan HTTP yang dapat dicocokkan oleh aturan. Daftar kosong tidak diizinkan. Catatan: Menentukan kondisi aturan requestMethodsjuga akan mengecualikan permintaan non-HTTP(s), sedangkan menentukanexcludedRequestMethodstidak akan mengecualikan permintaan non-HTTP(s).
- 
    resourceTypesResourceType[] opsional Daftar jenis resource yang dapat dicocokkan oleh aturan. Daftar kosong tidak diizinkan. Catatan: ini harus ditentukan untuk aturan allowAllRequestsdan hanya boleh menyertakan jenis resourcesub_framedanmain_frame.
- 
    responseHeadersHeaderInfo[] opsional Chrome 128+Aturan cocok jika permintaan cocok dengan kondisi header respons dalam daftar ini (jika ditentukan). 
- 
    tabIdsnumber[] opsional Chrome 92+Daftar tabs.Tab.idyang harus dicocokkan oleh aturan. IDtabs.TAB_ID_NONEcocok dengan permintaan yang tidak berasal dari tab. Daftar kosong tidak diizinkan. Hanya didukung untuk aturan cakupan sesi.
- 
    urlFilterstring opsional Pola yang dicocokkan dengan URL permintaan jaringan. Konstruksi yang didukung: '*' : Karakter pengganti: Mencocokkan sejumlah karakter apa pun. '|' : Anchor kiri/kanan: Jika digunakan di salah satu ujung pola, akan menentukan awal/akhir URL. '||' : Anchor nama domain: Jika digunakan di awal pola, menentukan awal (sub)domain URL. '^' : Karakter pemisah: Ini cocok dengan apa pun kecuali huruf, angka, atau salah satu dari berikut: _,-,., atau%. Ini juga cocok dengan bagian akhir URL.Oleh karena itu, urlFilterterdiri dari bagian berikut: (opsional Anchor kiri/Nama domain) + pola + (opsional Anchor kanan).Jika dihilangkan, semua URL akan dicocokkan. String kosong tidak diizinkan. Pola yang dimulai dengan ||*tidak diizinkan. Sebagai gantinya, gunakan*.Catatan: Hanya salah satu dari urlFilteratauregexFilteryang dapat ditentukan.Catatan: urlFilterharus terdiri dari karakter ASCII saja. Ini dicocokkan dengan URL yang host-nya dienkode dalam format punycode (jika domain diinternasionalisasi) dan karakter non-ASCII lainnya dienkode ke URL dalam utf-8. Misalnya, jika URL permintaan adalah http://abc.рф?q=ф,urlFilterakan dicocokkan dengan URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Properti
- 
    diaktifkanboolean Apakah ruleset diaktifkan secara default. 
- 
    idstring String tidak kosong yang mengidentifikasi ruleset secara unik. ID yang diawali dengan '_' dicadangkan untuk penggunaan internal. 
- 
    jalurstring Jalur set aturan JSON relatif terhadap direktori ekstensi. 
RulesMatchedDetails
Properti
- 
    rulesMatchedInfoAturan yang cocok dengan filter yang diberikan. 
TabActionCountUpdate
Properti
- 
    penambahanangka Jumlah yang digunakan untuk menambah jumlah tindakan tab. Nilai negatif akan mengurangi jumlah. 
- 
    tabIdangka Tab yang jumlah tindakannya akan diperbarui. 
TestMatchOutcomeResult
Properti
- 
    matchedRulesAturan (jika ada) yang cocok dengan permintaan hipotetis. 
TestMatchRequestDetails
Properti
- 
    pemrakarsastring opsional URL pemrakarsa (jika ada) untuk permintaan hipotetis. 
- 
    methodRequestMethod opsional Metode HTTP standar dari permintaan hipotetis. Defaultnya adalah "get" untuk permintaan HTTP dan diabaikan untuk permintaan non-HTTP. 
- 
    responseHeadersobjek opsional Chrome 129+Header yang diberikan oleh respons hipotetis jika permintaan tidak diblokir atau dialihkan sebelum dikirim. Direpresentasikan sebagai objek yang memetakan nama header ke daftar nilai string. Jika tidak ditentukan, respons hipotetis akan menampilkan header respons kosong, yang dapat cocok dengan aturan yang cocok dengan tidak adanya header. Misalnya, {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- 
    tabIdnomor opsional ID tab tempat permintaan hipotetis terjadi. Tidak perlu sesuai dengan ID tab yang sebenarnya. Defaultnya adalah -1, yang berarti permintaan tidak terkait dengan tab. 
- 
    jenisJenis resource permintaan hipotetis. 
- 
    urlstring URL permintaan hipotetis. 
UnsupportedRegexReason
Menjelaskan alasan ekspresi reguler tertentu tidak didukung.
Enum
"syntaxError" 
 Ekspresi reguler salah secara sintaksis, atau menggunakan fitur yang tidak tersedia dalam sintaksis RE2.
"memoryLimitExceeded" 
 Ekspresi reguler melampaui batas memori.
UpdateRuleOptions
Properti
- 
    addRulesRule[] opsional Aturan yang akan ditambahkan. 
- 
    removeRuleIdsnumber[] opsional ID aturan yang akan dihapus. ID yang tidak valid akan diabaikan. 
UpdateRulesetOptions
Properti
UpdateStaticRulesOptions
Properti
URLTransform
Properti
- 
    fragmenstring opsional Fragmen baru untuk permintaan. Harus kosong, yang dalam hal ini fragmen yang ada dihapus; atau harus dimulai dengan '#'. 
- 
    hoststring opsional Host baru untuk permintaan. 
- 
    sandistring opsional Sandi baru untuk permintaan. 
- 
    jalurstring opsional Jalur baru untuk permintaan. Jika kosong, jalur yang ada akan dihapus. 
- 
    portstring opsional Port baru untuk permintaan. Jika kosong, port yang ada akan dihapus. 
- 
    kueristring opsional Kueri baru untuk permintaan. Harus kosong, yang dalam hal ini kueri yang ada akan dihapus; atau harus diawali dengan '?'. 
- 
    queryTransformQueryTransform opsional Menambahkan, menghapus, atau mengganti pasangan nilai kunci kueri. 
- 
    skemastring opsional Skema baru untuk permintaan. Nilai yang diizinkan adalah "http", "https", "ftp", dan "chrome-extension". 
- 
    nama penggunastring opsional Nama pengguna baru untuk permintaan. 
Properti
DYNAMIC_RULESET_ID
ID kumpulan aturan untuk aturan dinamis yang ditambahkan oleh ekstensi.
Nilai
"_dynamic" 
 
GETMATCHEDRULES_QUOTA_INTERVAL
Interval waktu saat panggilan MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules dapat dilakukan, yang ditentukan dalam menit. Panggilan tambahan akan langsung gagal dan menyetel runtime.lastError. Catatan: Panggilan getMatchedRules yang terkait dengan gestur pengguna dikecualikan dari kuota.
Nilai
10 
 
GUARANTEED_MINIMUM_STATIC_RULES
Jumlah minimum aturan statis yang dijamin untuk ekstensi di seluruh kumpulan aturan statis yang diaktifkan. Aturan apa pun di atas batas ini akan dihitung dalam batas aturan statis global.
Nilai
30000 
 
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Jumlah berapa kali getMatchedRules dapat dipanggil dalam jangka waktu GETMATCHEDRULES_QUOTA_INTERVAL.
Nilai
20 
 
MAX_NUMBER_OF_DYNAMIC_RULES
Jumlah maksimum aturan dinamis yang dapat ditambahkan ekstensi.
Nilai
30000 
 
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Jumlah maksimum Rulesets statis yang dapat diaktifkan ekstensi sekaligus.
Nilai
50 
 
MAX_NUMBER_OF_REGEX_RULES
Jumlah maksimum aturan ekspresi reguler yang dapat ditambahkan ekstensi. Batas ini dievaluasi secara terpisah untuk kumpulan aturan dinamis dan aturan yang ditentukan dalam file resource aturan.
Nilai
1000 
 
MAX_NUMBER_OF_SESSION_RULES
Jumlah maksimum aturan cakupan sesi yang dapat ditambahkan ekstensi.
Nilai
5000 
 
MAX_NUMBER_OF_STATIC_RULESETS
Jumlah maksimum Rulesets statis yang dapat ditentukan ekstensi sebagai bagian dari kunci manifes "rule_resources".
Nilai
100 
 
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Jumlah maksimum aturan dinamis "tidak aman" yang dapat ditambahkan oleh ekstensi.
Nilai
5000 
 
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Jumlah maksimum aturan cakupan sesi "tidak aman" yang dapat ditambahkan oleh ekstensi.
Nilai
5000 
 
SESSION_RULESET_ID
ID set aturan untuk aturan cakupan sesi yang ditambahkan oleh ekstensi.
Nilai
"_session" 
 
Metode
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Menampilkan jumlah aturan statis yang dapat diaktifkan ekstensi sebelum batas aturan statis global tercapai.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(count: number) => void - 
    jumlahangka 
 
- 
    
Hasil
- 
            Promise<number> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Menampilkan daftar aturan statis dalam Ruleset tertentu yang saat ini dinonaktifkan.
Parameter
- 
    Menentukan kumpulan aturan yang akan dikueri. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(disabledRuleIds: number[]) => void - 
    disabledRuleIdsnumber[] 
 
- 
    
Hasil
- 
            Promise<number[]> Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Menampilkan kumpulan aturan dinamis saat ini untuk ekstensi. Penelepon dapat secara opsional memfilter daftar aturan yang diambil dengan menentukan filter.
Parameter
- 
    filterGetRulesFilter opsional Chrome 111+Objek untuk memfilter daftar aturan yang diambil. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(rules: Rule[]) => void - 
    rulesRule[] 
 
- 
    
Hasil
- 
            Promise<Rule[]> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Menampilkan ID untuk kumpulan aturan statis yang diaktifkan saat ini.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(rulesetIds: string[]) => void - 
    rulesetIdsstring[] 
 
- 
    
Hasil
- 
            Promise<string[]> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Menampilkan semua aturan yang cocok untuk ekstensi. Penelepon dapat secara opsional memfilter daftar aturan yang cocok dengan menentukan filter. Metode ini hanya tersedia untuk ekstensi dengan izin "declarativeNetRequestFeedback" atau yang memiliki izin "activeTab" yang diberikan untuk tabId yang ditentukan dalam filter. Catatan: Aturan yang tidak terkait dengan dokumen aktif yang cocok lebih dari lima menit yang lalu tidak akan ditampilkan.
Parameter
- 
    filterMatchedRulesFilter opsional Objek untuk memfilter daftar aturan yang cocok. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(details: RulesMatchedDetails) => void - 
    detail
 
- 
    
Hasil
- 
            Promise<RulesMatchedDetails> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Menampilkan kumpulan aturan cakupan sesi saat ini untuk ekstensi. Penelepon dapat secara opsional memfilter daftar aturan yang diambil dengan menentukan filter.
Parameter
- 
    filterGetRulesFilter opsional Chrome 111+Objek untuk memfilter daftar aturan yang diambil. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(rules: Rule[]) => void - 
    rulesRule[] 
 
- 
    
Hasil
- 
            Promise<Rule[]> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Memeriksa apakah ekspresi reguler yang diberikan akan didukung sebagai kondisi aturan regexFilter.
Parameter
- 
    regexOptionsEkspresi reguler yang akan diperiksa. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(result: IsRegexSupportedResult) => void - 
    hasil
 
- 
    
Hasil
- 
            Promise<IsRegexSupportedResult> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Mengonfigurasi apakah jumlah tindakan untuk tab harus ditampilkan sebagai teks badge tindakan ekstensi dan menyediakan cara agar jumlah tindakan tersebut dapat bertambah.
Parameter
- 
    callbackfungsi opsional Chrome 89+Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Memeriksa apakah ada aturan declarativeNetRequest ekstensi yang akan cocok dengan permintaan hipotetis. Catatan: Hanya tersedia untuk ekstensi yang tidak dikemas karena hanya dimaksudkan untuk digunakan selama pengembangan ekstensi.
Parameter
- 
    minta
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(result: TestMatchOutcomeResult) => void - 
    hasil
 
- 
    
Hasil
- 
            Promise<TestMatchOutcomeResult> Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Mengubah kumpulan aturan dinamis saat ini untuk ekstensi. Aturan dengan ID yang tercantum di options.removeRuleIds akan dihapus terlebih dahulu, lalu aturan yang diberikan di options.addRules akan ditambahkan. Catatan:
- Pembaruan ini terjadi sebagai operasi atomik tunggal: semua aturan yang ditentukan ditambahkan dan dihapus, atau error ditampilkan.
- Aturan ini tetap ada di seluruh sesi browser dan di seluruh update ekstensi.
- Aturan statis yang ditentukan sebagai bagian dari paket ekstensi tidak dapat dihapus menggunakan fungsi ini.
- MAX_NUMBER_OF_DYNAMIC_RULESadalah jumlah maksimum aturan dinamis yang dapat ditambahkan ekstensi. Jumlah aturan tidak aman tidak boleh melebihi- MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Parameter
- 
    opsiChrome 87+
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Memperbarui kumpulan aturan statis yang diaktifkan untuk ekstensi. Kumpulan aturan dengan ID yang tercantum di options.disableRulesetIds akan dihapus terlebih dahulu, lalu kumpulan aturan yang tercantum di options.enableRulesetIds akan ditambahkan.
Perhatikan bahwa kumpulan ruleset statis yang diaktifkan dipertahankan di seluruh sesi, tetapi tidak di seluruh update ekstensi, yaitu kunci manifes rule_resources akan menentukan kumpulan ruleset statis yang diaktifkan pada setiap update ekstensi.
Parameter
- 
    opsiChrome 87+
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Mengubah kumpulan aturan cakupan sesi saat ini untuk ekstensi. Aturan dengan ID yang tercantum di options.removeRuleIds akan dihapus terlebih dahulu, lalu aturan yang diberikan di options.addRules akan ditambahkan. Catatan:
- Pembaruan ini terjadi sebagai operasi atomik tunggal: semua aturan yang ditentukan ditambahkan dan dihapus, atau error ditampilkan.
- Aturan ini tidak dipertahankan di seluruh sesi dan didukung dalam memori.
- MAX_NUMBER_OF_SESSION_RULESadalah jumlah maksimum aturan sesi yang dapat ditambahkan ekstensi.
Parameter
- 
    opsi
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 91+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Menonaktifkan dan mengaktifkan setiap aturan statis dalam Ruleset. Perubahan pada aturan yang termasuk dalam Ruleset yang dinonaktifkan akan berlaku saat Ruleset tersebut diaktifkan kembali.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
Acara
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Diaktifkan saat aturan cocok dengan permintaan. Hanya tersedia untuk ekstensi yang tidak dikemas dengan izin "declarativeNetRequestFeedback" karena ini dimaksudkan untuk digunakan hanya untuk tujuan proses debug.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(info: MatchedRuleInfoDebug) => void - 
    info
 
-