Проверьте, установлено ли расширение Chrome в распакованном режиме.

Есть ли способ определить, запущено ли расширение, которое было установлено из моего файла.crx, или расширение было загружено с помощью кнопки "Загрузить распакованное расширение..."?

Я знаю о различиях идентификаторов в этом случае, но я не хочу полагаться на жестко закодированные строки в коде.

3 ответа

Решение

Если по "установлено из моего .crx файл "вы имеете в виду установленный из Chrome Web Store, вы можете просто проверить расширение manifest.json для стоимости update_url приписывать. CWS добавляет его при загрузке вашего расширения.

Если у вас есть хостинг .crx файл, получить информацию о расширении, используя chrome.management.getSelf() и проверить installType возвращенного объекта ExtensionInfo. Если это говорит "development" это означает, что расширение было загружено распакованным в режиме разработчика. "normal" означает, что он был установлен с .crx файл.

Вот пример кода, как это сделать:

function isDevMode() {
    return !('update_url' in chrome.runtime.getManifest());
}

Используется в Kuoll Remote Web Debugger

Вы можете проверить, работает ли расширение в режиме разработчика (т.е. распаковано), проверив, содержит ли оно update_url атрибут в его манифесте. Это зависит от манифеста вашего распакованного расширения, не содержащего update_url, Атрибут будет автоматически добавлен при публикации через инструментальную панель разработчика Chrome.

const IS_DEV_MODE = !('update_url' in chrome.runtime.getManifest());

function debugLog(str) {
  if (IS_DEV_MODE) console.log(str);
}

debugLog('This only appears in developer mode');
Другие вопросы по тегам