diff --git a/src/extension/background.js b/src/extension/background.js index 0632dfa3d..b8dc3f52f 100644 --- a/src/extension/background.js +++ b/src/extension/background.js @@ -28,7 +28,6 @@ import { getGitHubSettings, setConfig, getConfig, - updateProjectConfigs, populateUrlCache, queryUrlCache, setDisplay, @@ -338,8 +337,13 @@ function getHelpLanguage() { * while respecting previous user acknowledgements. */ async function updateHelpContent() { - const hlxSidekickHelpContent = await getConfig('sync', 'hlxSidekickHelpContent') || []; - log.debug('existing help content', hlxSidekickHelpContent); + // don't fetch new help content for at least 4 hours + const helpContentFetched = await getConfig('local', 'hlxSidekickHelpContentFetched'); + if ((helpContentFetched || 0) > Date.now() - 14400000) { + return; + } + const helpContent = await getConfig('sync', 'hlxSidekickHelpContent') || []; + log.debug('existing help content', helpContent); const lang = getHelpLanguage(); const resp = await fetch(`https://www.hlx.live/tools/sidekick/${lang}/help.json`); if (resp.ok) { @@ -363,9 +367,9 @@ async function updateHelpContent() { return true; }) .map((incoming) => { - const index = hlxSidekickHelpContent.findIndex((existing) => existing.id === incoming.id); + const index = helpContent.findIndex((existing) => existing.id === incoming.id); return { - ...(index >= 0 ? hlxSidekickHelpContent[index] : {}), + ...(index >= 0 ? helpContent[index] : {}), ...incoming, steps: incoming.steps .split(',') @@ -377,6 +381,10 @@ async function updateHelpContent() { await setConfig('sync', { hlxSidekickHelpContent: updatedHelpContent, }); + // remember when help content was last fetched + await setConfig('local', { + hlxSidekickHelpContentFetched: Date.now(), + }); } catch (e) { log.error('failed to update help content', e); } @@ -733,7 +741,6 @@ const internalActions = { // }); await updateHelpContent(); - await updateProjectConfigs(); await setUserAgentHeader(); await updateAdminAuthHeaderRules(); log.info('sidekick extension initialized'); diff --git a/src/extension/utils.js b/src/extension/utils.js index 0a89c7972..98e4ccdbb 100644 --- a/src/extension/utils.js +++ b/src/extension/utils.js @@ -711,23 +711,3 @@ export function toggleDisplay(cb) { setDisplay(!display, cb); }); } - -/** - * Updates the legacy project configurations to the new format. - * @deprecated - * @todo remove - */ -export async function updateProjectConfigs() { - const configs = await getConfig('sync', 'hlxSidekickConfigs'); - const projects = await getConfig('sync', 'hlxSidekickProjects'); - if (configs && !projects) { - // migrate old to new project configs - for (let i = 0; i < configs.length; i += 1) { - // eslint-disable-next-line no-await-in-loop - await setProject(configs[i]); - } - // TODO: remove old project configs - // await removeConfig('sync', 'hlxSidekickConfigs'); - log.info('project config updated'); - } -} diff --git a/test/extension/utils.test.js b/test/extension/utils.test.js index 26e257d0d..b879e825a 100644 --- a/test/extension/utils.test.js +++ b/test/extension/utils.test.js @@ -335,17 +335,6 @@ describe('Test extension utils', () => { })).to.be.true; }); - it('updateProjectConfigs', async () => { - sandbox.spy(window.chrome.storage.sync, 'set'); - sandbox.spy(window.chrome.storage.sync, 'remove'); - await utils.removeConfig('sync', 'hlxSidekickProjects'); - await utils.updateProjectConfigs(); - // expect(chrome.storage.sync.remove.calledWith('hlxSidekickConfigs')).to.be.true; - expect(chrome.storage.sync.set.calledWith({ - hlxSidekickProjects: ['test/legacy-project'], - })).to.be.true; - }); - it('setDisplay', async () => { const spy = sandbox.spy(window.chrome.storage.local, 'set'); await utils.setDisplay(true);