// Фоновый service worker — проверка обновлений расширения // Работает только в режиме "Load unpacked" (Developer Mode) const VERSION_URL = 'https://git.ihateamerica.ru/caps_enhancer/version.json'; const CHECK_INTERVAL_MINUTES = 60; chrome.runtime.onInstalled.addListener(() => { chrome.alarms.create('updateCheck', { delayInMinutes: 1, periodInMinutes: CHECK_INTERVAL_MINUTES }); }); chrome.alarms.onAlarm.addListener((alarm) => { if (alarm.name === 'updateCheck') { checkForUpdates(); } }); async function checkForUpdates() { try { const res = await fetch(VERSION_URL + '?t=' + Date.now()); if (!res.ok) return; const { version: remote } = await res.json(); const local = chrome.runtime.getManifest().version; if (isNewer(remote, local)) { console.log(`[CAPS Enhancer] Обновление: ${local} → ${remote}. Перезагружаю...`); // Небольшая задержка — дать scheduled task время распаковать файлы await new Promise(r => setTimeout(r, 3000)); chrome.runtime.reload(); } } catch { // Нет соединения или сервер недоступен — молча игнорируем } } function isNewer(remote, local) { const r = remote.split('.').map(Number); const l = local.split('.').map(Number); for (let i = 0; i < Math.max(r.length, l.length); i++) { if ((r[i] || 0) > (l[i] || 0)) return true; if ((r[i] || 0) < (l[i] || 0)) return false; } return false; }