В моем расширении есть постоянный фоновый скрипт, и я хотел бы, чтобы он запрашивал пользователя, когда доступно обновление.
Насколько я понимаю, если доступно обновление, расширение будет автоматически обновлено после того, как пользователь перезапустит Chrome (из-за постоянного фонового сценария). По этой причине хочу добавить следующее:
chrome.runtime.onUpdateAvailable.addListener((details) => {
var response = window.confirm(`${details.version} is now available`);
if (response) {
chrome.runtime.reload();
}
});
Моя путаница
От: https://developer.chrome.com/docs/extensions/reference/runtime/#event-onUpdateAvailable
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(listener: function)
Fired when an update is available, but isn't installed immediately because the app is currently running.
If you do nothing, the update will be installed the next time the background page gets unloaded, if you want it to be installed sooner you can explicitly call chrome.runtime.reload().
If your extension is using a persistent background page, the background page of course never gets unloaded, so unless you call chrome.runtime.reload() manually in response to this event the update will not get installed until the next time chrome itself restarts.
If no handlers are listening for this event, and your extension has a persistent background page, it behaves as if chrome.runtime.reload() is called in response to this event.
Я не понимаю последнюю фразу:
Если обработчики этого события не ожидают, а ваше расширение имеет постоянную фоновую страницу, оно ведет себя так, как будто в ответ на это событие вызывается chrome.runtime.reload(). .
Вопросы
- Как это возможно, если нет обработчиков события?
- Моя функция правильная?
- Как я могу проверить это?
Проблема
Я попытался установить версию 1.0.0 (текущая последняя версия намного выше) и загрузить ее как разрабатываемое расширение, но приглашение не появилось.