Release v2.4.0 — Erzwungene Einstellungen: about:config-Prefs bei jedem Start setzen
Neuer forcedPrefs-WebExtension-Experiment (Services.prefs) setzt beim Start globale Prefs (Startseite aus, Kartenansicht, nicht gruppiert, absteigend, 3-Spalten-Layout, nicht auto-gelesen) sowie pro Identität die Signatur-/ Antwort-Einstellungen. Pro Setting im Options-Dialog (⚙-Tab) abschaltbar. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015PZHd9vRsBiH8cKYdQo1Yv
This commit is contained in:
@@ -98,6 +98,55 @@ browser.storage.onChanged.addListener((changes, area) => {
|
||||
});
|
||||
updateErledigtPopup();
|
||||
|
||||
// ── about:config-Prefs bei jedem Start erzwingen ──
|
||||
//
|
||||
// Manche Thunderbird-Einstellungen (Startseite, Ansicht, Layout, pro Konto das
|
||||
// Signatur-/Antwort-Verhalten) „springen zurück" und müssen sonst von Hand
|
||||
// nachgezogen werden. Wir setzen sie bei JEDEM Start neu über den privilegierten
|
||||
// forcedPrefs-Experiment (Services.prefs). Die Liste liegt in
|
||||
// lib/forced-prefs-list.js (globale FORCED_PREFS / FORCED_IDENTITY_PREFS).
|
||||
// Pro Eintrag kann der Client im Options-Dialog opt-outen (forced_prefs_optout).
|
||||
const FORCED_PREFS_OPTOUT_KEY = 'forced_prefs_optout';
|
||||
|
||||
async function enforceForcedPrefs() {
|
||||
const stored = await browser.storage.local.get(FORCED_PREFS_OPTOUT_KEY);
|
||||
const disabled = new Set(stored[FORCED_PREFS_OPTOUT_KEY] || []);
|
||||
|
||||
// Globale Prefs
|
||||
for (const p of FORCED_PREFS) {
|
||||
if (disabled.has(p.id)) continue;
|
||||
try {
|
||||
await browser.forcedPrefs.setPref(p.name, p.type, p.value);
|
||||
} catch (e) {
|
||||
console.error('[forcedPrefs] konnte', p.name, 'nicht setzen:', e);
|
||||
}
|
||||
}
|
||||
|
||||
// Pro-Identität-Prefs — über alle Konten/Identitäten iterieren
|
||||
const accounts = await browser.accounts.list();
|
||||
for (const acc of accounts) {
|
||||
for (const ident of (acc.identities || [])) {
|
||||
for (const p of FORCED_IDENTITY_PREFS) {
|
||||
if (disabled.has(p.id)) continue;
|
||||
const name = `mail.identity.${ident.id}.${p.suffix}`;
|
||||
try {
|
||||
await browser.forcedPrefs.setPref(name, p.type, p.value);
|
||||
} catch (e) {
|
||||
console.error('[forcedPrefs] konnte', name, 'nicht setzen:', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enforceForcedPrefs(); // Top-Level = läuft einmal pro TB-Start
|
||||
|
||||
// Wird eine Pref im Options-Dialog wieder AKTIVIERT, sofort anwenden
|
||||
// (statt bis zum nächsten Neustart zu warten).
|
||||
browser.storage.onChanged.addListener((changes, area) => {
|
||||
if (area === 'local' && changes[FORCED_PREFS_OPTOUT_KEY]) enforceForcedPrefs();
|
||||
});
|
||||
|
||||
// ── Signatur in neuen Compose-Fenstern automatisch aktualisieren ──
|
||||
//
|
||||
// Thunderbird merkt sich die Signatur einer Identität pro Sitzung. Öffnet der
|
||||
|
||||
Reference in New Issue
Block a user