refresh date: 2026-09-25 robots: noindex
Mô tả
API chrome.declarativeNetRequest được dùng để chặn hoặc sửa đổi các yêu cầu mạng bằng cách chỉ định quy tắc khai báo. Điều này cho phép các tiện ích sửa đổi yêu cầu mạng mà không chặn và xem nội dung của yêu cầu, nhờ đó tăng cường quyền riêng tư.
Quyền
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
Phạm vi cung cấp
Tệp kê khai
Ngoài các quyền được mô tả ở trên, một số loại bộ quy tắc nhất định, cụ thể là bộ quy tắc tĩnh, yêu cầu khai báo khoá tệp kê khai "declarative_net_request". Khoá này phải là một từ điển có một khoá duy nhất tên là "rule_resources". Khoá này là một mảng chứa các từ điển thuộc loại Ruleset, như minh hoạ bên dưới. (Lưu ý rằng tên "Ruleset" không xuất hiện trong JSON của tệp kê khai vì đây chỉ là một mảng.) Tập quy tắc tĩnh được giải thích ở phần sau của tài liệu này.
{
"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/*"
],
...
}
Khái niệm và cách sử dụng
Để sử dụng API này, hãy chỉ định một hoặc nhiều bộ quy tắc. Một bộ quy tắc chứa một mảng các quy tắc. Một quy tắc duy nhất sẽ thực hiện một trong những việc sau:
- Chặn yêu cầu mạng.
- Nâng cấp giao thức (từ http lên https).
- Ngăn chặn việc chặn yêu cầu bằng cách phủ định mọi quy tắc chặn trùng khớp.
- Chuyển hướng yêu cầu mạng.
- Sửa đổi tiêu đề yêu cầu hoặc phản hồi.
Có 3 loại bộ quy tắc, được quản lý theo những cách hơi khác nhau.
- Động
- Duy trì trong các phiên trình duyệt và bản nâng cấp tiện ích, đồng thời được quản lý bằng JavaScript khi tiện ích đang được sử dụng.
- Phiên
- Bị xoá khi trình duyệt tắt và khi phiên bản mới của tiện ích được cài đặt. Các quy tắc phiên được quản lý bằng JavaScript trong khi tiện ích đang được sử dụng.
- Tĩnh
- Được đóng gói, cài đặt và cập nhật khi một tiện ích được cài đặt hoặc nâng cấp. Quy tắc tĩnh được lưu trữ trong các tệp quy tắc có định dạng JSON và được liệt kê trong tệp kê khai.
Một vài phần tiếp theo sẽ giải thích chi tiết về các loại bộ quy tắc.
Tập hợp quy tắc linh động và ở phạm vi phiên
Các bộ quy tắc động và theo phiên được quản lý bằng JavaScript trong khi tiện ích đang được sử dụng.
- Các quy tắc động vẫn tồn tại trong các phiên trình duyệt và bản nâng cấp tiện ích.
- Các quy tắc của phiên sẽ bị xoá khi trình duyệt tắt và khi phiên bản mới của tiện ích được cài đặt.
Mỗi loại bộ quy tắc này chỉ có một. Tiện ích có thể thêm hoặc xoá các quy tắc một cách linh động bằng cách gọi updateDynamicRules() và updateSessionRules(), miễn là không vượt quá giới hạn quy tắc. Để biết thông tin về giới hạn của quy tắc, hãy xem bài viết Giới hạn của quy tắc. Bạn có thể xem ví dụ về việc này trong phần ví dụ về mã.
Tập hợp quy tắc tĩnh
Không giống như quy tắc động và quy tắc phiên, quy tắc tĩnh được đóng gói, cài đặt và cập nhật khi tiện ích được cài đặt hoặc nâng cấp. Các quy tắc này được lưu trữ trong tệp quy tắc ở định dạng JSON, được chỉ định cho tiện ích bằng cách sử dụng khoá "declarative_net_request" và "rule_resources" như mô tả ở trên, cũng như một hoặc nhiều từ điển Ruleset. Từ điển Ruleset chứa đường dẫn đến tệp quy tắc, mã nhận dạng cho nhóm quy tắc có trong tệp và trạng thái bật hoặc tắt của nhóm quy tắc. Hai trạng thái cuối cùng rất quan trọng khi bạn bật hoặc tắt một nhóm quy tắc theo phương thức lập trình.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Để kiểm tra các tệp quy tắc, hãy tải tiện ích đã giải nén. Lỗi và cảnh báo về quy tắc tĩnh không hợp lệ chỉ xuất hiện cho các tiện ích chưa đóng gói. Các quy tắc tĩnh không hợp lệ trong tiện ích đóng gói sẽ bị bỏ qua.
Bật và tắt các quy tắc và nhóm quy tắc tĩnh
Bạn có thể bật hoặc tắt cả quy tắc tĩnh riêng lẻ và nhóm quy tắc tĩnh hoàn chỉnh trong thời gian chạy.
Tập hợp các quy tắc tĩnh và nhóm quy tắc được bật sẽ được duy trì trong các phiên trình duyệt. Cả hai đều không được duy trì trong các bản cập nhật tiện ích, nghĩa là chỉ những quy tắc bạn chọn để lại trong tệp quy tắc mới có sẵn sau khi cập nhật.
Để đảm bảo hiệu suất, số lượng quy tắc và bộ quy tắc có thể bật cùng một lúc cũng bị giới hạn. Gọi lệnh getAvailableStaticRuleCount() để kiểm tra số lượng quy tắc bổ sung có thể được bật. Để biết thông tin về giới hạn của quy tắc, hãy xem bài viết Giới hạn của quy tắc.
Để bật hoặc tắt quy tắc tĩnh, hãy gọi updateStaticRules(). Phương thức này nhận một đối tượng UpdateStaticRulesOptions, chứa các mảng mã nhận dạng của quy tắc cần bật hoặc tắt. Mã nhận dạng được xác định bằng khoá "id" của từ điển Ruleset.
Để bật hoặc tắt tập hợp quy tắc tĩnh, hãy gọi updateEnabledRulesets(). Phương thức này nhận một đối tượng UpdateRulesetOptions, chứa các mảng mã nhận dạng của bộ quy tắc cần bật hoặc tắt. Mã nhận dạng được xác định bằng khoá "id" của từ điển Ruleset.
Xây dựng quy tắc
Bất kể loại nào, một quy tắc đều bắt đầu bằng 4 trường như dưới đây. Mặc dù các khoá "id" và "priority" nhận một số, nhưng các khoá "action" và "condition" có thể cung cấp một số điều kiện chặn và chuyển hướng. Quy tắc sau đây chặn tất cả yêu cầu tập lệnh bắt nguồn từ "foo.com" đến bất kỳ URL nào có "abc" dưới dạng chuỗi con.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Ký tự khớp với urlFilter
Khoá "condition" của một quy tắc cho phép khoá "urlFilter" hoạt động trên các URL thuộc một miền được chỉ định. Bạn tạo mẫu bằng mã thông báo so khớp mẫu. Dưới đây là một số ví dụ.
urlFilter |
Liên kết | Kết quả không khớp |
|---|---|---|
"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 |
Mức độ ưu tiên của quy tắc
Các quy tắc được kích hoạt bằng yêu cầu gửi từ trang web. Nếu nhiều quy tắc khớp với một yêu cầu cụ thể, thì bạn phải ưu tiên các quy tắc đó. Phần này giải thích cách ưu tiên các quy tắc này. Quá trình ưu tiên diễn ra theo hai giai đoạn.
- Mức độ ưu tiên được xác định cho các quy tắc trong một tiện ích.
- Nếu nhiều tiện ích có thể áp dụng một quy tắc cho một yêu cầu, thì mức độ ưu tiên sẽ được xác định cho tất cả tiện ích khớp với một yêu cầu cụ thể.
Hãy nghĩ về việc so khớp theo cách này: bất kể quy tắc nào mà một tiện ích cụ thể ưu tiên thì sau đó sẽ được ưu tiên so với các quy tắc của các tiện ích khác.
Mức độ ưu tiên của quy tắc trong một tiện ích
Trong một tiện ích, mức độ ưu tiên được xác định theo quy trình sau:
- Quy tắc có mức độ ưu tiên cao nhất do nhà phát triển xác định (nói cách khác là trường
"priority") sẽ được trả về. Nếu có nhiều quy tắc có mức độ ưu tiên cao nhất do nhà phát triển xác định, thì các quy tắc sẽ được ưu tiên bằng cách sử dụng trường
"action", theo thứ tự sau:allowallowAllRequestsblockupgradeSchemeredirect
Nếu loại hành động không phải là
blockhoặcredirect, thì mọi quy tắcmodifyHeadersphù hợp sẽ được đánh giá. Xin lưu ý rằng nếu có bất kỳ quy tắc nào có mức độ ưu tiên do nhà phát triển xác định thấp hơn mức độ ưu tiên được chỉ định choallowvàallowAllRequests, thì các quy tắc đó sẽ bị bỏ qua.Nếu nhiều quy tắc sửa đổi cùng một tiêu đề, thì việc sửa đổi sẽ do trường
"priority"mà nhà phát triển xác định và các thao tác được chỉ định quyết định.- Nếu một quy tắc thêm vào tiêu đề, thì các quy tắc có mức độ ưu tiên thấp hơn chỉ có thể thêm vào tiêu đề đó. Không được phép thực hiện thao tác đặt và xoá.
- Nếu một quy tắc đặt tiêu đề, thì các quy tắc có mức độ ưu tiên thấp hơn chỉ có thể thêm vào tiêu đề đó. Không được phép sửa đổi gì khác.
- Nếu một quy tắc xoá một tiêu đề, thì các quy tắc có mức độ ưu tiên thấp hơn sẽ không thể sửa đổi tiêu đề đó nữa.
Mức độ ưu tiên của quy tắc giữa các tiện ích
Nếu chỉ có một tiện ích có quy tắc khớp với một yêu cầu, thì quy tắc đó sẽ được áp dụng. Tuy nhiên, nếu có nhiều tiện ích phù hợp với một yêu cầu, thì quy trình sau đây sẽ được áp dụng:
Các quy tắc được ưu tiên bằng cách sử dụng trường
"action", theo thứ tự sau:blockredirecthoặcupgradeSchemeallowhoặcallowAllRequests
Nếu có nhiều quy tắc khớp, thì tiện ích được cài đặt gần đây nhất sẽ được ưu tiên.
Hạn mức quy tắc
Có một mức hao tổn hiệu suất khi tải và đánh giá các quy tắc trong trình duyệt, vì vậy, một số giới hạn sẽ áp dụng khi sử dụng API. Giới hạn phụ thuộc vào loại quy tắc bạn đang sử dụng.
Quy tắc tĩnh
Quy tắc tĩnh là những quy tắc được chỉ định trong tệp quy tắc được khai báo trong tệp kê khai. Một tiện ích có thể chỉ định tối đa 50 bộ quy tắc tĩnh trong khoá tệp kê khai "rule_resources", nhưng mỗi lần chỉ có thể bật 10 bộ quy tắc trong số này. Chuỗi sau được gọi là MAX_NUMBER_OF_ENABLED_STATIC_RULESETS. Tổng cộng, các bộ quy tắc đó được đảm bảo có ít nhất 30.000 quy tắc. Đây được gọi là GUARANTEED_MINIMUM_STATIC_RULES.
Số lượng quy tắc có sẵn sau đó phụ thuộc vào số lượng quy tắc được bật bởi tất cả các tiện ích được cài đặt trên trình duyệt của người dùng. Bạn có thể tìm thấy số này trong thời gian chạy bằng cách gọi getAvailableStaticRuleCount(). Bạn có thể xem ví dụ về việc này trong phần ví dụ về mã.
Quy tắc linh động và quy tắc phiên
Giới hạn áp dụng cho quy tắc động và quy tắc phiên đơn giản hơn so với quy tắc tĩnh. Tổng số của cả hai không được vượt quá 5.000. Đây được gọi là MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES.
Quy tắc sử dụng biểu thức chính quy
Tất cả các loại quy tắc đều có thể sử dụng biểu thức chính quy; tuy nhiên, tổng số quy tắc biểu thức chính quy của mỗi loại không được vượt quá 1.000. Đây được gọi là MAX_NUMBER_OF_REGEX_RULES.
Ngoài ra, mỗi quy tắc phải nhỏ hơn 2 KB sau khi biên dịch. Điều này tương quan gần đúng với độ phức tạp của quy tắc. Nếu cố gắng tải một quy tắc vượt quá giới hạn này, bạn sẽ thấy một cảnh báo như bên dưới và quy tắc đó sẽ bị bỏ qua.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
Tương tác với trình chạy dịch vụ
declarativeNetRequest chỉ áp dụng cho các yêu cầu đến được bộ phần cứng và phần mềm mạng. Điều này bao gồm các phản hồi từ bộ nhớ đệm HTTP, nhưng có thể không bao gồm các phản hồi đi qua trình xử lý onfetch của trình chạy dịch vụ. declarativeNetRequest sẽ không ảnh hưởng đến các phản hồi do trình chạy dịch vụ tạo ra hoặc được truy xuất từ CacheStorage, nhưng sẽ ảnh hưởng đến các lệnh gọi đến fetch() được thực hiện trong trình chạy dịch vụ.
Tài nguyên có thể truy cập trên web
Quy tắc declarativeNetRequest không thể chuyển hướng từ yêu cầu tài nguyên công khai đến một tài nguyên không thể truy cập được trên web. Nếu làm như vậy, bạn sẽ gặp lỗi. Điều này đúng ngay cả khi tài nguyên có thể truy cập trên web được chỉ định thuộc sở hữu của tiện ích chuyển hướng. Để khai báo tài nguyên cho declarativeNetRequest, hãy sử dụng mảng "web_accessible_resources" của tệp kê khai.
Ví dụ
Ví dụ về mã
Cập nhật quy tắc động
Ví dụ sau đây trình bày cách gọi updateDynamicRules(). Quy trình cho updateSessionRules() cũng tương tự.
// 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
});
Cập nhật các nhóm quy tắc tĩnh
Ví dụ sau đây cho thấy cách bật và tắt các nhóm quy tắc trong khi xem xét số lượng nhóm quy tắc tĩnh hiện có và số lượng nhóm quy tắc tĩnh tối đa được bật. Bạn sẽ làm việc này khi số lượng quy tắc tĩnh mà bạn cần vượt quá số lượng cho phép. Để tính năng này hoạt động, bạn nên cài đặt một số bộ quy tắc và tắt một số bộ quy tắc (đặt "Enabled" thành false trong tệp kê khai).
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);
}
Ví dụ về quy tắc
Các ví dụ dưới đây minh hoạ cách Chrome ưu tiên các quy tắc trong một tiện ích. Khi xem xét các quy tắc này, bạn nên mở các quy tắc ưu tiên trong một cửa sổ riêng.
Khoá "priority"
Các ví dụ này yêu cầu quyền của máy chủ lưu trữ đối với *://*.example.com/*.
Để xác định mức độ ưu tiên của một URL cụ thể, hãy xem khoá "priority" (do nhà phát triển xác định), khoá "action" và khoá "urlFilter". Các ví dụ này tham chiếu đến tệp quy tắc mẫu được trình bày bên dưới.
- Chuyển đến https://google.com
- Hai quy tắc áp dụng cho URL này: quy tắc có mã nhận dạng 1 và 4. Quy tắc có mã nhận dạng 1 sẽ được áp dụng vì hành động
"block"có mức độ ưu tiên cao hơn hành động"redirect". Các quy tắc còn lại không áp dụng vì chúng dành cho các URL dài hơn. - Chuyển đến https://google.com/1234
- Do URL dài hơn, quy tắc có mã nhận dạng 2 hiện khớp ngoài các quy tắc có mã nhận dạng 1 và 4. Quy tắc có mã nhận dạng 2 sẽ được áp dụng vì
"allow"có mức độ ưu tiên cao hơn"block"và"redirect". - Chuyển đến https://google.com/12345
- Cả 4 quy tắc đều khớp với URL này. Quy tắc có mã nhận dạng 3 sẽ được áp dụng vì mức độ ưu tiên do nhà phát triển xác định là cao nhất trong nhóm.
[
{
"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"] }
},
]
Chuyển hướng
Ví dụ dưới đây yêu cầu quyền của máy chủ lưu trữ đối với *://*.example.com/*.
Ví dụ sau đây cho thấy cách chuyển hướng một yêu cầu từ example.com đến một trang trong chính tiện ích đó. Đường dẫn tiện ích /a.jpg phân giải thành chrome-extension://EXTENSION_ID/a.jpg, trong đó EXTENSION_ID là mã nhận dạng của tiện ích. Để tính năng này hoạt động, tệp kê khai phải khai báo /a.jpg là một tài nguyên có thể truy cập trên web.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Ví dụ sau đây sử dụng khoá "transform" để chuyển hướng đến một miền con của example.com. Ví dụ này sử dụng ký tự neo tên miền ("||") để chặn các yêu cầu có lược đồ bất kỳ từ example.com. Khoá "scheme" trong "transform" chỉ định rằng các lệnh chuyển hướng đến miền con sẽ luôn sử dụng "https".
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
Ví dụ sau đây sử dụng biểu thức chính quy để chuyển hướng từ https://www.abc.xyz.com/path sang https://abc.xyz.com/path. Trong khoá "regexFilter", hãy lưu ý cách thoát dấu chấm và nhóm thu thập chọn "abc" hoặc "def". Khoá "regexSubstitution" chỉ định kết quả khớp đầu tiên được trả về của biểu thức chính quy bằng cách sử dụng "\1". Trong trường hợp này, "abc" được thu thập từ URL chuyển hướng và được đặt vào giá trị thay thế.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Tiêu đề
Ví dụ sau đây xoá tất cả cookie khỏi cả khung chính và mọi khung phụ.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Loại
DomainType
Thông tin này cho biết yêu cầu là của bên thứ nhất hay bên thứ ba đối với khung hình mà yêu cầu đó bắt nguồn. Yêu cầu được coi là của bên thứ nhất nếu có cùng miền (eTLD+1) với khung chứa yêu cầu đó.
Enum
"firstParty"
Yêu cầu mạng là bên thứ nhất đối với khung mà yêu cầu đó bắt nguồn.
"thirdParty"
Yêu cầu mạng là bên thứ ba đối với khung mà yêu cầu đó bắt nguồn.
ExtensionActionOptions
Thuộc tính
-
displayActionCountAsBadgeText
boolean không bắt buộc
Có tự động hiển thị số lượng hành động cho một trang dưới dạng văn bản huy hiệu của tiện ích hay không. Lựa chọn ưu tiên này được duy trì giữa các phiên.
-
tabUpdate
TabActionCountUpdate không bắt buộc
Chrome 89 trở lênThông tin chi tiết về cách điều chỉnh số lượng hành động của thẻ.
GetDisabledRuleIdsOptions
Thuộc tính
-
rulesetId
chuỗi
Mã nhận dạng tương ứng với
Rulesettĩnh.
GetRulesFilter
Thuộc tính
-
ruleIds
number[] không bắt buộc
Nếu được chỉ định, thì chỉ những quy tắc có mã nhận dạng để so khớp mới được đưa vào.
HeaderInfo
Thuộc tính
-
excludedValues
string[] không bắt buộc
Nếu được chỉ định, điều kiện này sẽ không khớp nếu tiêu đề tồn tại nhưng giá trị của tiêu đề chứa ít nhất một phần tử trong danh sách này. Thuộc tính này sử dụng cùng một cú pháp mẫu khớp như
values. -
tiêu đề
chuỗi
Tên của tiêu đề. Điều kiện này chỉ khớp với tên nếu cả
valuesvàexcludedValuesđều không được chỉ định. -
giá trị
string[] không bắt buộc
Nếu được chỉ định, điều kiện này sẽ khớp nếu giá trị của tiêu đề khớp với ít nhất một mẫu trong danh sách này. Tính năng này hỗ trợ việc so khớp giá trị tiêu đề không phân biệt chữ hoa chữ thường, cùng với các cấu trúc sau:
"*" : Khớp với số lượng ký tự bất kỳ.
"?" : Khớp với không hoặc một ký tự.
Bạn có thể thoát "*" và "?" bằng dấu gạch chéo ngược, ví dụ: "\*" và "\?"
HeaderOperation
Phần này mô tả các thao tác có thể thực hiện đối với quy tắc "modifyHeaders".
Enum
"append"
Thêm một mục mới cho tiêu đề được chỉ định. Khi sửa đổi tiêu đề của một yêu cầu, thao tác này chỉ được hỗ trợ cho các tiêu đề cụ thể.
"set"
Đặt giá trị mới cho tiêu đề được chỉ định, xoá mọi tiêu đề hiện có có cùng tên.
"remove"
Xoá tất cả các mục cho tiêu đề đã chỉ định.
IsRegexSupportedResult
Thuộc tính
-
isSupported
boolean
-
lý do
UnsupportedRegexReason không bắt buộc
Chỉ định lý do biểu thức chính quy không được hỗ trợ. Chỉ được cung cấp nếu
isSupportedlà false.
MatchedRule
Thuộc tính
-
ruleId
số
Mã nhận dạng của quy tắc trùng khớp.
-
rulesetId
chuỗi
Mã nhận dạng của
Rulesetmà quy tắc này thuộc về. Đối với quy tắc bắt nguồn từ tập hợp quy tắc động, giá trị này sẽ bằngDYNAMIC_RULESET_ID.
MatchedRuleInfo
Thuộc tính
-
quy tắc
-
tabId
số
tabId của thẻ nơi yêu cầu bắt nguồn nếu thẻ vẫn đang hoạt động. Nếu không, hãy trả về -1.
-
timeStamp
số
Thời điểm quy tắc được so khớp. Dấu thời gian sẽ tương ứng với quy ước Javascript về thời gian, tức là số mili giây kể từ thời gian bắt đầu của hệ thống.
MatchedRuleInfoDebug
Thuộc tính
-
request
Thông tin chi tiết về yêu cầu mà quy tắc này khớp.
-
quy tắc
MatchedRulesFilter
Thuộc tính
-
minTimeStamp
number không bắt buộc
Nếu được chỉ định, chỉ so khớp các quy tắc sau dấu thời gian đã cho.
-
tabId
number không bắt buộc
Nếu được chỉ định, chỉ so khớp các quy tắc cho thẻ đã cho. Khớp với các quy tắc không liên kết với bất kỳ thẻ nào đang hoạt động nếu được đặt thành -1.
ModifyHeaderInfo
Thuộc tính
-
tiêu đề
chuỗi
Tên của tiêu đề cần sửa đổi.
-
hoạt động
Thao tác cần thực hiện trên tiêu đề.
-
value
chuỗi không bắt buộc
Giá trị mới cho tiêu đề. Phải được chỉ định cho các thao tác
appendvàset.
QueryKeyValue
Thuộc tính
-
phím
chuỗi
-
replaceOnly
boolean không bắt buộc
Chrome 94 trở lênNếu đúng, khoá truy vấn chỉ được thay thế nếu đã có sẵn. Nếu không, khoá cũng sẽ được thêm vào nếu bị thiếu. Giá trị mặc định là false.
-
value
chuỗi
QueryTransform
Thuộc tính
-
addOrReplaceParams
QueryKeyValue[] không bắt buộc
Danh sách các cặp khoá-giá trị của truy vấn cần thêm hoặc thay thế.
-
removeParams
string[] không bắt buộc
Danh sách các khoá truy vấn cần xoá.
Redirect
Thuộc tính
-
extensionPath
chuỗi không bắt buộc
Đường dẫn tương ứng với thư mục tiện ích. Phải bắt đầu bằng "/".
-
regexSubstitution
chuỗi không bắt buộc
Mẫu thay thế cho các quy tắc chỉ định
regexFilter. Kết quả khớp đầu tiên củaregexFiltertrong URL sẽ được thay thế bằng mẫu này. TrongregexSubstitution, bạn có thể sử dụng các chữ số có dấu gạch chéo ngược (\1 đến \9) để chèn các nhóm thu thập tương ứng. \0 đề cập đến toàn bộ văn bản trùng khớp. -
biến đổi
URLTransform không bắt buộc
Các phép biến đổi URL cần thực hiện.
-
url
chuỗi không bắt buộc
URL chuyển hướng. Không được phép chuyển hướng đến URL JavaScript.
RegexOptions
Thuộc tính
-
isCaseSensitive
boolean không bắt buộc
Liệu
regexđược chỉ định có phân biệt chữ hoa chữ thường hay không. Mặc định là đúng. -
biểu thức chính quy
chuỗi
Biểu thức chính quy cần kiểm tra.
-
requireCapturing
boolean không bắt buộc
Liệu
regexđược chỉ định có cần chụp hay không. Bạn chỉ cần thu thập thông tin cho các quy tắc chuyển hướng chỉ định hành độngregexSubstition. Giá trị mặc định là "false".
RequestDetails
Thuộc tính
-
documentId
chuỗi không bắt buộc
Chrome 106 trở lênGiá trị nhận dạng riêng biệt cho tài liệu của khung, nếu yêu cầu này là dành cho một khung.
-
documentLifecycle
DocumentLifecycle không bắt buộc
Chrome 106 trở lênVòng đời của tài liệu trong khung, nếu yêu cầu này là dành cho một khung.
-
frameId
số
Giá trị 0 cho biết yêu cầu xảy ra trong khung chính; giá trị dương cho biết mã nhận dạng của khung phụ nơi yêu cầu xảy ra. Nếu tài liệu của một khung (phụ) được tải (
typelàmain_framehoặcsub_frame), thìframeIdcho biết mã nhận dạng của khung này, chứ không phải mã nhận dạng của khung bên ngoài. Mã khung là duy nhất trong một thẻ. -
frameType
FrameType không bắt buộc
Chrome 106 trở lênLoại khung, nếu yêu cầu này là dành cho một khung.
-
bên khởi xướng
chuỗi không bắt buộc
Nguồn gốc nơi yêu cầu được bắt đầu. Điều này không thay đổi thông qua lệnh chuyển hướng. Nếu đây là một nguồn gốc mờ, chuỗi "null" sẽ được sử dụng.
-
method
chuỗi
Phương thức HTTP chuẩn.
-
parentDocumentId
chuỗi không bắt buộc
Chrome 106 trở lênGiá trị nhận dạng riêng biệt cho tài liệu gốc của khung, nếu yêu cầu này dành cho một khung và có tài liệu gốc.
-
parentFrameId
số
Mã nhận dạng của khung bao bọc khung đã gửi yêu cầu. Đặt thành -1 nếu không có khung mẹ.
-
requestId
chuỗi
Mã của yêu cầu. Mã yêu cầu là duy nhất trong một phiên trình duyệt.
-
tabId
số
Mã nhận dạng của thẻ nơi yêu cầu diễn ra. Đặt thành -1 nếu yêu cầu không liên quan đến thẻ.
-
loại
Loại tài nguyên của yêu cầu.
-
url
chuỗi
URL của yêu cầu.
RequestMethod
Thuộc tính này mô tả phương thức yêu cầu HTTP của một yêu cầu mạng.
Enum
"connect"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
Thông tin này mô tả loại tài nguyên của yêu cầu mạng.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
Thuộc tính
-
hành động
Hành động cần thực hiện nếu quy tắc này được so khớp.
-
điều kiện
Điều kiện kích hoạt quy tắc này.
-
id
số
Mã nhận dạng riêng biệt của một quy tắc. Bắt buộc và phải >= 1.
-
của chiến dịch
number không bắt buộc
Mức độ ưu tiên của quy tắc. Giá trị mặc định là 1. Khi được chỉ định, giá trị phải >= 1.
RuleAction
Thuộc tính
-
chuyển hướng
Chuyển hướng không bắt buộc
Mô tả cách thực hiện lệnh chuyển hướng. Chỉ hợp lệ cho quy tắc chuyển hướng.
-
requestHeaders
ModifyHeaderInfo[] không bắt buộc
Chrome 86 trở lênTiêu đề của yêu cầu cần sửa đổi cho yêu cầu. Chỉ hợp lệ nếu RuleActionType là "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] không bắt buộc
Chrome 86 trở lênTiêu đề phản hồi cần sửa đổi cho yêu cầu. Chỉ hợp lệ nếu RuleActionType là "modifyHeaders".
-
loại
Loại hành động cần thực hiện.
RuleActionType
Mô tả loại hành động cần thực hiện nếu RuleCondition đã cho khớp.
Enum
"block"
Chặn yêu cầu mạng.
"redirect"
Chuyển hướng yêu cầu mạng.
"allow"
Cho phép yêu cầu mạng. Yêu cầu sẽ không bị chặn nếu có một quy tắc cho phép khớp với yêu cầu đó.
"upgradeScheme"
Nâng cấp giao thức của URL yêu cầu mạng lên https nếu yêu cầu là http hoặc ftp.
"modifyHeaders"
Sửa đổi tiêu đề yêu cầu/tiêu đề phản hồi từ yêu cầu mạng.
"allowAllRequests"
Cho phép tất cả yêu cầu trong hệ phân cấp khung, bao gồm cả yêu cầu khung.
RuleCondition
Thuộc tính
-
domainType
DomainType không bắt buộc
Chỉ định xem yêu cầu mạng là của bên thứ nhất hay bên thứ ba đối với miền mà yêu cầu đó bắt nguồn. Nếu bạn bỏ qua, tất cả yêu cầu sẽ được chấp nhận.
-
tên miền
string[] không bắt buộc
Ngừng sử dụng kể từ Chrome 101Thay vào đó, hãy sử dụng
initiatorDomainsQuy tắc này sẽ chỉ khớp với các yêu cầu mạng bắt nguồn từ danh sách
domains. -
excludedDomains
string[] không bắt buộc
Ngừng sử dụng kể từ Chrome 101Thay vào đó, hãy sử dụng
excludedInitiatorDomainsQuy tắc này sẽ không khớp với các yêu cầu mạng bắt nguồn từ danh sách
excludedDomains. -
excludedInitiatorDomains
string[] không bắt buộc
Chrome 101 trở lênQuy tắc này sẽ không khớp với các yêu cầu mạng bắt nguồn từ danh sách
excludedInitiatorDomains. Nếu danh sách này trống hoặc bị bỏ qua, thì không có miền nào bị loại trừ. Chính sách này được ưu tiên hơninitiatorDomains.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Điều này khớp với trình khởi tạo yêu cầu chứ không phải URL yêu cầu.
- Các miền con của miền được liệt kê cũng bị loại trừ.
-
excludedRequestDomains
string[] không bắt buộc
Chrome 101 trở lênQuy tắc này sẽ không khớp với các yêu cầu mạng khi miền khớp với một miền trong danh sách
excludedRequestDomains. Nếu danh sách này trống hoặc bị bỏ qua, thì không có miền nào bị loại trừ. Chính sách này được ưu tiên hơnrequestDomains.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Các miền con của miền được liệt kê cũng bị loại trừ.
-
excludedRequestMethods
RequestMethod[] không bắt buộc
Chrome 91 trở lênDanh sách các phương thức yêu cầu mà quy tắc sẽ không khớp. Bạn chỉ nên chỉ định một trong hai thuộc tính
requestMethodsvàexcludedRequestMethods. Nếu bạn không chỉ định phương thức nào, thì tất cả phương thức yêu cầu đều được so khớp. -
excludedResourceTypes
ResourceType[] không bắt buộc
Danh sách các loại tài nguyên mà quy tắc sẽ không khớp. Bạn chỉ nên chỉ định một trong hai thuộc tính
resourceTypesvàexcludedResourceTypes. Nếu bạn không chỉ định loại nào, thì tất cả các loại tài nguyên ngoại trừ "main_frame" đều bị chặn. -
excludedResponseHeaders
HeaderInfo[] không bắt buộc
Chrome 128 trở lênQuy tắc sẽ không khớp nếu yêu cầu khớp với bất kỳ điều kiện nào về tiêu đề phản hồi trong danh sách này (nếu được chỉ định). Nếu bạn chỉ định cả
excludedResponseHeadersvàresponseHeaders, thì thuộc tínhexcludedResponseHeaderssẽ được ưu tiên. -
excludedTabIds
number[] không bắt buộc
Chrome 92 trở lênDanh sách
tabs.Tab.idmà quy tắc không được khớp. Mãtabs.TAB_ID_NONEloại trừ các yêu cầu không bắt nguồn từ một thẻ. Chỉ hỗ trợ cho các quy tắc ở phạm vi phiên. -
excludedTopDomains
string[] không bắt buộc
Chrome 145 trở lênQuy tắc này sẽ không khớp với các yêu cầu mạng khi miền của khung cấp cao nhất liên kết khớp với một miền trong danh sách
excludedTopDomains. Nếu danh sách này trống hoặc bị bỏ qua, thì không có miền nào bị loại trừ. Chính sách này được ưu tiên hơntopDomains.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Các miền con của miền được liệt kê cũng bị loại trừ.
- Đối với các yêu cầu không có khung cấp cao nhất liên kết (ví dụ: yêu cầu do ServiceWorker khởi tạo), miền của trình khởi tạo yêu cầu sẽ được xem xét.
-
initiatorDomains
string[] không bắt buộc
Chrome 101 trở lênQuy tắc này sẽ chỉ khớp với các yêu cầu mạng bắt nguồn từ danh sách
initiatorDomains. Nếu bạn bỏ qua danh sách này, thì quy tắc sẽ được áp dụng cho các yêu cầu từ tất cả miền. Không được phép để trống danh sách.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Điều này khớp với trình khởi tạo yêu cầu chứ không phải URL yêu cầu.
- Các miền con của miền được liệt kê cũng được so khớp.
-
isUrlFilterCaseSensitive
boolean không bắt buộc
Liệu
urlFilterhayregexFilter(tuỳ theo giá trị được chỉ định) có phân biệt chữ hoa chữ thường hay không. Mặc định là sai. -
regexFilter
chuỗi không bắt buộc
Biểu thức chính quy để so khớp với URL yêu cầu mạng. Bộ lọc này sử dụng cú pháp RE2.
Lưu ý: Bạn chỉ có thể chỉ định một trong hai thuộc tính
urlFilterhoặcregexFilter.Lưu ý:
regexFilterchỉ được chứa các ký tự ASCII. Mẫu này được so khớp với một URL trong đó máy chủ lưu trữ được mã hoá theo định dạng punycode (trong trường hợp miền quốc tế hoá) và mọi ký tự không phải ASCII khác đều được mã hoá URL theo định dạng utf-8. -
requestDomains
string[] không bắt buộc
Chrome 101 trở lênQuy tắc này sẽ chỉ khớp với các yêu cầu mạng khi miền khớp với một miền trong danh sách
requestDomains. Nếu bạn bỏ qua danh sách này, thì quy tắc sẽ được áp dụng cho các yêu cầu từ tất cả miền. Không được phép để trống danh sách.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Các miền con của miền được liệt kê cũng được so khớp.
-
requestMethods
RequestMethod[] không bắt buộc
Chrome 91 trở lênDanh sách các phương thức yêu cầu HTTP mà quy tắc có thể so khớp. Không được phép để trống danh sách.
Lưu ý: Việc chỉ định điều kiện quy tắc
requestMethodscũng sẽ loại trừ các yêu cầu không phải HTTP(S), trong khi việc chỉ địnhexcludedRequestMethodsthì không. -
resourceTypes
ResourceType[] không bắt buộc
Danh sách các loại tài nguyên mà quy tắc có thể so khớp. Không được phép để trống danh sách.
Lưu ý: bạn phải chỉ định thuộc tính này cho các quy tắc
allowAllRequestsvà chỉ có thể bao gồm các loại tài nguyênsub_framevàmain_frame. -
responseHeaders
HeaderInfo[] không bắt buộc
Chrome 128 trở lênQuy tắc sẽ khớp nếu yêu cầu khớp với bất kỳ điều kiện nào về tiêu đề phản hồi trong danh sách này (nếu được chỉ định).
-
tabIds
number[] không bắt buộc
Chrome 92 trở lênDanh sách
tabs.Tab.idmà quy tắc phải khớp. Mã nhận dạngtabs.TAB_ID_NONEkhớp với các yêu cầu không bắt nguồn từ một thẻ. Không được phép để trống danh sách. Chỉ hỗ trợ cho các quy tắc ở phạm vi phiên. -
topDomains
string[] không bắt buộc
Chrome 145 trở lênQuy tắc này sẽ chỉ khớp với các yêu cầu mạng khi miền của khung cấp cao nhất liên kết khớp với một miền trong danh sách
topDomains. Nếu danh sách này bị bỏ qua, thì quy tắc sẽ được áp dụng cho các yêu cầu liên kết với tất cả miền khung cấp cao nhất. Không được phép để trống danh sách.Lưu ý:
- Bạn cũng có thể sử dụng các miền con như "a.example.com".
- Nội dung nhập chỉ được chứa ký tự ASCII.
- Sử dụng phương thức mã hoá punycode cho miền quốc tế hoá.
- Các miền con của miền được liệt kê cũng được so khớp.
- Đối với các yêu cầu không có khung cấp cao nhất liên kết (ví dụ: yêu cầu do ServiceWorker khởi tạo), miền của trình khởi tạo yêu cầu sẽ được xem xét.
-
urlFilter
chuỗi không bắt buộc
Mẫu được so khớp với URL yêu cầu mạng. Cấu trúc được hỗ trợ:
"*" : Ký tự đại diện: Khớp với số lượng ký tự bất kỳ.
"|" : Điểm neo trái/phải: Nếu được sử dụng ở một trong hai đầu của mẫu, thì ký tự này sẽ chỉ định điểm bắt đầu/kết thúc của URL tương ứng.
"||" : Điểm neo tên miền: Nếu được sử dụng ở đầu mẫu, thì điểm neo này sẽ chỉ định điểm bắt đầu của một miền (phụ) của URL.
"^" : Ký tự phân tách: Ký tự này khớp với mọi ký tự ngoại trừ chữ cái, chữ số hoặc một trong các ký tự sau:
_,-,.hoặc%. Ký tự này cũng khớp với phần cuối của URL.Do đó,
urlFilterbao gồm các phần sau: (ký tự neo bên trái/tên miền không bắt buộc) + mẫu + (ký tự neo bên phải không bắt buộc).Nếu bạn bỏ qua, tất cả URL đều được so khớp. Không được để trống chuỗi.
Không cho phép mẫu bắt đầu bằng
||*. Thay vào đó, hãy sử dụng*.Lưu ý: Bạn chỉ có thể chỉ định một trong hai thuộc tính
urlFilterhoặcregexFilter.Lưu ý:
urlFilterchỉ được chứa các ký tự ASCII. Mẫu này được so khớp với một URL trong đó máy chủ lưu trữ được mã hoá theo định dạng punycode (trong trường hợp miền quốc tế hoá) và mọi ký tự không phải ASCII khác đều được mã hoá URL theo định dạng utf-8. Ví dụ: khi URL yêu cầu là http://abc.рф?q=ф,urlFiltersẽ được so khớp với URL http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
Enum
"urlFilter"
"regexFilter"
"isUrlFilterCaseSensitive"
"initiatorDomains"
"excludedInitiatorDomains"
"requestDomains"
"excludedRequestDomains"
"topDomains"
"excludedTopDomains"
"domains"
"excludedDomains"
"resourceTypes"
"excludedResourceTypes"
"requestMethods"
"excludedRequestMethods"
"domainType"
"tabIds"
"excludedTabIds"
"responseHeaders"
"excludedResponseHeaders"
Ruleset
Thuộc tính
-
đang bật
boolean
Liệu bộ quy tắc có được bật theo mặc định hay không.
-
id
chuỗi
Một chuỗi không trống giúp xác định riêng biệt bộ quy tắc. Mã nhận dạng bắt đầu bằng "_" được dành riêng cho mục đích sử dụng nội bộ.
-
đường dẫn
chuỗi
Đường dẫn của bộ quy tắc JSON tương ứng với thư mục tiện ích.
RulesMatchedDetails
Thuộc tính
-
rulesMatchedInfo
Các quy tắc khớp với bộ lọc đã cho.
TabActionCountUpdate
Thuộc tính
-
tăng dần
số
Số lượng để tăng số lượng hành động của thẻ. Giá trị âm sẽ làm giảm số lượng.
-
tabId
số
Thẻ cần cập nhật số lượng hành động.
TestMatchOutcomeResult
Thuộc tính
-
matchedRules
Các quy tắc (nếu có) khớp với yêu cầu giả định.
TestMatchRequestDetails
Thuộc tính
-
bên khởi xướng
chuỗi không bắt buộc
URL của trình khởi tạo (nếu có) cho yêu cầu giả định.
-
method
RequestMethod không bắt buộc
Phương thức HTTP chuẩn của yêu cầu giả định. Mặc định là "get" cho các yêu cầu HTTP và bị bỏ qua đối với các yêu cầu không phải HTTP.
-
responseHeaders
object không bắt buộc
Chrome 129 trở lênTiêu đề do một phản hồi giả định cung cấp nếu yêu cầu không bị chặn hoặc chuyển hướng trước khi được gửi. Được biểu thị dưới dạng một đối tượng liên kết tên tiêu đề với danh sách các giá trị chuỗi. Nếu không được chỉ định, phản hồi giả định sẽ trả về tiêu đề phản hồi trống, có thể khớp với các quy tắc khớp với trường hợp không có tiêu đề. Ví dụ:
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number không bắt buộc
Mã nhận dạng của thẻ nơi yêu cầu giả định diễn ra. Không cần phải tương ứng với mã nhận dạng thẻ thực. Giá trị mặc định là -1, nghĩa là yêu cầu không liên quan đến thẻ.
-
topUrl
chuỗi không bắt buộc
Chrome 145 trở lênURL khung cấp cao nhất được liên kết (nếu có) cho yêu cầu.
-
loại
Loại tài nguyên của yêu cầu giả định.
-
url
chuỗi
URL của yêu cầu giả định.
UnsupportedRegexReason
Mô tả lý do khiến một biểu thức chính quy nhất định không được hỗ trợ.
Enum
"syntaxError"
Biểu thức chính quy không đúng cú pháp hoặc sử dụng các tính năng không có trong cú pháp RE2.
"memoryLimitExceeded"
Biểu thức chính quy vượt quá giới hạn bộ nhớ.
UpdateRuleOptions
Thuộc tính
-
addRules
Rule[] không bắt buộc
Quy tắc cần thêm.
-
removeRuleIds
number[] không bắt buộc
Mã nhận dạng của các quy tắc cần xoá. Mọi mã nhận dạng không hợp lệ đều sẽ bị bỏ qua.
UpdateRulesetOptions
Thuộc tính
UpdateStaticRulesOptions
Thuộc tính
URLTransform
Thuộc tính
-
mảnh
chuỗi không bắt buộc
Mảnh mới cho yêu cầu. Phải để trống (trong trường hợp này, mảnh hiện có sẽ bị xoá) hoặc phải bắt đầu bằng dấu "#".
-
người tổ chức
chuỗi không bắt buộc
Máy chủ lưu trữ mới cho yêu cầu.
-
mật khẩu
chuỗi không bắt buộc
Mật khẩu mới cho yêu cầu.
-
đường dẫn
chuỗi không bắt buộc
Đường dẫn mới cho yêu cầu. Nếu để trống, đường dẫn hiện có sẽ bị xoá.
-
cổng
chuỗi không bắt buộc
Cổng mới cho yêu cầu. Nếu để trống, cổng hiện có sẽ bị xoá.
-
truy vấn
chuỗi không bắt buộc
Cụm từ tìm kiếm mới cho yêu cầu. Phải để trống (trong trường hợp này, truy vấn hiện tại sẽ bị xoá) hoặc phải bắt đầu bằng dấu "?".
-
queryTransform
QueryTransform không bắt buộc
Thêm, xoá hoặc thay thế các cặp khoá-giá trị của truy vấn.
-
lược đồ
chuỗi không bắt buộc
Lược đồ mới cho yêu cầu. Các giá trị được cho phép là "http", "https", "ftp" và "chrome-extension".
-
tên người dùng
chuỗi không bắt buộc
Tên người dùng mới cho yêu cầu.
Thuộc tính
DYNAMIC_RULESET_ID
Mã nhóm quy tắc cho các quy tắc động do tiện ích thêm vào.
Giá trị
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Khoảng thời gian có thể thực hiện các lệnh gọi MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules, được chỉ định bằng phút. Các lệnh gọi bổ sung sẽ không thành công ngay lập tức và đặt runtime.lastError. Lưu ý: Các lệnh gọi getMatchedRules liên kết với cử chỉ của người dùng sẽ được miễn hạn mức.
Giá trị
10
GUARANTEED_MINIMUM_STATIC_RULES
Số lượng quy tắc tĩnh tối thiểu được đảm bảo cho một tiện ích trên các nhóm quy tắc tĩnh đã bật. Mọi quy tắc vượt quá giới hạn này sẽ được tính vào giới hạn quy tắc tĩnh chung.
Giá trị
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Số lần getMatchedRules có thể được gọi trong khoảng thời gian GETMATCHEDRULES_QUOTA_INTERVAL.
Giá trị
20
MAX_NUMBER_OF_DYNAMIC_RULES
Số lượng quy tắc động tối đa mà một tiện ích có thể thêm.
Giá trị
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Số lượng Rulesets tĩnh tối đa mà một tiện ích có thể bật tại bất kỳ thời điểm nào.
Giá trị
50
MAX_NUMBER_OF_REGEX_RULES
Số lượng quy tắc biểu thức chính quy tối đa mà một tiện ích có thể thêm. Giới hạn này được đánh giá riêng cho tập hợp quy tắc động và các quy tắc được chỉ định trong tệp tài nguyên quy tắc.
Giá trị
1000
MAX_NUMBER_OF_SESSION_RULES
Số lượng quy tắc tối đa trong phạm vi phiên mà một tiện ích có thể thêm.
Giá trị
5000
MAX_NUMBER_OF_STATIC_RULESETS
Số lượng Rulesets tĩnh tối đa mà một tiện ích có thể chỉ định trong khoá tệp kê khai "rule_resources".
Giá trị
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Số lượng quy tắc động "không an toàn" tối đa mà một tiện ích có thể thêm.
Giá trị
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Số lượng quy tắc "không an toàn" tối đa trong phạm vi phiên mà một tiện ích có thể thêm.
Giá trị
5000
SESSION_RULESET_ID
Mã nhận dạng của nhóm quy tắc cho các quy tắc ở phạm vi phiên do tiện ích thêm vào.
Giá trị
"_session"
Phương thức
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Trả về số lượng quy tắc tĩnh mà một tiện ích có thể bật trước khi đạt đến giới hạn quy tắc tĩnh chung.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(count: number) => void
-
số lượng
số
-
Giá trị trả về
-
Promise<number>
Chrome 91 trở lênLời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Trả về danh sách các quy tắc tĩnh trong Ruleset đã cho hiện đang bị tắt.
Thông số
-
tùy chọn
Chỉ định bộ quy tắc cần truy vấn.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(disabledRuleIds: number[]) => void
-
disabledRuleIds
number[]
-
Giá trị trả về
-
Promise<number[]>
Lời hứa sẽ phân giải bằng danh sách mã nhận dạng tương ứng với các quy tắc bị vô hiệu hoá trong bộ quy tắc đó.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Trả về tập hợp quy tắc động hiện tại cho tiện ích. Người gọi có thể tuỳ ý lọc danh sách các quy tắc được tìm nạp bằng cách chỉ định filter.
Thông số
-
filter
GetRulesFilter không bắt buộc
Chrome 111 trở lênMột đối tượng để lọc danh sách các quy tắc được tìm nạp.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(rules: Rule[]) => void
-
quy tắc
Quy tắc[]
-
Giá trị trả về
-
Promise<Rule[]>
Chrome 91 trở lênLời hứa sẽ giải quyết bằng tập hợp các quy tắc động. Promise có thể bị từ chối trong trường hợp xảy ra lỗi nội bộ tạm thời.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Trả về mã nhận dạng cho nhóm quy tắc tĩnh hiện đang bật.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(rulesetIds: string[]) => void
-
rulesetIds
string[]
-
Giá trị trả về
-
Promise<string[]>
Chrome 91 trở lênLời hứa sẽ phân giải bằng danh sách mã nhận dạng, trong đó mỗi mã nhận dạng tương ứng với một
Rulesettĩnh đã bật.Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Trả về tất cả các quy tắc phù hợp với tiện ích. Người gọi có thể tuỳ ý lọc danh sách các quy tắc phù hợp bằng cách chỉ định một filter. Phương thức này chỉ dành cho các tiện ích có quyền "declarativeNetRequestFeedback" hoặc được cấp quyền "activeTab" cho tabId được chỉ định trong filter. Lưu ý: Những quy tắc không liên kết với một tài liệu đang hoạt động và được so khớp cách đây hơn 5 phút sẽ không được trả về.
Thông số
-
filter
MatchedRulesFilter không bắt buộc
Một đối tượng để lọc danh sách các quy tắc phù hợp.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(details: RulesMatchedDetails) => void
-
chi tiết
-
Giá trị trả về
-
Promise<RulesMatchedDetails>
Chrome 91 trở lênLời hứa sẽ giải quyết sau khi danh sách các quy tắc phù hợp được tìm nạp. Trong trường hợp xảy ra lỗi, Promise sẽ bị từ chối. Điều này có thể xảy ra vì nhiều lý do, chẳng hạn như không đủ quyền hoặc vượt quá hạn mức.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Trả về nhóm quy tắc hiện tại trong phạm vi phiên cho tiện ích. Người gọi có thể tuỳ ý lọc danh sách các quy tắc được tìm nạp bằng cách chỉ định filter.
Thông số
-
filter
GetRulesFilter không bắt buộc
Chrome 111 trở lênMột đối tượng để lọc danh sách các quy tắc được tìm nạp.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(rules: Rule[]) => void
-
quy tắc
Quy tắc[]
-
Giá trị trả về
-
Promise<Rule[]>
Chrome 91 trở lênLời hứa sẽ phân giải bằng tập hợp các quy tắc trong phạm vi phiên.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Kiểm tra xem biểu thức chính quy đã cho có được hỗ trợ dưới dạng điều kiện quy tắc regexFilter hay không.
Thông số
-
regexOptions
Biểu thức chính quy cần kiểm tra.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(result: IsRegexSupportedResult) => void
-
kết quả
-
Giá trị trả về
-
Promise<IsRegexSupportedResult>
Chrome 91 trở lênLời hứa sẽ giải quyết bằng thông tin chi tiết bao gồm việc biểu thức chính quy có được hỗ trợ hay không và lý do nếu không.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Định cấu hình xem số lượng hành động cho các thẻ có được hiển thị dưới dạng văn bản huy hiệu của hành động tiện ích hay không và cung cấp cách để tăng số lượng hành động đó.
Thông số
-
tùy chọn
-
callback
hàm không bắt buộc
Chrome 89 trở lênTham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 91 trở lênLời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Kiểm tra xem có quy tắc declarativeNetRequest nào của tiện ích khớp với một yêu cầu giả định hay không. Lưu ý: Chỉ dành cho các tiện ích chưa đóng gói vì tiện ích này chỉ được dùng trong quá trình phát triển tiện ích.
Thông số
-
request
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(result: TestMatchOutcomeResult) => void
-
kết quả
-
Giá trị trả về
-
Promise<TestMatchOutcomeResult>
Lời hứa sẽ giải quyết bằng thông tin chi tiết về các quy tắc phù hợp.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Sửa đổi tập hợp quy tắc động hiện tại cho tiện ích. Các quy tắc có mã nhận dạng được liệt kê trong options.removeRuleIds sẽ bị xoá trước, sau đó các quy tắc được cung cấp trong options.addRules sẽ được thêm vào. Lưu ý:
- Nội dung cập nhật này diễn ra dưới dạng một thao tác nguyên tử duy nhất: tất cả các quy tắc được chỉ định đều được thêm và xoá, hoặc hệ thống sẽ trả về lỗi.
- Các quy tắc này được duy trì trong các phiên trình duyệt và trong các bản cập nhật tiện ích.
- Bạn không thể xoá các quy tắc tĩnh được chỉ định trong gói tiện ích bằng hàm này.
MAX_NUMBER_OF_DYNAMIC_RULESlà số lượng quy tắc động tối đa mà một tiện ích có thể thêm. Số lượng quy tắc không an toàn không được vượt quáMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Thông số
-
tùy chọnChrome 87 trở lên
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 91 trở lênLời hứa sẽ được giải quyết sau khi quá trình cập nhật hoàn tất. Trong trường hợp xảy ra lỗi, lời hứa sẽ bị từ chối và không có thay đổi nào được thực hiện đối với nhóm quy tắc. Điều này có thể xảy ra vì nhiều lý do, chẳng hạn như định dạng quy tắc không hợp lệ, mã quy tắc trùng lặp, vượt quá giới hạn số lượng quy tắc, lỗi nội bộ và các lý do khác.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Cập nhật tập hợp các nhóm quy tắc tĩnh đã bật cho tiện ích. Trước tiên, các nhóm quy tắc có mã nhận dạng được liệt kê trong options.disableRulesetIds sẽ bị xoá, sau đó các nhóm quy tắc được liệt kê trong options.enableRulesetIds sẽ được thêm vào.
Xin lưu ý rằng tập hợp các nhóm quy tắc tĩnh được bật sẽ được duy trì giữa các phiên nhưng không được duy trì giữa các bản cập nhật tiện ích, tức là khoá tệp kê khai rule_resources sẽ xác định tập hợp các nhóm quy tắc tĩnh được bật trên mỗi bản cập nhật tiện ích.
Thông số
-
tùy chọnChrome 87 trở lên
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 91 trở lênLời hứa sẽ được giải quyết sau khi quá trình cập nhật hoàn tất. Trong trường hợp xảy ra lỗi, lời hứa sẽ bị từ chối và không có thay đổi nào được thực hiện đối với tập hợp các nhóm quy tắc đã bật. Điều này có thể xảy ra vì nhiều lý do, chẳng hạn như mã bộ quy tắc không hợp lệ, vượt quá giới hạn số lượng quy tắc hoặc lỗi nội bộ.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Sửa đổi nhóm quy tắc hiện tại trong phạm vi phiên cho tiện ích. Các quy tắc có mã nhận dạng được liệt kê trong options.removeRuleIds sẽ bị xoá trước, sau đó các quy tắc được cung cấp trong options.addRules sẽ được thêm vào. Lưu ý:
- Nội dung cập nhật này diễn ra dưới dạng một thao tác nguyên tử duy nhất: tất cả các quy tắc được chỉ định đều được thêm và xoá, hoặc hệ thống sẽ trả về lỗi.
- Các quy tắc này không được duy trì giữa các phiên và được lưu trong bộ nhớ.
MAX_NUMBER_OF_SESSION_RULESlà số lượng quy tắc phiên tối đa mà một tiện ích có thể thêm.
Thông số
-
tùy chọn
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 91 trở lênLời hứa sẽ được giải quyết sau khi quá trình cập nhật hoàn tất. Trong trường hợp xảy ra lỗi, lời hứa sẽ bị từ chối và không có thay đổi nào được thực hiện đối với nhóm quy tắc. Điều này có thể xảy ra vì nhiều lý do, chẳng hạn như định dạng quy tắc không hợp lệ, mã quy tắc trùng lặp, vượt quá giới hạn số lượng quy tắc và các lý do khác.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Tắt và bật từng quy tắc tĩnh trong một Ruleset. Những thay đổi đối với các quy tắc thuộc một Ruleset bị vô hiệu hoá sẽ có hiệu lực vào lần tiếp theo quy tắc đó được bật.
Thông số
-
tùy chọn
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Lời hứa sẽ giải quyết khi quá trình cập nhật hoàn tất. Trong trường hợp xảy ra lỗi, lời hứa sẽ bị từ chối và không có thay đổi nào được thực hiện đối với các quy tắc tĩnh đã bật.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
Sự kiện
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Được kích hoạt khi một quy tắc khớp với một yêu cầu. Chỉ dành cho các tiện ích chưa đóng gói có quyền "declarativeNetRequestFeedback" vì tiện ích này chỉ dùng cho mục đích gỡ lỗi.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(info: MatchedRuleInfoDebug) => void
-
info
-