В WebExtensions у вас есть два варианта:
chrome.runtime.id
chrome.i18n.getMessage("@@extension_id")
В Chrome и Opera они вернутто же значение, но в Firefox есть разница.
В Firefox, chrome.runtime.id
вернет так называемый "ID расширения", но chrome.i18n.getMessage("@@extension_id")
вернет "Внутренний UUID".Идентификатор расширения одинаков для всех пользователей, но внутренний UUID создается при установке расширения и является уникальным для каждого пользователя.
В зависимости от контекста идентификатор расширения будет не тем, что вам нужно.Например, Firefox использует внутренний UUID для заполнения заголовка origin
, а не ID расширения.
Пример 1: Ghostery в Firefox 61
chrome.runtime.id --> "firefox@ghostery.com"
chrome.i18n.getMessage("@@extension_id") --> "e3225586-81a0-47c3-8612-d95fb0c2a609"
Дляfetch
запросов из расширения, Firefox добавит заголовок
origin: moz-extension://e3225586-81a0-47c3-8612-d95fb0c2a609
Пример 2: Ghostery in Chrome
chrome.runtime.id --> "mlomiejdfkolichcflejclcbmpeaniij"
chrome.i18n.getMessage("@@extension_id") --> "mlomiejdfkolichcflejclcbmpeaniij"
Для fetch
запросов отв расширение Chrome добавит заголовок
origin: chrome-extension://mlomiejdfkolichcflejclcbmpeaniij