Проверьте, установлено ли расширение 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');