대부분의 확장 프로그램 API 및 기능을 사용하려면 매니페스트의 권한 필드에서 확장 프로그램의 인텐트를 선언해야 합니다. 확장 프로그램은 각 매니페스트 키를 사용하여 지정된 다음 카테고리의 권한을 요청할 수 있습니다.
"permissions"- 알려진 문자열 목록의 항목이 포함되어 있습니다. 변경사항으로 인해 경고가 트리거될 수 있습니다.
"optional_permissions"- 설치 시점이 아닌 런타임에 사용자가 부여합니다.
"content_scripts.matches"- 콘텐츠 스크립트가 하나 이상의 호스트에 삽입할 수 있도록 하는 하나 이상의 일치 패턴을 포함합니다. 변경사항으로 인해 경고가 트리거될 수 있습니다.
"host_permissions"- 하나 이상의 호스트에 대한 액세스 권한을 부여하는 하나 이상의 일치 패턴을 포함합니다. 변경사항으로 인해 경고가 트리거될 수 있습니다.
"optional_host_permissions"- 설치 시점이 아닌 런타임에 사용자가 부여합니다.
권한을 사용하면 확장 프로그램이 멀웨어에 의해 손상된 경우 피해를 줄이는 데 도움이 됩니다. 사용자가 동의하기 전에 일부 권한 경고가 사용자에게 표시됨 경고가 있는 권한에 설명된 대로 확장 또는 런타임 시에만 발생할 수 있습니다.
확장 프로그램의 기능이 어디에서든 선택적 권한을 사용하는 것이 좋습니다. 사용자에게 리소스와 데이터에 대한 액세스에 대해 정보에 입각한 제어 권한을 제공할 수 있습니다.
API에 권한이 필요한 경우 문서에 권한을 선언하는 방법이 설명되어 있습니다. 예는 Storage API를 참조하세요.
매니페스트
다음은 매니페스트 파일 권한 섹션의 예입니다.
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
호스트 권한
호스트 권한을 사용하면 확장 프로그램이 URL의 일치 패턴과 상호작용할 수 있습니다. 일부 Chrome API에는 각 참조 페이지에 설명된 자체 API 권한 외에 호스트 권한도 필요합니다. 예를 들면 다음과 같습니다.
- 확장 프로그램 서비스 워커 및 확장 프로그램 페이지에서
fetch()요청을 실행합니다. chrome.tabsAPI를 사용하여 민감한 탭 속성 (url, title, favIconUrl)을 읽고 쿼리합니다.- 프로그래매틱 방식으로 콘텐츠 스크립트를 삽입합니다.
chrome.webRequestAPI를 사용하여 네트워크 요청을 모니터링하고 제어합니다.chrome.cookiesAPI를 사용하여 쿠키에 액세스합니다.chrome.declarativeNetRequestAPI를 사용하여 요청 및 응답 헤더를 리디렉션하고 수정합니다.
경고가 있는 권한
확장 프로그램에서 여러 권한을 요청하고 그중 다수가 표시되는 경우 경고가 표시되면 다음 예와 같이 사용자에게 경고 목록이 표시됩니다.