What Xiao changes

This page is generated from the same settings files the browser uses, so it can't drift from what Xiao actually does.

Settings

Telemetry, studies and remote experiments (18)

Nothing about how you use the browser is sent anywhere, and no one can switch on experiments remotely.

datareporting.policy.dataSubmissionEnabledfalse
datareporting.healthreport.uploadEnabledfalse
toolkit.telemetry.enabledfalse
toolkit.telemetry.unifiedfalse
toolkit.telemetry.serverdata:,
toolkit.telemetry.archive.enabledfalse
toolkit.telemetry.newProfilePing.enabledfalse
toolkit.telemetry.shutdownPingSender.enabledfalse
toolkit.telemetry.updatePing.enabledfalse
toolkit.telemetry.bhrPing.enabledfalse
toolkit.telemetry.firstShutdownPing.enabledfalse
app.shield.optoutstudies.enabledfalse
app.normandy.enabledfalse
app.normandy.api_url""
messaging-system.rsexperimentloader.enabledfalse
browser.discovery.enabledfalse
breakpad.reportURL""
browser.tabs.crashReporting.sendReportfalse
Sponsored content and recommendations (8)

No sponsored shortcuts, suggestions or add-on recommendations.

browser.newtabpage.activity-stream.showSponsoredfalse
browser.newtabpage.activity-stream.showSponsoredTopSitesfalse
browser.newtabpage.activity-stream.feeds.telemetryfalse
browser.newtabpage.activity-stream.telemetryfalse
browser.urlbar.suggest.quicksuggest.sponsoredfalse
browser.urlbar.suggest.quicksuggest.nonsponsoredfalse
extensions.getAddons.showPanefalse
extensions.htmlaboutaddons.recommendations.enabledfalse
Tracking protection (14)

Strict tracking protection, cookies kept per site, tracking parameters removed from links, and a Global Privacy Control signal.

browser.contentblocking.categorystrict
privacy.trackingprotection.enabledtrue
privacy.trackingprotection.socialtracking.enabledtrue
network.cookie.cookieBehavior5
privacy.query_stripping.enabledtrue
privacy.query_stripping.enabled.pbmodetrue
privacy.globalprivacycontrol.enabledtrue
privacy.fingerprintingProtectiontrue
privacy.fingerprintingProtection.pbmodetrue
privacy.fingerprintingProtection.overrides+WebGLRenderInfo,+WebGLVendorRandomize,+ScreenRect,+ScreenAvailRect,+WindowOuterSize,+NavigatorHWConcurrencyTiered,+FontVisibilityBaseSystem,+FontVisibilityLangPack,+AudioSampleRate
privacy.partition.network_state.ocsp_cachetrue
network.http.referer.XOriginTrimmingPolicy2
browser.send_pingsfalse
dom.battery.enabledfalse
Connections (14)

Pages load over HTTPS only, certificate checks are strict, and DNS lookups are encrypted (Quad9).

dom.security.https_only_modetrue
dom.security.https_only_mode_send_http_background_requestfalse
security.tls.enable_0rtt_datafalse
security.ssl.require_safe_negotiationtrue
security.ssl.treat_unsafe_negotiation_as_brokentrue
security.cert_pinning.enforcement_level2
security.remote_settings.crlite_filters.enabledtrue
security.pki.crlite_mode2
browser.xul.error_pages.expert_bad_certtrue
network.IDN_show_punycodetrue
network.trr.mode2
network.trr.urihttps://dns.quad9.net/dns-query
network.trr.custom_urihttps://dns.quad9.net/dns-query
doh-rollout.disable-heuristicstrue
Requests made before you ask (also keeps the Tor container clean) (13)

The browser doesn't connect to sites you haven't opened: no prefetching, no early connections, no search suggestions while you type.

