V2 매니페스트를 V3 매니페스트로 변환
manifest.json
파일의 경우 매니페스트 V3의 형식이 매니페스트 V2의 형식과 약간 다릅니다. 이 페이지에서는 manifest.json
파일에만 영향을 미치는 변경사항을 설명합니다. 하지만 스크립트와 페이지를 변경할 때는 매니페스트도 변경해야 하는 경우가 많습니다. 이러한 변경사항은 이러한 변경사항이 필요한 이전 작업에서 다룹니다.
매니페스트 버전 번호 변경
"manifest_version"
필드의 값을 2에서 3으로 변경합니다.
{
...
"manifest_version": 2
...
}
{
...
"manifest_version": 3
...
}
호스트 권한 업데이트
매니페스트 V3의 호스트 권한은 별도의 필드입니다. "permissions"
또는 "optional_permissions"
에서 지정하지 않습니다.
콘텐츠 스크립트는 "content_scripts.matches"
아래에 유지됩니다. "content_scripts.matches"
에 관한 자세한 내용은 정적 선언으로 삽입을 참고하세요.
{
...
"permissions": [
"tabs",
"bookmarks",
"https://www.blogger.com/",
],
"optional_permissions": [
"unlimitedStorage",
"*://*/*",
]
...
}
{
...
"permissions": [
"tabs",
"bookmarks"
],
"optional_permissions": [
"unlimitedStorage"
],
"host_permissions": [
"https://www.blogger.com/",
],
"optional_host_permissions": [
"*://*/*",
]
...
}
웹에서 액세스할 수 있는 리소스 업데이트
웹 액세스 가능 리소스는 웹페이지 또는 다른 확장 프로그램에서 액세스할 수 있는 확장 프로그램 내 파일입니다. Manifest V2에 구현된 "web_accessible_resources"
필드는 확장 프로그램이 리소스를 노출하도록 선택한 경우 웹사이트와 공격자가 확장 프로그램을 감지할 수 있도록 했습니다. 이로 인해 핑거프린팅 또는 의도하지 않은 리소스 액세스가 발생할 수 있습니다.
Manifest V3는 확장 프로그램의 리소스에 액세스할 수 있는 웹사이트와 확장 프로그램을 제한하여 노출을 제한합니다. 이전과 같이 파일 목록을 제공하는 대신 이제 각 리소스 세트를 URL 또는 확장 프로그램 ID 세트에 매핑하는 객체 배열을 제공합니다.
아래 예에서는 매니페스트 V2와 매니페스트 V3 간의 웹 액세스 가능한 리소스를 비교합니다. Manifest V2에서는 기본적으로 모든 웹사이트에서 지정된 리소스에 액세스할 수 있었습니다. 아래에 표시된 매니페스트 V3 코드에서 이러한 리소스는 https://example.com
에서만 사용할 수 있으며 특정 이미지만 모든 웹사이트에서 사용할 수 있습니다.
자세한 내용은 웹 액세스 가능한 리소스 및 일치 패턴을 참고하세요.
{
...
"web_accessible_resources": [
"images/*",
"style/extension.css",
"script/extension.js"
],
...
}
{
...
"web_accessible_resources": [
{
"resources": [
"images/*"
],
"matches": [
"*://*/*"
]
},
{
"resources": [
"style/extension.css",
"script/extension.js"
],
"matches": [
"https://example.com/*"
]
}
],
...
}