확장 프로그램, 테마, 애플리케이션은 단순히 리소스의 번들이며 패키지의 콘텐츠를 설명하는 manifest.json
파일로 래핑됩니다. 이 파일의 형식은 일반적으로 안정적이지만 경우에 따라 중요한 문제를 해결하기 위해 브레이킹 체인지를 수행해야 합니다.
개발자는 매니페스트에서 manifest_version
키를 설정하여 패키지가 타겟팅하는 매니페스트 사양의 버전을 지정해야 합니다.
현재 버전
개발자는 현재 'manifest_version': 2
를 지정해야 합니다.
{
...,
"manifest_version": 2,
...
}
매니페스트 버전 1은 Chrome 18에서 지원 중단되었으며 다음 일정에 따라 지원이 단계적으로 중단됩니다.
매니페스트 버전 1 지원 일정
2012년 8월
- 웹 스토어에서 새 매니페스트 버전 1 확장 프로그램의 생성을 차단합니다.
- 웹 스토어는 기존 매니페스트 버전 1 확장 프로그램의 업데이트를 허용합니다.
2013년 3월
- 웹 스토어는 2013년 3월 4일부터 매니페스트 버전 1 확장에 대한 업데이트를 차단합니다.
2013년 4월
- Chrome 27 베타에서는 매니페스트 버전 1 확장 프로그램의 패키징 (또는 개발을 위해 확장 프로그램 로드)이 중단됩니다.
2013년 6월
- 웹 스토어가 월, 검색결과, 카테고리 페이지에서 매니페스트 버전 1 확장 프로그램을 삭제합니다.
- 매니페스트 버전 1 확장 프로그램이 아직 스토어에 남아 있는 모든 개발자에게 이러한 확장 프로그램이 게시 취소될 것임을 알리고 업데이트 안내를 제공하는 알림 이메일이 전송됩니다.
2013년 9월
- 웹 스토어에서 모든 매니페스트 버전 1 확장 프로그램을 게시 취소합니다.
- 최종 고지 이메일은 아직 웹 스토어에 있는 매니페스트 버전 1 확장 프로그램을 사용하는 개발자에게 전송됩니다.
- Chrome은 설치된 매니페스트 버전 1 확장 프로그램을 계속 로드하고 실행합니다.
2014년 1월
- Chrome에서 매니페스트 버전 1 확장 프로그램의 로드 또는 실행을 중지합니다.
버전 1 및 2 간 변경사항
- 콘텐츠 보안 정책은 기본적으로
`script-src 'self'; object-src 'self';
로 설정됩니다. 이는 개발자에게 다양한 영향을 미칩니다. 자세한 내용은content_security_policy
문서에 설명되어 있습니다. - 기본적으로 외부 웹사이트에서 패키지의 리소스를 더 이상 사용할 수 없습니다 (이미지의
src
또는script
태그). 웹사이트에서 패키지에 포함된 리소스를 로드할 수 있게 하려면web_accessible_resources
매니페스트 속성을 통해 이를 명시적으로 허용 목록에 추가해야 합니다. 이는 삽입된 콘텐츠 스크립트를 통해 웹사이트에 인터페이스를 구축하는 확장 프로그램과 특히 관련이 있습니다. background_page
속성이scripts
또는page
속성 중 하나가 포함된background
속성으로 대체되었습니다. 자세한 내용은 이벤트 페이지 문서를 참고하세요.브라우저 작업 변경사항:
- 매니페스트의
browser_actions
키와chrome.browserActions
API가 사라졌습니다. 대신 단일browser_action
및chrome.browserAction
를 사용하세요. browser_action
의icons
속성이 삭제되었습니다. 대신default_icon
속성 또는 browserAction.setIcon을 사용하세요.browser_action
의name
속성이 삭제되었습니다. 대신default_title
속성 또는 browserAction.setTitle을 사용하세요.browser_action
의popup
속성이 삭제되었습니다. 대신default_popup
속성 또는 browserAction.setPopup을 사용합니다.browser_action
의default_popup
속성을 더 이상 객체로 지정할 수 없습니다. 문자열이어야 합니다.
- 매니페스트의
페이지 작업 변경사항:
- 매니페스트의
page_actions
키와chrome.pageActions
API가 사라졌습니다. 대신 단일page_action
및chrome.pageAction
를 사용하세요. page_action
의icons
속성이 삭제되었습니다. 대신default_icon
속성 또는 pageAction.setIcon을 사용하세요.page_action
의name
속성이 삭제되었습니다. 대신default_title
속성 또는 pageAction.setTitle을 사용하세요.page_action
의popup
속성이 삭제되었습니다. 대신default_popup
속성 또는 pageAction.setPopup을 사용하세요.page_action
의default_popup
속성을 더 이상 객체로 지정할 수 없습니다. 문자열이어야 합니다.
- 매니페스트의
chrome.self
API가 삭제되었습니다. 대신chrome.extension
를 사용하세요.chrome.extension.getTabContentses
(!!!) 및chrome.extension.getExtensionTabs
이(가) 사라졌습니다. 대신 extension.getViews를 사용하세요.Port.tab
님이 삭제되었습니다. 대신 runtime.Port를 사용하세요.