network.prefetch-nextfalse
network.dns.disablePrefetchtrue
network.dns.disablePrefetchFromHTTPStrue
network.predictor.enabledfalse
network.predictor.enable-prefetchfalse
network.http.speculative-parallel-limit0
browser.places.speculativeConnect.enabledfalse
browser.urlbar.speculativeConnect.enabledfalse
browser.search.suggest.enabledfalse
browser.urlbar.suggest.searchesfalse
network.proxy.socks_remote_dnstrue
network.file.disable_unc_pathstrue
network.gio.supported-protocols""
WebRTC: never reveal local addresses (3)

Video calls still work, but sites can't read your local network addresses.

media.peerconnection.ice.default_address_onlytrue
media.peerconnection.ice.no_hosttrue
media.peerconnection.ice.proxy_only_if_behind_proxytrue
Safe Browsing stays on; downloads are not sent to Google (3)

Known phishing and malware sites are still blocked, using lists checked on your computer. Files you download are not sent off for checking.

browser.safebrowsing.malware.enabledtrue
browser.safebrowsing.phishing.enabledtrue
browser.safebrowsing.downloads.remote.enabledfalse
Smaller things (7)

PDFs can't run scripts, saved passwords aren't filled in automatically, and containers are turned on.

pdfjs.enableScriptingfalse
network.auth.subresource-http-auth-allow1
browser.download.always_ask_before_handling_new_typestrue
signon.formlessCapture.enabledfalse
signon.autofillFormsfalse
privacy.userContext.enabledtrue
privacy.userContext.ui.enabledtrue
Local-only data (1)

Your browsing data stays on this computer: no Firefox Account and no Firefox Sync.

identity.fxaccounts.enabledfalse
Translation on this computer (1)

Firefox's own translation runs on your computer. Its language files come from Mozilla the first time you use a language.

browser.translations.enabletrue
Speed and memory (6)

Pages appear a little sooner, and fewer idle processes and tabs stay in memory. Tabs that were unloaded reload when you open them.

content.notify.interval100000
network.http.max-persistent-connections-per-server10
dom.ipc.processPrelaunch.fission.number1
browser.sessionstore.interval60000
browser.tabs.min_inactive_duration_before_unload300000
zen.tab-unloader.timeout-minutes15

Strict mode adds

Fingerprinting resistance and more (10)

Installed with --strict. Some sites look or behave differently.

privacy.resistFingerprintingtrue
privacy.resistFingerprinting.letterboxingtrue
privacy.spoof_english2
webgl.disabledtrue
geo.enabledfalse
network.trr.mode3
media.peerconnection.ice.relay_onlytrue
privacy.sanitize.sanitizeOnShutdowntrue
privacy.clearOnShutdown_v2.cookiesAndStoragetrue
signon.rememberSignonsfalse

Connections Xiao itself makes

Zen and Firefox make their own connections (Safe Browsing lists, certificate revocation lists). The settings above switch off the ones that aren't needed for security. Read the files.

How memory was measured

test/e2e/memory.mjs on 2026-10-20: Zen 1.23.3b on an Apple silicon Mac, a fresh profile each time, the start page plus six pages (Wikipedia, The Guardian, BBC News, CNN, Reddit and an ad test page), measured 60 s after opening them with Firefox's own per-process figures, then again after Firefox's "minimise memory". Three runs of each version, alternating; the figures are medians.

Xiao 0.1Xiao 0.2
Add-on process, after a minute1,135 MB (Xiao's blocker and Zen's add-ons)40 MB (Zen's own add-ons)
Add-on process, after freeing memory290 MB39 MB
Whole browser, after a minute3,193 MB2,179 MB
Whole browser, after freeing memory2,026 MB1,821 MB
Each run, whole browser after a minute2,692, 3,273, 3,193 MB2,179, 2,119, 2,272 MB

0.1's extension built its blocking engine from the raw lists and kept it in a process of its own; 0.2 loads a prebuilt engine into the browser itself. 0.2 also keeps one spare web process instead of three. Busy sites move the whole-browser numbers a lot from run to run, so read them as a direction, not a promise. Run node test/e2e/memory.mjs to measure on your own machine.