설명
chrome.declarativeNetRequest
API는 선언적 규칙을 지정하여 네트워크 요청을 차단하거나 수정하는 데 사용됩니다. 이를 통해 확장 프로그램에서 네트워크 요청을 가로채서 콘텐츠를 보지 않고도 네트워크 요청을 수정할 수 있으므로 더 많은 개인 정보 보호가 제공됩니다.
권한
declarativeNetRequest
declarativeNetRequestWithHostAccess
'declarativeNetRequest
' 및 'declarativeNetRequestWithHostAccess
' 권한은 동일한 기능을 제공합니다. 두 방법의 차이점은 권한이 요청되거나 부여되는 경우입니다.
"declarativeNetRequest"
- 설치 시 권한 경고를 트리거하지만
allow
,allowAllRequests
,block
규칙에 암시적 액세스를 제공합니다. 가능한 경우 이 방법을 사용하면 호스트에 대한 전체 액세스 권한을 요청할 필요가 없습니다. "declarativeNetRequestFeedback"
- 압축해제된 확장 프로그램, 특히
getMatchedRules()
및onRuleMatchedDebug
의 디버깅 기능을 사용 설정합니다. "declarativeNetRequestWithHostAccess"
- 권한 경고는 설치 시 표시되지 않지만 호스트에서 작업을 수행하려면 먼저 호스트 권한을 요청해야 합니다. 이는 추가 경고를 생성하지 않고 이미 호스트 권한이 있는 확장 프로그램에서 선언적 net 요청 규칙을 사용하려는 경우에 적합합니다.
지원 대상
매니페스트
앞에서 설명한 권한 외에도 특정 유형의 규칙 세트, 특히 정적 규칙 세트를 사용하려면 "declarative_net_request"
매니페스트 키를 선언해야 합니다. 이 키는 "rule_resources"
라는 단일 키가 있는 사전이어야 합니다. 이 키는 다음과 같이 Ruleset
유형의 사전이 포함된 배열입니다. 'Ruleset'이라는 이름은 배열일 뿐이므로 매니페스트의 JSON에 표시되지 않습니다. 정적 규칙 세트는 이 문서의 뒷부분에서 설명합니다.
{
"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/*"
],
...
}
개념 및 사용법
이 API를 사용하려면 하나 이상의 규칙 세트를 지정하세요. 규칙 세트에는 규칙 배열이 포함됩니다. 단일 규칙은 다음 중 하나를 수행합니다.
- 네트워크 요청 차단
- 스키마를 업그레이드합니다 (http에서 https로).
- 일치하는 차단된 규칙을 무효화하여 요청이 차단되지 않도록 합니다.
- 네트워크 요청을 리디렉션합니다.
- 요청 또는 응답 헤더를 수정합니다.
규칙 세트에는 세 가지 유형이 있으며, 관리 방식은 약간 다릅니다.
- 동적
- 브라우저 세션 및 확장 프로그램 업그레이드 전반에 걸쳐 유지되며 확장 프로그램을 사용하는 동안 JavaScript를 사용하여 관리됩니다.
- 세션
- 브라우저가 종료되고 확장 프로그램의 새 버전이 설치되면 삭제됩니다. 세션 규칙은 확장 프로그램이 사용되는 동안 JavaScript를 사용하여 관리됩니다.
- 정적
- 확장 프로그램이 설치 또는 업그레이드될 때 패키징, 설치, 업데이트됩니다. 정적 규칙은 JSON 형식의 규칙 파일에 저장되며 매니페스트 파일에 나열됩니다.
다음 섹션에서는 규칙 세트 유형을 자세히 설명합니다.
동적 및 세션 범위 규칙 세트
동적 및 세션 규칙 세트는 확장 프로그램이 사용되는 동안 JavaScript를 사용하여 관리됩니다.
- 동적 규칙은 브라우저 세션 및 확장 프로그램 업그레이드 시에도 유지됩니다.
- 세션 규칙은 브라우저가 종료되고 새 버전의 확장 프로그램이 설치될 때 삭제됩니다.
각 규칙 세트 유형은 하나만 있습니다. 확장 프로그램은 규칙 한도가 초과되지 않는 한 updateDynamicRules()
및 updateSessionRules()
를 호출하여 규칙을 동적으로 추가하거나 삭제할 수 있습니다. 규칙 한도에 대한 자세한 내용은 규칙 한도를 참조하세요. 코드 예시에서 이러한 예를 확인할 수 있습니다.
정적 규칙 집합
동적 규칙 및 세션 규칙과 달리 정적 규칙은 확장 프로그램이 설치되거나 업그레이드될 때 패키징, 설치, 업데이트됩니다. 이러한 파일은 위에서 설명한 대로 "declarative_net_request"
및 "rule_resources"
키와 하나 이상의 Ruleset
사전을 사용하여 확장 프로그램에 표시되는 JSON 형식의 규칙 파일에 저장됩니다. Ruleset
사전에는 규칙 파일의 경로, 파일에 포함된 규칙 세트의 ID, 규칙 세트의 사용 설정 여부 등이 포함됩니다. 마지막 두 개는 프로그래매틱 방식으로 규칙 세트를 사용 설정 또는 중지할 때 중요합니다.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
규칙 파일을 테스트하려면 확장 프로그램을 압축해제하여 로드합니다. 잘못된 정적 규칙에 대한 오류 및 경고는 압축해제된 확장 프로그램에만 표시됩니다. 압축된 확장 프로그램에서 잘못된 정적 규칙은 무시됩니다.
정적 규칙 및 규칙 세트 사용 설정 및 사용 중지
런타임 시 개별 정적 규칙과 전체 정적 규칙 세트를 모두 사용 설정하거나 사용 중지할 수 있습니다.
사용 설정된 정적 규칙 및 규칙 세트는 브라우저 세션 간에 유지됩니다. 둘 다 확장 프로그램 업데이트 시에도 유지되지 않습니다. 즉, 업데이트 후에는 규칙 파일에 보관하도록 선택한 규칙만 사용할 수 있습니다.
성능을 위해 한 번에 사용 설정할 수 있는 규칙 및 규칙 세트의 수에도 제한이 있습니다. getAvailableStaticRuleCount()
를 호출하여 사용 설정되었을 수 있는 추가 규칙 수를 확인합니다. 규칙 한도에 대한 자세한 내용은 규칙 한도를 참조하세요.
정적 규칙을 사용 설정하거나 사용 중지하려면 updateStaticRules()
를 호출합니다. 이 메서드는 사용 설정하거나 중지할 규칙의 ID 배열이 포함된 UpdateStaticRulesOptions
객체를 사용합니다. ID는 Ruleset
사전의 "id"
키를 사용하여 정의됩니다.
정적 rulesets를 사용 설정하거나 사용 중지하려면 updateEnabledRulesets()
를 호출합니다. 이 메서드는 사용 설정하거나 사용 중지할 규칙 세트의 ID 배열이 포함된 UpdateRulesetOptions
객체를 사용합니다. ID는 Ruleset
사전의 "id"
키를 사용하여 정의됩니다.
규칙 만들기
유형과 상관없이 규칙은 다음과 같이 4개의 필드로 시작합니다. "id"
및 "priority"
키는 숫자를 취하지만 "action"
및 "condition"
키는 여러 차단 및 리디렉션 조건을 제공할 수 있습니다. 다음 규칙은 "foo.com"
에서 "abc"
가 하위 문자열로 포함된 URL로 보내는 모든 스크립트 요청을 차단합니다.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
일치하는 문자 urlFilter 필터링
규칙의 "condition"
키를 사용하면 "urlFilter"
키가 지정된 도메인의 URL에 대해 작업할 수 있습니다. 패턴 일치 토큰을 사용하여 패턴을 만듭니다. 예를 들면 다음과 같습니다.
urlFilter |
일치 동영상 | 일치하지 않음 |
---|---|---|
"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 |
규칙 우선순위 지정
규칙은 웹페이지에서 전송된 요청에 의해 트리거됩니다. 여러 규칙이 특정 요청과 일치하는 경우 해당 규칙에 우선순위를 두어야 합니다. 이 섹션에서는 우선순위 지정 방식을 설명합니다. 우선순위는 두 단계로 이루어집니다.
- 우선순위는 확장 프로그램 내의 규칙에 대해 결정됩니다.
- 둘 이상의 확장 프로그램이 요청에 규칙을 적용할 수 있는 경우 특정 요청과 일치하는 모든 확장 프로그램의 우선순위가 결정됩니다.
특정 광고 확장에서 우선순위를 지정하는 규칙이 다른 광고 확장의 규칙에 우선하여 적용됩니다.
확장 프로그램 내 규칙 우선순위 지정
단일 확장 프로그램 내에서 우선순위 지정은 다음 프로세스를 사용하여 이루어집니다.
- 개발자가 정의한 우선순위가 가장 높은 규칙 (즉,
"priority"
필드)이 반환됩니다. 개발자가 정의한 우선순위가 가장 높은 규칙이 2개 이상인 경우에는
"action"
필드를 사용하여 다음 순서대로 규칙의 우선순위가 지정됩니다.allow
allowAllRequests
block
upgradeScheme
redirect
작업 유형이
block
또는redirect
가 아니면 일치하는 모든modifyHeaders
규칙이 평가됩니다. 개발자가 정의한 우선순위가allow
및allowAllRequests
에 지정된 우선순위보다 낮은 규칙이 있는 경우 이러한 규칙은 무시됩니다.여러 규칙에서 동일한 헤더를 수정하는 경우 수정 여부는 개발자가 정의한
"priority"
필드와 지정된 작업을 통해 결정됩니다.- 규칙이 헤더에 추가되는 경우 우선순위가 낮은 규칙은 해당 헤더에만 추가할 수 있습니다. 설정 및 삭제 작업은 허용되지 않습니다.
- 규칙에서 헤더를 설정하는 경우 우선순위가 낮은 규칙은 해당 헤더에만 추가할 수 있습니다. 다른 수정은 허용되지 않습니다.
- 규칙이 헤더를 삭제하는 경우 우선순위가 낮은 규칙은 헤더를 더 이상 수정할 수 없습니다.
확장 프로그램 간 규칙 우선순위 지정
하나의 확장 프로그램에만 요청과 일치하는 규칙이 있는 경우 해당 규칙이 적용됩니다. 그러나 둘 이상의 확장 프로그램이 요청과 일치하는 경우 다음 프로세스가 사용됩니다.
규칙에는 다음 순서로
"action"
필드를 사용하여 우선순위가 지정됩니다.block
redirect
또는upgradeScheme
allow
또는allowAllRequests
규칙이 두 개 이상 일치하면 가장 최근에 설치한 확장 프로그램이 우선순위를 갖습니다.
규칙 한도
브라우저에서 규칙을 로드하고 평가하면 성능 오버헤드가 발생하므로 API를 사용할 때 일부 한도가 적용됩니다. 한도는 사용 중인 규칙의 유형에 따라 다릅니다.
정적 규칙
정적 규칙은 매니페스트 파일에 선언된 규칙 파일에 지정됩니다. 확장 프로그램은 "rule_resources"
매니페스트 키의 일부로 최대 100개의 정적 rulesets를 지정할 수 있지만 한 번에 50개만 사용 설정할 수 있습니다. 후자를 MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
라고 합니다. 총 30,000개 이상의 규칙이 보장됩니다. 이를 GUARANTEED_MINIMUM_STATIC_RULES
라고 합니다.
이후 사용 가능한 규칙 수는 사용자의 브라우저에 설치된 모든 확장 프로그램에서 사용 설정한 규칙 수에 따라 다릅니다. 런타임 시 getAvailableStaticRuleCount()
를 호출하여 이 번호를 찾을 수 있습니다. 코드 예시에서 이러한 예를 확인할 수 있습니다.
세션 규칙
확장 프로그램에는 최대 5,000개의 세션 규칙을 포함할 수 있습니다. 이는 MAX_NUMBER_OF_SESSION_RULES
로 노출됩니다.
Chrome 120 이전에는 동적 규칙과 세션 규칙을 합쳐 5, 000개로 제한되었습니다.
동적 규칙
확장 프로그램에는 5,000개 이상의 동적 규칙이 포함될 수 있습니다. 이는 MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
로 노출됩니다.
Chrome 121부터 MAX_NUMBER_OF_DYNAMIC_RULES
로 노출되는 안전한 동적 규칙에 사용할 수 있는 규칙 수가 30,000개로 늘어납니다. 안전한 규칙은 block
, allow
, allowAllRequests
또는 upgradeScheme
작업이 있는 규칙으로 정의됩니다. 5,000개 한도 내에 추가된 안전하지 않은 규칙도 이 한도에 반영됩니다.
Chrome 120 이전에는 동적 규칙과 세션 규칙을 합친 한도가 5, 000개였습니다.
정규 표현식을 사용하는 규칙
모든 유형의 규칙에서 정규 표현식을 사용할 수 있지만 각 유형의 총 정규 표현식 규칙 수는 1, 000개를 초과할 수 없습니다. 이를 MAX_NUMBER_OF_REGEX_RULES라고 합니다.
또한 각 규칙의 컴파일은 크기가 2KB 미만이어야 합니다. 이는 규칙의 복잡성과 대략 상관관계가 있습니다. 이 한도를 초과하는 규칙을 로드하려고 하면 다음과 같은 경고가 표시되고 규칙이 무시됩니다.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
서비스 워커와의 상호작용
declarativeNetRequest는 네트워크 스택에 도달하는 요청에만 적용됩니다. 여기에는 HTTP 캐시의 응답이 포함되지만 서비스 워커의 onfetch
핸들러를 통과하는 응답은 포함되지 않을 수 있습니다. declarativeNetRequest는 서비스 워커에서 생성되거나 CacheStorage
에서 검색한 응답에는 영향을 미치지 않지만 서비스 워커에서 실행된 fetch()
호출에는 영향을 줍니다.
웹에서 액세스할 수 있는 리소스
declarativeNetRequest 규칙은 공개 리소스 요청에서 웹에 액세스할 수 없는 리소스로 리디렉션할 수 없습니다. 그렇게 하면 오류가 트리거됩니다. 지정된 웹 액세스 가능 리소스를 리디렉션 확장 프로그램에서 소유한 경우에도 마찬가지입니다. declarativeNetRequest의 리소스를 선언하려면 매니페스트의 "web_accessible_resources"
배열을 사용하세요.
예
코드 예
동적 규칙 업데이트
다음 예는 updateDynamicRules()
를 호출하는 방법을 보여줍니다. updateSessionRules()
의 절차는 동일합니다.
// 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
});
정적 규칙 세트 업데이트
다음 예시에서는 사용 가능한 정적 규칙 세트의 수와 최대 사용 설정된 정적 규칙 세트의 수를 고려하여 규칙 세트를 사용 설정하거나 사용 중지하는 방법을 보여줍니다. 필요한 정적 규칙 수가 허용된 수를 초과할 때 이를 수행할 수 있습니다. 이 작업을 실행하려면 매니페스트 파일 내에서 "Enabled"
를 false
로 설정하여 일부 규칙 세트를 사용 중지한 상태로 일부 규칙 세트를 설치해야 합니다.
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
규칙 예시
다음 예는 Chrome이 확장 프로그램에서 규칙의 우선순위를 지정하는 방법을 보여줍니다. 규칙을 검토할 때 우선순위 규칙을 별도의 창에서 여는 것이 좋습니다.
'우선순위' 키
이 예에서는 *://*.example.com/*
에 대한 호스트 권한이 필요합니다.
특정 URL의 우선순위를 확인하려면 (개발자 정의) "priority"
키, "action"
키, "urlFilter"
키를 살펴보세요. 아래 예제 규칙 파일을 참조합니다.
- https://google.com으로 이동
- 두 개의 규칙, 즉 ID 1과 4를 가진 규칙이 이 URL에 적용됩니다. ID가 1인 규칙이 적용되는 이유는
"block"
작업이"redirect"
작업보다 우선순위가 높기 때문입니다. 나머지 규칙은 더 긴 URL에 대한 것이므로 적용되지 않습니다. - https://google.com/1234로 이동합니다.
- URL이 길기 때문에 이제 ID 2인 규칙도 ID가 1인 규칙과 ID 4인 규칙도 일치합니다.
"allow"
의 우선순위가"block"
및"redirect"
보다 높기 때문에 ID 2인 규칙이 적용됩니다. - https://google.com/12345로 이동합니다.
- 4개의 규칙이 모두 이 URL과 일치합니다. ID가 3인 규칙이 적용되는 이유는 개발자가 정의한 우선순위가 그룹에서 가장 높기 때문입니다.
[
{
"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"] }
},
]
리디렉션
아래 예에서는 *://*.example.com/*
에 대한 호스트 권한이 필요합니다.
다음 예는 example.com에서 확장 프로그램 자체 내의 페이지로 요청을 리디렉션하는 방법을 보여줍니다. 확장 프로그램 경로 /a.jpg
는 chrome-extension://EXTENSION_ID/a.jpg
로 확인됩니다. 여기서 EXTENSION_ID
는 확장 프로그램의 ID입니다. 이렇게 하려면 매니페스트에서 /a.jpg
를 웹 액세스 가능 리소스로 선언해야 합니다.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
다음은 "transform"
키를 사용하여 example.com의 하위 도메인으로 리디렉션합니다. 도메인 이름 앵커 ('||')를 사용하여 example.com의 스키마 요청을 가로챕니다. "transform"
의 "scheme"
키는 하위 도메인으로 연결되는 리디렉션이 항상 'https'를 사용하도록 지정합니다.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
다음 예에서는 정규 표현식을 사용하여 https://www.abc.xyz.com/path
에서 https://abc.xyz.com/path
로 리디렉션합니다. "regexFilter"
키에서 마침표가 이스케이프되는 방식과 캡처 그룹이 'abc' 또는 'def'를 선택하는 것을 확인합니다. "regexSubstitution"
키는 '\1'을 사용하여 정규 표현식과 일치하는 첫 번째 일치하는 항목을 지정합니다. 이 경우 'abc'가 리디렉션된 URL에서 캡처되고 대체 항목에 배치됩니다.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
헤더
다음 예에서는 기본 프레임과 하위 프레임 모두에서 모든 쿠키를 삭제합니다.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
유형
DomainType
요청이 발생한 프레임에 대해 요청이 자사인지 제3자인지를 설명합니다. 요청이 시작된 프레임과 동일한 도메인 (eTLD+1)을 가진 요청은 퍼스트 파티라고 합니다.
enum
"firstParty"
네트워크 요청은 요청이 발생한 프레임의 퍼스트 파티입니다.
"thirdParty"
네트워크 요청이 발생한 프레임의 제3자입니다.
ExtensionActionOptions
속성
-
displayActionCountAsBadgeText
부울 선택사항
페이지의 작업 수를 확장 프로그램의 배지 텍스트로 자동 표시할지 여부입니다. 이 환경설정은 세션 간에 유지됩니다.
-
tabUpdate
TabActionCountUpdate 선택사항
Chrome 89 이상탭의 작업 수를 조정하는 방법에 관한 세부정보입니다.
GetDisabledRuleIdsOptions
속성
-
rulesetId
string
정적
Ruleset
에 해당하는 ID입니다.
GetRulesFilter
속성
-
ruleIds
number[] 선택사항
지정하면 일치하는 ID가 있는 규칙만 포함됩니다.
HeaderOperation
'modifyHeaders' 규칙에 가능한 작업을 설명합니다.
enum
"append"
지정된 헤더에 대한 새 항목을 추가합니다. 요청 헤더에는 이 작업이 지원되지 않습니다.
"set"
지정된 헤더에 새 값을 설정하여 이름이 같은 기존 헤더를 삭제합니다.
"remove"
지정된 헤더의 모든 항목을 삭제합니다.
IsRegexSupportedResult
속성
-
isSupported
boolean
-
reason
정규 표현식이 지원되지 않는 이유를 지정합니다.
isSupported
가 false인 경우에만 제공됩니다.
MatchedRule
속성
-
ruleId
숫자
일치하는 규칙의 ID입니다.
-
rulesetId
string
이 규칙이 속한
Ruleset
의 ID입니다. 동적 규칙 집합에서 발생한 규칙의 경우 이는DYNAMIC_RULESET_ID
와 같습니다.
MatchedRuleInfo
속성
-
규칙
-
tabId
숫자
탭이 아직 활성 상태인 경우 요청이 시작된 탭의 tabId입니다. 그 외의 경우에는 -1.
-
timeStamp
숫자
규칙이 일치된 시간입니다. 타임스탬프는 시간에 대한 자바스크립트 규칙(즉, 에포크 이후의 밀리초 수)을 따릅니다.
MatchedRuleInfoDebug
속성
-
규칙과 일치하는 요청의 세부정보입니다.
-
규칙
MatchedRulesFilter
속성
-
minTimeStamp
number 선택사항
지정하면 지정된 타임스탬프 이후의 규칙과만 일치합니다.
-
tabId
number 선택사항
지정하면 지정된 탭의 규칙과만 일치합니다. -1로 설정하면 활성 탭과 연결되지 않은 규칙과 일치합니다.
ModifyHeaderInfo
속성
-
헤더
string
수정할 헤더의 이름입니다.
-
헤더에서 수행할 작업입니다.
-
값
문자열 선택사항
헤더의 새 값입니다.
append
및set
작업에는 지정해야 합니다.
QueryKeyValue
속성
-
키
string
-
replaceOnly
부울 선택사항
Chrome 94 이상true인 경우 쿼리 키가 이미 있는 경우에만 대체됩니다. 그렇지 않으면 키가 누락된 키도 추가됩니다. 기본값은 거짓입니다.
-
값
string
QueryTransform
속성
-
addOrReplaceParams
QueryKeyValue[] 선택사항
추가하거나 대체할 쿼리 키-값 쌍의 목록입니다.
-
removeParams
string[] 선택사항
삭제할 쿼리 키의 목록입니다.
Redirect
속성
-
extensionPath
문자열 선택사항
확장 프로그램 디렉터리를 기준으로 한 경로입니다. '/'로 시작해야 합니다.
-
regexSubstitution
문자열 선택사항
regexFilter
을 지정하는 규칙의 대체 패턴 URL 내에서 첫 번째 일치하는regexFilter
가 이 패턴으로 대체됩니다.regexSubstitution
내에서 백슬래시로 이스케이프 처리된 숫자 (\1~\9)를 사용하여 상응하는 캡처 그룹을 삽입할 수 있습니다. \0은 일치하는 전체 텍스트를 나타냅니다. -
해당 텍스트를
URLTransform 선택사항
수행할 URL 변환입니다.
-
url
문자열 선택사항
리디렉션 URL입니다. 자바스크립트 URL로의 리디렉션은 허용되지 않습니다.
RegexOptions
속성
-
isCaseSensitive
부울 선택사항
지정된
regex
가 대소문자를 구분하는지 여부입니다. 기본값은 true입니다. -
regex
string
확인할 정규 표현식입니다.
-
requireCapturing
부울 선택사항
지정된
regex
에 캡처가 필요한지 여부입니다. 캡처는regexSubstition
작업을 지정하는 리디렉션 규칙에서만 필요합니다. 기본값은 false입니다.
RequestDetails
속성
-
documentId
문자열 선택사항
Chrome 106 이상프레임 관련 요청인 경우 프레임 문서에 대한 고유 식별자입니다.
-
documentLifecycle
DocumentLifecycle 선택사항
Chrome 106 이상프레임에 관한 요청인 경우 프레임 문서의 수명 주기입니다.
-
frameId
숫자
값 0은 요청이 메인 프레임에서 발생함을 나타내고 양수 값은 요청이 발생한 서브프레임의 ID를 나타냅니다. 하위 프레임의 문서가 로드되면(
type
가main_frame
또는sub_frame
)frameId
는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다. -
frameType
FrameType 선택사항
Chrome 106 이상프레임에 관한 요청인 경우 프레임 유형.
-
개시자
문자열 선택사항
요청이 시작된 출처입니다. 이는 리디렉션을 통해 변경되지 않습니다. 불투명한 출처인 경우 문자열 'null'이 사용됩니다.
-
method
string
표준 HTTP 메서드입니다.
-
parentDocumentId
문자열 선택사항
Chrome 106 이상프레임에 대한 요청이며 상위 요소가 있는 경우 프레임의 상위 문서에 대한 고유 식별자입니다.
-
parentFrameId
숫자
요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.
-
requestId
string
요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다.
-
tabId
숫자
요청이 발생한 탭의 ID입니다. 요청이 탭과 관련되지 않은 경우 -1로 설정합니다.
-
유형
요청의 리소스 유형입니다.
-
url
string
요청의 URL입니다.
RequestMethod
네트워크 요청의 HTTP 요청 메서드를 설명합니다.
enum
"get"
"put"
ResourceType
네트워크 요청의 리소스 유형을 설명합니다.
enum
"main_frame"
"sub_frame"
"xmlhttprequest"
"ping"
"websocket"
"webtransport"
"webbundle"
Rule
속성
-
작업
이 규칙이 일치하는 경우 취할 조치입니다.
-
condition
이 규칙이 트리거되는 조건입니다.
-
id
숫자
규칙을 고유하게 식별하는 ID입니다. 필수이며 1 이상이어야 합니다.
-
우선순위
number 선택사항
규칙 우선순위입니다. 기본값은 1입니다. 지정된 경우 1 이상이어야 합니다.
RuleAction
속성
-
리디렉션
리디렉션 선택사항
리디렉션을 수행하는 방법을 설명합니다. 리디렉션 규칙에만 유효합니다.
-
requestHeaders
ModifyHeaderInfo[] 선택사항
Chrome 86 이상요청에 대해 수정할 요청 헤더입니다. RuleActionType이 'modifyHeaders'인 경우에만 유효합니다.
-
responseHeaders
ModifyHeaderInfo[] 선택사항
Chrome 86 이상요청에 대해 수정할 응답 헤더입니다. RuleActionType이 'modifyHeaders'인 경우에만 유효합니다.
-
수행할 작업의 유형입니다.
RuleActionType
지정된 RuleCondition이 일치하는 경우 취할 작업의 종류를 설명합니다.
enum
"block"
네트워크 요청을 차단합니다.
"redirect"
네트워크 요청을 리디렉션합니다.
"allow"
네트워크 요청을 허용합니다. 이 요청은 요청과 일치하는 허용 규칙이 있는 경우 가로채지 않습니다.
"upgradeScheme"
요청이 http 또는 ftp인 경우 네트워크 요청 URL의 스키마를 https로 업그레이드합니다.
"modifyHeaders"
네트워크 요청의 요청/응답 헤더를 수정합니다.
"allowAllRequests"
프레임 요청 자체를 포함하여 프레임 계층 구조 내의 모든 요청을 허용합니다.
RuleCondition
속성
-
domainType
DomainType 선택사항
네트워크 요청이 처음 발생한 도메인의 자사인지 서드 파티인지를 지정합니다. 생략하면 모든 요청이 수락됩니다.
-
도메인
string[] 선택사항
Chrome 101 이후 지원 중단됨대신
initiatorDomains
사용이 규칙은
domains
목록에서 발생한 네트워크 요청과만 일치합니다. -
excludedDomains
string[] 선택사항
Chrome 101 이후 지원 중단됨대신
excludedInitiatorDomains
사용이 규칙은
excludedDomains
목록에서 발생한 네트워크 요청과 일치하지 않습니다. -
excludedInitiatorDomains
string[] 선택사항
Chrome 101 이상이 규칙은
excludedInitiatorDomains
목록에서 발생한 네트워크 요청과 일치하지 않습니다. 목록이 비어 있거나 생략된 경우 제외되는 도메인이 없습니다. 이는initiatorDomains
보다 우선 적용됩니다.참고:
- 'a.example.com'과 같은 하위 도메인도 허용됩니다.
- 항목은 ASCII 문자로만 구성되어야 합니다.
- 다국어 도메인에는 퓨니코드 인코딩을 사용합니다.
- 이는 요청 URL이 아닌 요청 시작자와 일치합니다.
- 목록에 있는 도메인의 하위 도메인도 제외됩니다.
-
excludedRequestDomains
string[] 선택사항
Chrome 101 이상도메인이
excludedRequestDomains
목록의 도메인과 일치하면 규칙이 네트워크 요청과 일치하지 않습니다. 목록이 비어 있거나 생략된 경우 제외되는 도메인이 없습니다. 이는requestDomains
보다 우선 적용됩니다.참고:
- 'a.example.com'과 같은 하위 도메인도 허용됩니다.
- 항목은 ASCII 문자로만 구성되어야 합니다.
- 다국어 도메인에는 퓨니코드 인코딩을 사용합니다.
- 목록에 있는 도메인의 하위 도메인도 제외됩니다.
-
excludedRequestMethods
RequestMethod[] 선택사항
Chrome 91 이상규칙이 일치하지 않는 요청 메서드의 목록입니다.
requestMethods
와excludedRequestMethods
중 하나만 지정해야 합니다. 둘 다 지정되지 않으면 모든 요청 메서드가 일치됩니다. -
excludedResourceTypes
ResourceType[] 선택사항
규칙이 일치하지 않는 리소스 유형 목록입니다.
resourceTypes
와excludedResourceTypes
중 하나만 지정해야 합니다. 둘 다 지정되지 않으면 'main_frame'을 제외한 모든 리소스 유형이 차단됩니다. -
excludedTabIds
number[] 선택사항
Chrome 92 이상규칙과 일치하지 않아야 하는
tabs.Tab.id
의 목록입니다. ID가tabs.TAB_ID_NONE
이면 탭에서 발생하지 않은 요청은 제외됩니다. 세션 범위 규칙에서만 지원됩니다. -
initiatorDomains
string[] 선택사항
Chrome 101 이상이 규칙은
initiatorDomains
목록에서 발생한 네트워크 요청과만 일치합니다. 목록을 생략하면 모든 도메인의 요청에 규칙이 적용됩니다. 빈 목록은 허용되지 않습니다.참고:
- 'a.example.com'과 같은 하위 도메인도 허용됩니다.
- 항목은 ASCII 문자로만 구성되어야 합니다.
- 다국어 도메인에는 퓨니코드 인코딩을 사용합니다.
- 이는 요청 URL이 아닌 요청 시작자와 일치합니다.
- 나열된 도메인의 하위 도메인도 일치합니다.
-
isUrlFilterCaseSensitive
부울 선택사항
urlFilter
또는regexFilter
(지정된 기준)이 대소문자를 구분하는지 여부입니다. 기본값은 false입니다. -
regexFilter
문자열 선택사항
네트워크 요청 URL과 일치시킬 정규 표현식입니다. 이는 RE2 구문을 따릅니다.
참고:
urlFilter
또는regexFilter
중 하나만 지정할 수 있습니다.참고:
regexFilter
는 ASCII 문자로만 구성되어야 합니다. 이는 호스트가 퓨니코드 형식 (다국어 도메인인 경우)으로 인코딩되고 ASCII가 아닌 다른 문자는 utf-8로 URL 인코딩되는 URL과 대조됩니다. -
requestDomains
string[] 선택사항
Chrome 101 이상도메인이
requestDomains
목록의 요청과 일치할 때만 규칙이 네트워크 요청과 일치합니다. 목록을 생략하면 모든 도메인의 요청에 규칙이 적용됩니다. 빈 목록은 허용되지 않습니다.참고:
- 'a.example.com'과 같은 하위 도메인도 허용됩니다.
- 항목은 ASCII 문자로만 구성되어야 합니다.
- 다국어 도메인에는 퓨니코드 인코딩을 사용합니다.
- 나열된 도메인의 하위 도메인도 일치합니다.
-
requestMethods
RequestMethod[] 선택사항
Chrome 91 이상규칙과 일치할 수 있는 HTTP 요청 메서드의 목록입니다. 빈 목록은 허용되지 않습니다.
참고:
requestMethods
규칙 조건을 지정하면 HTTP가 아닌 요청도 제외되지만excludedRequestMethods
를 지정하면 제외되지 않습니다. -
resourceTypes
ResourceType[] 선택사항
규칙과 일치할 수 있는 리소스 유형 목록입니다. 빈 목록은 허용되지 않습니다.
참고:
allowAllRequests
규칙에 지정해야 하며sub_frame
및main_frame
리소스 유형만 포함할 수 있습니다. -
tabIds
number[] 선택사항
Chrome 92 이상규칙이 일치해야 하는
tabs.Tab.id
의 목록입니다.tabs.TAB_ID_NONE
의 ID는 탭에서 발생하지 않은 요청과 일치합니다. 빈 목록은 허용되지 않습니다. 세션 범위 규칙에서만 지원됩니다. -
urlFilter
문자열 선택사항
네트워크 요청 URL과 일치하는 패턴입니다. 지원되는 구문은 다음과 같습니다.
'*' : 와일드 카드: 임의 개수의 문자와 일치합니다.
'|' : 왼쪽/오른쪽 앵커: 패턴의 양쪽 끝에 사용되는 경우 각각 URL의 시작/끝을 지정합니다.
'||' : 도메인 이름 앵커: 패턴의 시작 부분에 사용되는 경우 URL의 (하위) 도메인 시작 부분을 지정합니다.
'^' : 구분 문자: 문자, 숫자 또는
_
,-
,.
,%
중 하나를 제외한 모든 항목과 일치합니다. 이 URL은 URL의 끝부분과도 일치합니다.따라서
urlFilter
는 (선택사항인 왼쪽/도메인 이름 앵커) + 패턴 + (선택적 오른쪽 앵커) 부분으로 구성됩니다.생략하면 모든 URL이 일치합니다. 빈 문자열은 허용되지 않습니다.
||*
로 시작하는 패턴은 허용되지 않습니다. 대신*
를 사용합니다.참고:
urlFilter
또는regexFilter
중 하나만 지정할 수 있습니다.참고:
urlFilter
는 ASCII 문자로만 구성되어야 합니다. 이는 호스트가 퓨니코드 형식 (다국어 도메인인 경우)으로 인코딩되고 ASCII가 아닌 다른 문자는 utf-8로 URL 인코딩되는 URL과 대조됩니다. 예를 들어 요청 URL이 http://abc.рLATE?q=무효인 경우urlFilter
는 URL http://abc.xn--p1ai/?q=%D1%84와 비교됩니다.
Ruleset
속성
-
사용 설정됨
boolean
규칙 세트의 기본 사용 설정 여부입니다.
-
id
string
규칙 집합을 고유하게 식별하는 비어 있지 않은 문자열입니다. '_'로 시작하는 ID는 내부용으로 예약되어 있습니다.
-
경로
string
확장 프로그램 디렉터리를 기준으로 한 JSON 규칙 세트의 경로입니다.
RulesMatchedDetails
속성
-
rulesMatchedInfo
지정된 필터와 일치하는 규칙입니다.
TabActionCountUpdate
속성
-
증가
숫자
탭의 작업 수를 증가시키는 양입니다. 음수 값은 개수를 줄입니다.
-
tabId
숫자
작업 수를 업데이트할 탭입니다.
TestMatchOutcomeResult
속성
-
matchedRules
가상의 요청과 일치하는 규칙 (있는 경우)입니다.
TestMatchRequestDetails
속성
-
개시자
문자열 선택사항
가상 요청의 개시자 URL (있는 경우)입니다.
-
method
RequestMethod 선택사항
가상 요청의 표준 HTTP 메서드입니다. HTTP 요청의 경우 기본값은 'get'이며 HTTP가 아닌 요청에서는 무시됩니다.
-
tabId
number 선택사항
가상 요청이 발생하는 탭의 ID입니다. 실제 탭 ID와 일치하지 않아도 됩니다. 기본값은 -1입니다. 즉, 요청이 탭과 관련되지 않습니다.
-
유형
가상 요청의 리소스 유형입니다.
-
url
string
가상 요청의 URL입니다.
UnsupportedRegexReason
지정된 정규 표현식이 지원되지 않는 이유를 설명합니다.
enum
"syntaxError"
정규 표현식이 문법적으로 잘못되었거나 RE2 구문에서 사용할 수 없는 기능을 사용합니다.
"memoryLimitExceeded"
정규 표현식이 메모리 한도를 초과합니다.
UpdateRuleOptions
속성
-
addRules
규칙[] 선택사항
추가할 규칙입니다.
-
removeRuleIds
number[] 선택사항
삭제할 규칙의 ID입니다. 잘못된 ID는 무시됩니다.
UpdateRulesetOptions
속성
UpdateStaticRulesOptions
속성
URLTransform
속성
-
fragment
문자열 선택사항
요청의 새 프래그먼트입니다. 비어 있어야 합니다. 이 경우 기존 프래그먼트가 지워지거나 '#'으로 시작해야 합니다.
-
호스트
문자열 선택사항
요청의 새 호스트입니다.
-
비밀번호
문자열 선택사항
요청의 새 비밀번호입니다.
-
경로
문자열 선택사항
요청의 새 경로입니다. 비어 있으면 기존 경로가 지워집니다.
-
포트
문자열 선택사항
요청의 새 포트입니다. 비어 있으면 기존 포트가 지워집니다.
-
query
문자열 선택사항
요청의 새 쿼리입니다. 비어 있어야 합니다. 이 경우 기존 쿼리가 지워지거나 '?'로 시작해야 합니다.
-
queryTransform
QueryTransform 선택사항
쿼리 키-값 쌍을 추가, 삭제 또는 교체합니다.
-
scheme
문자열 선택사항
요청의 새 스키마입니다. 허용되는 값은 'http', 'https', 'ftp', 'chrome-extension'입니다.
-
사용자이름
문자열 선택사항
요청의 새 사용자 이름입니다.
속성
DYNAMIC_RULESET_ID
확장 프로그램에서 추가한 동적 규칙의 규칙 세트 ID입니다.
값
GETMATCHEDRULES_QUOTA_INTERVAL
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
호출을 할 수 있는 시간 간격으로, 분 단위로 지정됩니다. 추가 호출이 즉시 실패하고 runtime.lastError
이 설정됩니다. 참고: 사용자 동작과 관련된 getMatchedRules
호출은 할당량에서 제외됩니다.
값
10
GUARANTEED_MINIMUM_STATIC_RULES
사용 설정된 정적 규칙 세트 전체에서 확장 프로그램에 보장되는 정적 규칙의 최소 개수입니다. 이 한도를 초과하는 규칙은 전역 정적 규칙 한도에 포함됩니다.
값
30,000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
GETMATCHEDRULES_QUOTA_INTERVAL
기간 내에 getMatchedRules
를 호출할 수 있는 횟수입니다.
값
20
MAX_NUMBER_OF_DYNAMIC_RULES
확장 프로그램이 추가할 수 있는 최대 동적 규칙 수입니다.
값
30,000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
확장 프로그램에서 한 번에 사용 설정할 수 있는 최대 정적 Rulesets
수입니다.
값
50명
MAX_NUMBER_OF_REGEX_RULES
확장 프로그램이 추가할 수 있는 최대 정규 표현식 규칙 수입니다. 이 한도는 동적 규칙 집합과 규칙 리소스 파일에 지정된 집합에 대해 개별적으로 평가됩니다.
값
1,000명
MAX_NUMBER_OF_SESSION_RULES
확장 프로그램이 추가할 수 있는 세션 범위 규칙의 최대 개수입니다.
값
5,000
MAX_NUMBER_OF_STATIC_RULESETS
확장 프로그램에서 "rule_resources"
매니페스트 키의 일부로 지정할 수 있는 정적 Rulesets
의 최대 개수입니다.
값
100명
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
확장 프로그램에서 추가할 수 있는 '안전하지 않은' 동적 규칙의 최대 개수입니다.
값
5,000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
확장 프로그램이 추가할 수 있는 '안전하지 않은' 세션 범위 규칙의 최대 개수입니다.
값
5,000
SESSION_RULESET_ID
확장 프로그램에서 추가한 세션 범위 규칙의 규칙 세트 ID입니다.
값
방법
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
전역 정적 규칙 한도에 도달하기 전에 확장 프로그램에서 사용 설정할 수 있는 정적 규칙 수를 반환합니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(count: number)=>void
-
수
숫자
-
반환 값
-
프로미스<number>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
지정된 Ruleset
에서 현재 사용 중지된 정적 규칙 목록을 반환합니다.
매개변수
-
쿼리할 규칙 집합을 지정합니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(disabledRuleIds: number[])=>void
-
disabledRuleIds
숫자[]
-
반환 값
-
프로미스<number[]>
프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
확장 프로그램의 동적 규칙 집합을 반환합니다. 호출자는 선택적으로 filter
를 지정하여 가져온 규칙 목록을 필터링할 수 있습니다.
매개변수
-
filter
GetRulesFilter 선택사항
Chrome 111 이상가져온 규칙 목록을 필터링하는 객체입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(rules: Rule[])=>void
-
규칙
규칙[]
-
반환 값
-
프로미스<규칙[]>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
현재 사용 설정된 정적 규칙 세트의 ID를 반환합니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(rulesetIds: string[])=>void
-
rulesetIds
문자열[]
-
반환 값
-
프로미스<string[]>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
확장 프로그램과 일치하는 모든 규칙을 반환합니다. 호출자는 선택적으로 filter
를 지정하여 일치하는 규칙 목록을 필터링할 수 있습니다. 이 메서드는 "declarativeNetRequestFeedback"
권한이 있거나 filter
에 지정된 tabId
에 대해 "activeTab"
권한이 부여된 확장 프로그램에만 사용할 수 있습니다. 참고: 5분 이전에 일치하는 활성 문서와 연결되지 않은 규칙은 반환되지 않습니다.
매개변수
-
filter
MatchedRulesFilter 선택사항
일치하는 규칙 목록을 필터링하는 객체입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(details: RulesMatchedDetails)=>void
-
세부정보
-
반환 값
-
Promise<RulesMatchedDetails>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
확장 프로그램의 현재 세션 범위 규칙 집합을 반환합니다. 호출자는 선택적으로 filter
를 지정하여 가져온 규칙 목록을 필터링할 수 있습니다.
매개변수
-
filter
GetRulesFilter 선택사항
Chrome 111 이상가져온 규칙 목록을 필터링하는 객체입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(rules: Rule[])=>void
-
규칙
규칙[]
-
반환 값
-
프로미스<규칙[]>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
지정된 정규 표현식이 regexFilter
규칙 조건으로 지원되는지 확인합니다.
매개변수
-
regexOptions
확인할 정규 표현식입니다.
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(result: IsRegexSupportedResult)=>void
반환 값
-
Promise<IsRegexSupportedResult>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
탭의 작업 수를 확장 프로그램 작업의 배지 텍스트로 표시할지 여부를 구성하고 해당 작업 수를 늘리는 방법을 제공합니다.
매개변수
-
콜백
함수 선택사항
Chrome 89 이상callback
매개변수는 다음과 같습니다.()=>void
반환 값
-
Promise<void>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
확장 프로그램의 declarativeNetRequest 규칙이 가상 요청과 일치하는지 확인합니다. 참고: 확장 프로그램 개발 중에만 사용하도록 되어 있으므로 압축해제된 확장 프로그램에만 사용할 수 있습니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(result: TestMatchOutcomeResult)=>void
반환 값
-
Promise<TestMatchOutcomeResult>
프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
확장 프로그램의 동적 규칙 세트를 수정합니다. options.removeRuleIds
에 ID가 나열된 규칙이 먼저 삭제된 후에 options.addRules
에 지정된 규칙이 추가됩니다. 참고:
- 이 업데이트는 단일 원자적 작업으로 발생합니다. 즉, 지정된 모든 규칙이 추가 및 삭제되거나 오류가 반환됩니다.
- 이러한 규칙은 브라우저 세션 및 확장 프로그램 업데이트 시에도 유지됩니다.
- 확장 프로그램의 일부로 지정된 정적 규칙은 이 함수를 사용하여 삭제할 수 없습니다.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
는 확장 프로그램에서 추가할 수 있는 동적 및 세션 규칙의 최대 조합 수입니다.
매개변수
-
Chrome 87 이상
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.()=>void
반환 값
-
Promise<void>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
확장 프로그램에 사용 설정된 정적 규칙 세트를 업데이트합니다. options.disableRulesetIds
에 ID가 나열된 규칙 세트가 먼저 삭제된 후 options.enableRulesetIds
에 나열된 규칙 세트가 추가됩니다.
사용 설정된 정적 규칙 세트는 세션 간에 유지되지만 확장 프로그램 업데이트에서는 유지되지 않습니다. 즉, rule_resources
매니페스트 키는 각 확장 프로그램 업데이트 시 사용 설정된 정적 규칙 세트를 결정합니다.
매개변수
-
Chrome 87 이상
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.()=>void
반환 값
-
Promise<void>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
확장 프로그램의 현재 세션 범위 규칙 세트를 수정합니다. options.removeRuleIds
에 ID가 나열된 규칙이 먼저 삭제된 후에 options.addRules
에 지정된 규칙이 추가됩니다. 참고:
- 이 업데이트는 단일 원자적 작업으로 발생합니다. 즉, 지정된 모든 규칙이 추가 및 삭제되거나 오류가 반환됩니다.
- 이러한 규칙은 세션 간에 유지되지 않으며 메모리에 백업됩니다.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
는 확장 프로그램에서 추가할 수 있는 동적 및 세션 규칙의 최대 조합 수입니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.()=>void
반환 값
-
Promise<void>
Chrome 91 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Ruleset
에서 개별 정적 규칙을 사용 중지하고 사용 설정합니다. 사용 중지된 Ruleset
에 속한 규칙을 변경하면 다음에 사용 설정될 때 적용됩니다.
매개변수
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.()=>void
반환 값
-
Promise<void>
프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
이벤트
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
규칙이 요청과 일치하면 실행됩니다. 디버깅 목적으로만 사용해야 하므로 "declarativeNetRequestFeedback"
권한이 있는 압축해제된 확장 프로그램에서만 사용할 수 있습니다.
매개변수
-
콜백
기능
callback
매개변수는 다음과 같습니다.(info: MatchedRuleInfoDebug)=>void