Разработчикам: синхронизируем данные расширений при помощи Storage API

Синхронизация Google Chrome позволяет делать много замечательных вещей: переносить настройки браузера, закладки, пароли и даже сами расширения и приложения с одного ПК на другой. Вот только расширения переносятся без своих данных и настроек. И нам приходится тратить время и нервы, чтобы все заново настроить. Утомительно. Однако теперь у нас в руках есть инструмент, который упростит нам жизнь.

Если быть точнее, то инструмент этот именуется Storage API и доступен он разработчикам расширений и приложений начиная с Google Chrome 20. Теперь нет смысла в своих разработках использовать localStorage API, т.к. новый инструмент куда удобнее и практичнее. И вот почему:

  • Storage API не только хранит данные, но и синхронизирует их стандартными средствами браузера (storage.sync).
  • Контент-скрипты расширений могут напрямую обращаться за данными, не используя промежуточные фоновые процессы.
  • Настройки расширений могут сохраняться даже, если они в режиме инкогнито разбиты на независимые процессы (что это такое - описано тут).
  • localStorage хранил данные в виде строки. Storage хранит данные как объекты. Давно мы этого ждали.

Чтобы применять новый API необходимо прописать специальное "разрешение" в манифесте:

"permissions": [
"storage"
]

Подробное применение описано в документации. А пример можно увидеть здесь.

Применяем, товарищи разработчики!