/** * Plain-language glossary for the browser encyclopedia. Each term is * tagged with the axis (security / privacy) it belongs to so the * encyclopedia can surface only the relevant entries per tab. Tapping * a term opens its definition in a popover. * * Definitions are intentionally jargon-light — one or two sentences a * non-specialist can follow. */ export type GlossaryAxis = 'security' | 'privacy'; export type GlossaryEntry = { term: string; def: string; axis: GlossaryAxis; }; export const GLOSSARY: GlossaryEntry[] = [ // ─── Security ────────────────────────────────────────────────────── { term: 'Sandbox', axis: 'security', def: 'Each website runs in its own locked-down process, so a compromised page can’t read other sites’ data or reach the rest of your device.', }, { term: 'Site isolation', axis: 'security', def: 'Renders every site in a separate process — the backbone of Chromium’s sandbox. Stops one site from spying on another via shared memory.', }, { term: 'Mitigations', axis: 'security', def: 'Memory-safety defenses (CFI, MTE, hardened_malloc, stack canaries, zero-init) that make a bug far harder to turn into a working exploit.', }, { term: 'MTE', axis: 'security', def: 'Memory Tagging Extension — an ARM hardware feature (Tensor, Snapdragon 8 Gen 3+) that catches use-after-free and overflow bugs the moment they happen.', }, { term: 'CFI', axis: 'security', def: 'Control-Flow Integrity — stops an attacker from redirecting the program’s execution to malicious code after corrupting memory.', }, { term: 'hardened_malloc', axis: 'security', def: 'GrapheneOS’s security-focused memory allocator. Detects heap corruption and makes classic heap exploits much less reliable.', }, { term: 'Open source', axis: 'security', def: 'The code is public and auditable, so security claims can be independently verified rather than taken on trust.', }, { term: 'Updates', axis: 'security', def: 'How quickly security patches reach you after an upstream fix lands. Slower channels leave known holes open longer.', }, { term: 'Fork lag', axis: 'security', def: 'How far behind its parent project (e.g. Chromium) a fork runs. A bigger lag means publicly-known vulnerabilities stay unpatched for longer.', }, { term: 'JIT', axis: 'security', def: 'Just-In-Time compiler — speeds up JavaScript by compiling it on the fly. Turning it off removes a large class of exploit primitives at some performance cost.', }, // ─── Privacy ─────────────────────────────────────────────────────── { term: 'Baseline', axis: 'privacy', def: 'The browser’s intrinsic privacy posture before you tune anything — its defaults for trackers, cookies, and fingerprint resistance.', }, { term: 'privacytests.org', axis: 'privacy', def: 'An independent test suite measuring how well a browser resists tracking and fingerprinting. We snapshot its Android results for the score.', }, { term: 'Fingerprinting', axis: 'privacy', def: 'Identifying you by your browser’s unique mix of traits — canvas, fonts, screen size, GPU — instead of cookies. Hard to clear because it needs no stored state.', }, { term: 'RFP', axis: 'privacy', def: 'Resist Fingerprinting — a Firefox/Tor mode that makes every browser look identical, denying trackers a unique signature (may break some sites).', }, { term: 'Third-party cookies', axis: 'privacy', def: 'Cookies set by domains other than the one in your address bar — the classic mechanism for tracking you across different sites.', }, { term: 'Tracker blocking', axis: 'privacy', def: 'Blocking known ad / analytics / tracker domains and scripts before they ever load, cutting off data collection at the source.', }, { term: 'Tracking parameters', axis: 'privacy', def: 'URL query bits (utm_*, fbclid, gclid…) that tag you across sites. Warden strips these before the link ever reaches the browser.', }, { term: 'Ephemeral', axis: 'privacy', def: 'A session that keeps nothing — history, cookies, and cache are all wiped the moment it closes.', }, { term: 'WebRTC', axis: 'privacy', def: 'A browser API for real-time audio/video. Its STUN lookups can reveal your real local + public IP even behind a VPN or proxy — so privacy-minded browsers mask or disable it. Tune it in the Privacy hardening tips.', }, ]; export function glossaryFor(axis: GlossaryAxis): GlossaryEntry[] { return GLOSSARY.filter((e) => e.axis === axis); }