С помощью browser.gcm вы можете отправлять и получать сообщения конечным пользователям. Поскольку он построен на основе Firebase Cloud Messaging (FCM), он зависит от внешнего сервиса, который необходимо настроить. В этом руководстве описаны все необходимые шаги для его работы в вашем расширении.
Хотя browser.gcm по - прежнему поддерживается, он был создан более десяти лет назад, до стандарта Push . В целом, всегда лучше использовать веб-стандарт, а не API, специфичный для расширений. Если у вас нет особой необходимости использовать browser.gcm , мы рекомендуем использовать Push .
Предварительные требования
Для использования browser.gcm вам потребуется создать учетную запись Firebase .

После создания учетной записи откройте консоль Firebase и выберите существующий проект для использования или создайте новый для своего расширения.

Перейдите на страницу настроек облачного обмена сообщениями.

Если у вас уже есть учетная запись облачного обмена сообщениями в этом проекте, вам следует скопировать указанный в ней числовой идентификатор отправителя.
Если у вас не включена функция обмена сообщениями в облаке, вам потребуется включить API Firebase Cloud Messaging для проекта в Google Cloud. На следующем изображении вы можете увидеть ссылку, ведущую непосредственно на эту страницу в настройках Firebase.

После включения вернитесь на страницу настроек Cloud Messaging и скопируйте идентификатор отправителя (Sender ID).
Configure browser.gcm
Теперь, когда у вас есть идентификатор отправителя (Sender Id) из Firebase, вы можете настроить расширение для прослушивания сообщений. Для начала убедитесь, что вы добавили разрешение gcm в manifest.json вашего расширения.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Теперь у вас есть доступ к API browser.gcm . Вы можете зарегистрироваться для прослушивания push-уведомлений, вызвав метод browser.gcm.register
Внимательно прислушивайтесь к сообщениям
После регистрации вашего идентификатора отправителя расширением необходимо добавить код для обработки входящих сообщений.
Firebase без Firebase
Хотя browser.gcm всегда использует Firebase, Firebase можно настроить как прокси для внешних поставщиков push-уведомлений. Обычно поставщики явно указывают поддержку расширений Chrome, однако любой поставщик, поддерживающий устаревшие push-уведомления Firebase, должен работать. Если ваш поставщик указывает поддержку устаревших push-уведомлений Firebase, попробуйте. Если возникнут проблемы, служба поддержки поставщика сможет разъяснить любые существующие ограничения.
О каналах и темах
browser.gcm использует устаревшие API Firebase Messaging. Это важно, потому что устаревший API не поддерживает каналы сообщений . Каждое отправленное сообщение будет доставлено каждому клиенту. Если расширение пользователя заинтересовано только в подмножестве сообщений, вам потребуется самостоятельно выполнить фильтрацию.
Хотя Firebase изначально предоставляется с бесплатной учетной записью, с вас будет взиматься плата после превышения определенного порога использования. Если вы планируете отправлять сообщения определенным группам, то фильтрация на стороне клиента может обойтись дороже, чем это оправдано. Эту проблему можно решить, создав несколько проектов для дублирования отдельных каналов (один проект и один идентификатор отправителя для каждого канала). Любое расширение может зарегистрировать несколько идентификаторов отправителя, до 100.
В качестве альтернативы, если вам необходима поддержка каналов или вы хотите использовать push-уведомления без Firebase, вы можете воспользоваться Push API .