Расширения, темы и приложения — это просто пакеты ресурсов, заключенные в файл manifest.json
, описывающий содержимое пакета. Формат этого файла в целом стабилен, но иногда необходимо вносить критические изменения для решения важных проблем. Разработчики должны указать, для какой версии спецификации манифеста предназначен их пакет, установив ключ manifest_version
в своих манифестах.
Текущая версия
В настоящее время разработчикам следует указать 'manifest_version': 2
:
{
...,
"manifest_version": 2,
...
}
Манифест версии 1 устарел в Chrome 18, и его поддержка будет прекращена в соответствии со следующим графиком.
График поддержки манифеста версии 1
август 2012 г.
- Интернет-магазин заблокирует создание новых расширений манифеста версии 1.
- Интернет-магазин позволит обновлять существующие расширения манифеста версии 1.
Март 2013 г.
- Интернет-магазин заблокирует обновления расширений манифеста версии 1 4 марта 2013 г.
апрель 2013 г.
- Бета-версия Chrome 27 перестанет упаковывать расширения манифеста версии 1 (или загружать их для разработки).
июнь 2013 г.
- Интернет-магазин удалит расширения манифеста версии 1 со стены, результатов поиска и страниц категорий.
- Всем разработчикам, чьи расширения манифеста версии 1 все еще находятся в магазине, будут отправлены электронные письма с напоминанием о том, что эти расширения будут отменены, и инструкциями по обновлению.
Сентябрь 2013 г.
- Интернет-магазин отменит публикацию всех расширений манифеста версии 1.
- Электронные письма с окончательным уведомлением будут отправлены разработчикам, чьи расширения манифеста версии 1 все еще находятся в Интернет-магазине.
- Chrome продолжит загружать и запускать установленные расширения манифеста версии 1.
Январь 2014 г.
- Chrome перестанет загружать или запускать расширения манифеста версии 1.
Изменения между версией 1 и 2
- Политика безопасности контента установлена на
`script-src 'self'; object-src 'self';
по умолчанию. Это имеет различные последствия для разработчиков, подробно описанные в документацииcontent_security_policy
. - Ресурсы пакета больше не доступны по умолчанию для внешних веб-сайтов (в виде
src
изображения или тегаscript
). Если вы хотите, чтобы веб-сайт мог загружать ресурс, содержащийся в вашем пакете, вам необходимо явно внести его в белый список с помощью атрибута манифестаweb_accessible_resources
. Это особенно актуально для расширений, которые создают интерфейс на веб-сайте с помощью сценариев внедрения контента. - Свойство
background_page
было заменено свойствомbackground
, которое содержит либоscripts
, либо свойствоpage
. Подробности доступны в документации по страницам событий . Изменения действий браузера:
- Ключ
browser_actions
в манифесте и APIchrome.browserActions
исчезли. Вместо этого используйте единственное имяbrowser_action
иchrome.browserAction
. - Свойство
icons
browser_action
было удалено. Вместо этого используйте свойствоdefault_icon
или браузерAction.setIcon . - Свойство
name
browser_action
было удалено. Вместо этого используйте свойствоdefault_title
или браузерAction.setTitle . - Свойство
popup
browser_action
было удалено. Вместо этого используйте свойствоdefault_popup
или браузерAction.setPopup . - Свойство
default_popup
browser_action
больше нельзя указывать как объект. Это должна быть строка.
- Ключ
Изменения действий на странице:
- Ключ
page_actions
в манифесте и APIchrome.pageActions
исчезли. Вместо этого используйте единственное числоpage_action
иchrome.pageAction
. - Свойство
icons
дляpage_action
было удалено. Вместо этого используйте свойствоdefault_icon
или pageAction.setIcon . - Свойство
name
дляpage_action
было удалено. Вместо этого используйте свойствоdefault_title
или pageAction.setTitle . - Свойство
popup
дляpage_action
было удалено. Вместо этого используйте свойствоdefault_popup
или pageAction.setPopup . - Свойство
default_popup
дляpage_action
больше нельзя указывать как объект. Это должна быть строка.
- Ключ
API
chrome.self
был удален. Вместо этого используйтеchrome.extension
.chrome.extension.getTabContentses
(!!!) иchrome.extension.getExtensionTabs
исчезли. Вместо этого используйте расширение.getViews .Port.tab
пропал. Вместо этого используйте runtime.Port .