Skip to content

Per-site settings overrides #2

Description

@mxmgorin

Let selected settings be overridden per website, layered over the global config for the current page. Build the host-keyed plumbing once; each setting opts in.

Design

  • Host-keyed override config (e.g. [sites."example.com"] holding a subset of keys; missing keys fall back to global)
  • Resolve by navigated host and layer over the global config for that page
  • Add/edit a site override in the UI (page menu / settings sub-view)

Overridable settings

  • Experimental features (first) — preset / per-feature; [experimental] already shaped to grow a sites sub-table; reuses engine::set_experimental_prefs on navigation
  • User agent — force desktop/mobile per site (global pref → re-apply on navigation)
  • Page zoom — per-site zoom (per-webview set_page_zoom)
  • Ad blocker on/off — per-site allowlist (delegate sees each load's host)
  • Data saving — per-site block_images/media/fonts + max_images_per_page (delegate host check)
  • Record history — per-site "don't log" (maybe)

Notes: per-webview settings (zoom) and per-load host checks (adblock, data-saving) are natural per-site; global Servo prefs (UA, experimental) re-apply on navigation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions