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:
@@ -1978,3 +1978,51 @@ window.addEventListener('load', async () => {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ── Opt-out-Schalter für erzwungene Prefs ──
|
||||
// FORCED_PREFS / FORCED_IDENTITY_PREFS stammen aus ../lib/forced-prefs-list.js
|
||||
// (im HTML vor diesem Script geladen). Gespeichert werden die ids der
|
||||
// DEAKTIVIERTEN Prefs unter 'forced_prefs_optout'; Haken = wird erzwungen.
|
||||
const FORCED_PREFS_OPTOUT_KEY = 'forced_prefs_optout';
|
||||
|
||||
async function renderForcedPrefsToggles() {
|
||||
const container = document.getElementById('forced-prefs-list');
|
||||
if (!container || typeof FORCED_PREFS === 'undefined') return;
|
||||
|
||||
const stored = await browser.storage.local.get(FORCED_PREFS_OPTOUT_KEY);
|
||||
const disabled = new Set(stored[FORCED_PREFS_OPTOUT_KEY] || []);
|
||||
|
||||
container.textContent = '';
|
||||
const entries = [...FORCED_PREFS, ...(typeof FORCED_IDENTITY_PREFS !== 'undefined' ? FORCED_IDENTITY_PREFS : [])];
|
||||
for (const p of entries) {
|
||||
const row = document.createElement('label');
|
||||
row.className = 'forced-pref-row';
|
||||
row.style.display = 'flex';
|
||||
row.style.alignItems = 'center';
|
||||
row.style.gap = '8px';
|
||||
row.style.padding = '4px 0';
|
||||
row.style.cursor = 'pointer';
|
||||
|
||||
const cb = document.createElement('input');
|
||||
cb.type = 'checkbox';
|
||||
cb.checked = !disabled.has(p.id); // Haken = wird erzwungen
|
||||
cb.addEventListener('change', () => setForcedPrefEnabled(p.id, cb.checked));
|
||||
|
||||
const span = document.createElement('span');
|
||||
span.textContent = p.label;
|
||||
|
||||
row.append(cb, span);
|
||||
container.appendChild(row);
|
||||
}
|
||||
}
|
||||
|
||||
async function setForcedPrefEnabled(id, enabled) {
|
||||
const stored = await browser.storage.local.get(FORCED_PREFS_OPTOUT_KEY);
|
||||
const disabled = new Set(stored[FORCED_PREFS_OPTOUT_KEY] || []);
|
||||
if (enabled) disabled.delete(id);
|
||||
else disabled.add(id);
|
||||
await browser.storage.local.set({ [FORCED_PREFS_OPTOUT_KEY]: [...disabled] });
|
||||
// background.js lauscht auf storage.onChanged und wendet Aktivierungen sofort an.
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', renderForcedPrefsToggles);
|
||||
|
||||
Reference in New Issue
Block a user