Новые API в Google Chrome 22

Google Chrome 22 во всю шагает по планете. Мы уже знаем, что нового принесла эта версия браузера для простых пользователей (из нашей статьи). А сегодня расскажем, какие новые инструменты стали доступны разработчикам расширений и приложений. Простым пользователям тоже важно прочитать, особенно наши дополнительные советы в конце статьи...

Event Pages API

Любой разработчик расширений прекрасно знает, что такое фоновые страницы (background pages). Они используются нашими расширениями для постоянного мониторинга каких либо событий, проверки сообщений и т.п. Они постоянно сидят в памяти браузера, тратят его ресурсы, даже тогда, когда их работа не требуется.

В Google Chrome 22 введена новая разновидность фоновых страниц - event pages. По сути это разновидность background страниц, но с очень важным отличием: они загружаются в память и работают только тогда, когда это действительно необходимо. По завершению своей работы они выгружаются из памяти и освобождают ресурсы.

Event страницы запускаются в следующих случаях:

1. При первой установке расширения.

2. Если срабатывает событие, которое отслеживается.

3. При внешнем обращении со стороны content scripts или вызове, к примеру,  chrome.runtime.getBackgroundPage().

Использовать Event Pages API очень просто. Подробнее в официальной документации.

Alarms и Runtime APIs

Еще парочка новых инструментов, хотя они и не так интересны как Events.

  • alarms API позволяет вам запланировать периодичность исполнения кода или назначить время его старта в будущем. Подробнее.
  • runtime API содержит полезные методы для работы с общесистемными событиями. Подробнее.

Защита от устаревших Chromium сборок

А вот сейчас важная информация как для разработчиков, так и для простых пользователей. Как вы знаете, все альтернативные сборки, такие как новый Яндекс.Браузер, концептуальный Амиго и даже принципиально новый Интернет от Одноклассников, имеют в своей основе устаревшую версию Chromium. В результате все расширения, которые используют более новые API, там работать не будут. Пользователи этих сборок могут не догадаться, что проблема не в разработчиках дополнения, а в их устаревшем браузере. Пойдут в Chrome Web Store и нагадят, так сказать, плохим отзывом и низким рейтингом. Как от этого защититься?

В манифесте своих расширений указывайте минимальную версию Хрома, на которой все должно работать:

"minimum_chrome_version": N,

Таким образом, пользователи устаревших сборок не смогут установить ваше расширения. А вы будете защищены от неадекватных отзывов.

P.S. Почему Google Chrome может раз в 6 недель переходить на новый Chromium, а все остальные нет?