From c35885644d31960cbb2de4e22709ed020d6d2974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 16 Oct 2026 16:28:20 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=94=A8=20Disable=20background=20auto?= =?UTF-8?q?=20refresh=20by=20default,=20default=20interval=206h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/definitions.js | 4 ++-- src/options/AutoRefreshOption.vue | 2 +- test/engines/backgroundEngine.spec.js | 11 +++-------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/definitions.js b/src/definitions.js index 0af4749..fec18bb 100644 --- a/src/definitions.js +++ b/src/definitions.js @@ -12,8 +12,8 @@ const defaultOptions = { ordinate: true, tagColors: false, liveCountUp: true, - autoRefresh: true, - autoRefreshInterval: 30, + autoRefresh: false, + autoRefreshInterval: 360, startOfWeek: localStartOfWeek(), addresses: '', includeSubfolders: false, diff --git a/src/options/AutoRefreshOption.vue b/src/options/AutoRefreshOption.vue index deefa79..32bb1ad 100644 --- a/src/options/AutoRefreshOption.vue +++ b/src/options/AutoRefreshOption.vue @@ -24,7 +24,7 @@ id="autoRefreshInterval" type="number" v-model="options.autoRefreshInterval" - placeholder="30" + placeholder="360" min="5" @change="checkAutoRefreshInterval()" /> diff --git a/test/engines/backgroundEngine.spec.js b/test/engines/backgroundEngine.spec.js index 563ea27..85a9ea4 100644 --- a/test/engines/backgroundEngine.spec.js +++ b/test/engines/backgroundEngine.spec.js @@ -76,19 +76,14 @@ describe('syncAlarm', () => { expect(messenger.alarms.create).not.toHaveBeenCalled(); }); - it('falls back to defaultOptions when nothing has been stored yet', async () => { + it('falls back to defaultOptions (autoRefresh off) when nothing has been stored yet', async () => { const messenger = setupMessenger(); vi.stubGlobal('messenger', messenger); await syncAlarm(); - if (defaultOptions.autoRefresh) { - expect(messenger.alarms.create).toHaveBeenCalledWith(ALARM_NAME, { - periodInMinutes: Number(defaultOptions.autoRefreshInterval), - }); - } else { - expect(messenger.alarms.create).not.toHaveBeenCalled(); - } + expect(messenger.alarms.clear).toHaveBeenCalledWith(ALARM_NAME); + expect(messenger.alarms.create).not.toHaveBeenCalled(); }); }); From f295f82ee8da7c400b48ea4e596f2148540d4b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 16 Oct 2026 16:34:07 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=94=A8=20Raise=20minimum=20auto=20ref?= =?UTF-8?q?resh=20interval=20to=2030=20min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/composables/useOptionsData.js | 10 +++++----- src/definitions.js | 4 ++++ src/engines/backgroundEngine.js | 7 +++++-- src/options/AutoRefreshOption.vue | 3 ++- test/composables/useOptionsData.spec.js | 20 ++++++++++---------- test/engines/backgroundEngine.spec.js | 16 +++++++++++++--- 6 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/composables/useOptionsData.js b/src/composables/useOptionsData.js index 0f2ce28..08a263a 100644 --- a/src/composables/useOptionsData.js +++ b/src/composables/useOptionsData.js @@ -1,7 +1,7 @@ // Thunderbird messenger.* data engine for the options page. // Call exactly once, from Options.vue - this composable owns all its state internally. import { ref, computed, watch } from 'vue'; -import { defaultColors, defaultOptions } from '@/definitions.js'; +import { defaultColors, defaultOptions, minAutoRefreshInterval } from '@/definitions.js'; import { formatBytes, setTheme } from '@/utils.js'; export function useOptionsData() { @@ -87,17 +87,17 @@ export function useOptionsData() { options.value.autoRefreshInterval++; }; - // decreases auto refresh interval down to limit 5 + // decreases auto refresh interval down to minimum limit const decrementAutoRefreshInterval = () => { - if (options.value.autoRefreshInterval > 5) { + if (options.value.autoRefreshInterval > minAutoRefreshInterval) { options.value.autoRefreshInterval--; } }; // check auto refresh number input to stay in allowed range const checkAutoRefreshInterval = () => { - if (options.value.autoRefreshInterval < 5) { - options.value.autoRefreshInterval = 5; + if (options.value.autoRefreshInterval < minAutoRefreshInterval) { + options.value.autoRefreshInterval = minAutoRefreshInterval; } }; diff --git a/src/definitions.js b/src/definitions.js index fec18bb..947aa47 100644 --- a/src/definitions.js +++ b/src/definitions.js @@ -25,6 +25,9 @@ const defaultOptions = { debug: false, }; +// lower limit in minutes for the automatic background processing interval +const minAutoRefreshInterval = 30; + // tab navigation for stats page const tabsNumbers = { years: 1, @@ -73,6 +76,7 @@ export { accentColors, defaultColors, defaultOptions, + minAutoRefreshInterval, tabsActivity, tabsFolders, tabsLeader, diff --git a/src/engines/backgroundEngine.js b/src/engines/backgroundEngine.js index e63c356..5c92786 100644 --- a/src/engines/backgroundEngine.js +++ b/src/engines/backgroundEngine.js @@ -1,5 +1,5 @@ // background-script: schedules periodic stats reprocessing via messenger.alarms independent from other pages -import { defaultOptions } from '@/definitions.js'; +import { defaultOptions, minAutoRefreshInterval } from '@/definitions.js'; import { filterActiveAccounts } from '@/utils.js'; import { buildAllIdentities, @@ -60,7 +60,10 @@ export const syncAlarm = async () => { const options = await getOptions(); await messenger.alarms.clear(ALARM_NAME); if (options.autoRefresh) { - messenger.alarms.create(ALARM_NAME, { periodInMinutes: Number(options.autoRefreshInterval) }); + // enforce the minimum also for intervals stored before it was raised + messenger.alarms.create(ALARM_NAME, { + periodInMinutes: Math.max(minAutoRefreshInterval, Number(options.autoRefreshInterval)), + }); } }; diff --git a/src/options/AutoRefreshOption.vue b/src/options/AutoRefreshOption.vue index 32bb1ad..cef7f93 100644 --- a/src/options/AutoRefreshOption.vue +++ b/src/options/AutoRefreshOption.vue @@ -25,7 +25,7 @@ type="number" v-model="options.autoRefreshInterval" placeholder="360" - min="5" + :min="minAutoRefreshInterval" @change="checkAutoRefreshInterval()" /> @@ -49,6 +49,7 @@