glossary.ts raw

   1  /**
   2   * Plain-language glossary for the browser encyclopedia. Each term is
   3   * tagged with the axis (security / privacy) it belongs to so the
   4   * encyclopedia can surface only the relevant entries per tab. Tapping
   5   * a term opens its definition in a popover.
   6   *
   7   * Definitions are intentionally jargon-light — one or two sentences a
   8   * non-specialist can follow.
   9   */
  10  export type GlossaryAxis = 'security' | 'privacy';
  11  
  12  export type GlossaryEntry = {
  13    term: string;
  14    def: string;
  15    axis: GlossaryAxis;
  16  };
  17  
  18  export const GLOSSARY: GlossaryEntry[] = [
  19    // ─── Security ──────────────────────────────────────────────────────
  20    {
  21      term: 'Sandbox',
  22      axis: 'security',
  23      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.',
  24    },
  25    {
  26      term: 'Site isolation',
  27      axis: 'security',
  28      def: 'Renders every site in a separate process — the backbone of Chromium’s sandbox. Stops one site from spying on another via shared memory.',
  29    },
  30    {
  31      term: 'Mitigations',
  32      axis: 'security',
  33      def: 'Memory-safety defenses (CFI, MTE, hardened_malloc, stack canaries, zero-init) that make a bug far harder to turn into a working exploit.',
  34    },
  35    {
  36      term: 'MTE',
  37      axis: 'security',
  38      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.',
  39    },
  40    {
  41      term: 'CFI',
  42      axis: 'security',
  43      def: 'Control-Flow Integrity — stops an attacker from redirecting the program’s execution to malicious code after corrupting memory.',
  44    },
  45    {
  46      term: 'hardened_malloc',
  47      axis: 'security',
  48      def: 'GrapheneOS’s security-focused memory allocator. Detects heap corruption and makes classic heap exploits much less reliable.',
  49    },
  50    {
  51      term: 'Open source',
  52      axis: 'security',
  53      def: 'The code is public and auditable, so security claims can be independently verified rather than taken on trust.',
  54    },
  55    {
  56      term: 'Updates',
  57      axis: 'security',
  58      def: 'How quickly security patches reach you after an upstream fix lands. Slower channels leave known holes open longer.',
  59    },
  60    {
  61      term: 'Fork lag',
  62      axis: 'security',
  63      def: 'How far behind its parent project (e.g. Chromium) a fork runs. A bigger lag means publicly-known vulnerabilities stay unpatched for longer.',
  64    },
  65    {
  66      term: 'JIT',
  67      axis: 'security',
  68      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.',
  69    },
  70  
  71    // ─── Privacy ───────────────────────────────────────────────────────
  72    {
  73      term: 'Baseline',
  74      axis: 'privacy',
  75      def: 'The browser’s intrinsic privacy posture before you tune anything — its defaults for trackers, cookies, and fingerprint resistance.',
  76    },
  77    {
  78      term: 'privacytests.org',
  79      axis: 'privacy',
  80      def: 'An independent test suite measuring how well a browser resists tracking and fingerprinting. We snapshot its Android results for the score.',
  81    },
  82    {
  83      term: 'Fingerprinting',
  84      axis: 'privacy',
  85      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.',
  86    },
  87    {
  88      term: 'RFP',
  89      axis: 'privacy',
  90      def: 'Resist Fingerprinting — a Firefox/Tor mode that makes every browser look identical, denying trackers a unique signature (may break some sites).',
  91    },
  92    {
  93      term: 'Third-party cookies',
  94      axis: 'privacy',
  95      def: 'Cookies set by domains other than the one in your address bar — the classic mechanism for tracking you across different sites.',
  96    },
  97    {
  98      term: 'Tracker blocking',
  99      axis: 'privacy',
 100      def: 'Blocking known ad / analytics / tracker domains and scripts before they ever load, cutting off data collection at the source.',
 101    },
 102    {
 103      term: 'Tracking parameters',
 104      axis: 'privacy',
 105      def: 'URL query bits (utm_*, fbclid, gclid…) that tag you across sites. Warden strips these before the link ever reaches the browser.',
 106    },
 107    {
 108      term: 'Ephemeral',
 109      axis: 'privacy',
 110      def: 'A session that keeps nothing — history, cookies, and cache are all wiped the moment it closes.',
 111    },
 112    {
 113      term: 'WebRTC',
 114      axis: 'privacy',
 115      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.',
 116    },
 117  ];
 118  
 119  export function glossaryFor(axis: GlossaryAxis): GlossaryEntry[] {
 120    return GLOSSARY.filter((e) => e.axis === axis);
 121  }
 122