FlawlessFox is a privacy-hardened Firefox fork built from source with compile-time removal of telemetry, crash reporting, and DRM.
This repository has been archived on 2026-08-04. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • JavaScript 32.2%
  • C++ 25.1%
  • HTML 21.2%
  • C 10.4%
  • Kotlin 2.9%
  • Other 7.9%
Find a file
Frank Lý f83e832100
Some checks failed
build.yml / fix(validate-registry): accept missing profile keys when status is reviewed (push) Failing after 0s
CI Gate / Registry validation + mozconfig diff (push) Failing after 6m23s
fix(validate-registry): accept missing profile keys when status is reviewed
Omitting a profile key means 'leave unset per audit decision'.
Only explicit NEEDS_REVIEW / changed-upstream values flag failure.
Restores 151.0.1 audit discipline: 454 reviewed, 0 blocked.
2026-06-14 08:13:29 +02:00
.cargo Bug 1981270: Cherry-pick upstream fix wgpu#9363. r=webgpu-reviewers,aleiserson a=diannaS 2026-05-04 19:15:49 +00:00
.claude Bug 2019775 - Part 2: Create new android gradle module skill r=nalexander,ai4dev-reviewers,padenot 2026-04-02 03:29:26 +00:00
.codex
.forgejo/workflows ci(build): add registry completeness gate to pre-build validation 2026-05-22 14:57:39 +02:00
.github/workflows Bug 2015646 - workflows: don't silence team check DOT_GITHUB_OVERRIDE r=suhaib DONTBUILD 2026-03-19 06:23:12 +00:00
.vscode
.zed
accessible Bug 2027288 - Invalidate table cache on row addition/move/remove. a=dmeehan 2026-05-02 14:48:23 +00:00
browser Merge upstream Firefox into FlawlessFox (2026-05-21) 2026-05-21 11:50:59 +02:00
build No Bug - Update configs after merge day operations a=release 2026-05-01 15:59:29 +00:00
caps Bug 2031231 - Remove dead NS_SecurityHashURI function. r=necko-reviewers,valentin 2026-04-13 08:47:41 +00:00
chrome Bug 2023519 - Make our codebase modernize-use-equals-default + modernize-use-equals-delete -safe wrt. clang-tidy r=sylvestre,necko-reviewers,media-playback-reviewers,profiler-reviewers,dom-storage-reviewers,layout-reviewers,dom-worker-reviewers,valentin,jesup,padenot,edenchuang,emilio 2026-03-22 08:35:47 +00:00
config Automatic version bump NO BUG a=release CLOSED TREE DONTBUILD 2026-05-19 12:30:34 +00:00
devtools Bug 2035205 - [devtools] Fix browser_net_frame to properly assert request stackframes a=dmeehan DONTBUILD 2026-05-07 12:39:24 +00:00
docs Bug 2033016 - Add docs for new Merino Rust client. r=bdk 2026-04-17 19:39:07 +00:00
docshell Bug 2011921 - Abort BFCache if browsing context has been replaced. r=dom-core,smaug a=dsmith 2026-05-05 16:24:46 +00:00
dom Bug 2040979 - just use a retry on Windows if serial port is still in use a=dmeehan 2026-05-20 21:18:02 +00:00
editor Bug 2035681 - Tweak how we layout the editor root with placeholder enabled. a=dmeehan 2026-05-01 16:09:12 +00:00
extensions Bug 2021626 - Forward browser-scoped permissions to new content processes on navigation. r=timhuang 2026-04-13 11:48:58 +00:00
flawlessfox fix(validate-registry): accept missing profile keys when status is reviewed 2026-06-14 08:13:29 +02:00
gfx Bug 2037698 - Fix RescalingFactorForColorDepth() a=dmeehan 2026-05-12 13:04:18 +00:00
gradle Bug 2033458 - rollback Jetpack Media3 support libraries to 1.9.3 a=dmeehan 2026-05-02 14:51:33 +00:00
hal Bug 2010930 part 2 - WebSerial core code (minus IPC and platform-specific code) r=cmartin,saschanaz,webidl,smaug 2026-04-10 03:53:51 +00:00
image Bug 2028758 - Avoid sending cookies for LOAD_DOCUMENT_NEEDS_COOKIE flags inherited to subresources, a=dmeehan 2026-05-06 18:01:20 +00:00
intl Bug 2034823: Update to tzdata 2026b. a=dmeehan 2026-05-05 14:52:18 +00:00
ipc Bug 2038803 - Partially revert 23500da25e25fa2b398afea0b726f5f6122e3094. a=dmeehan 2026-05-13 16:16:44 +00:00
js Bug 2038575 - Inline Array addProperty hook in CallAddPropertyHook too. a=diannaS DONTBUILD 2026-05-11 19:21:09 +00:00
layout Bug 2030165 - Allow HDR video on Windows only on AMD/NVIDIA initially a=dmeehan 2026-05-06 15:48:49 +00:00
media Bug 2029070 - Allocate memory with _ogg_malloc a=dmeehan 2026-05-08 20:17:04 +00:00
memory Bug 2037545 - Defer base_chunk_dealloc out of BaseAlloc::free's locked region. a=dmeehan 2026-05-09 16:42:55 +00:00
mfbt Bug 1976184 - pt 20. Add internal validation to BaseAlloc r=sergesanspaille 2026-04-10 08:28:39 +00:00
mobile Automatic version bump NO BUG a=release CLOSED TREE DONTBUILD 2026-05-19 12:30:34 +00:00
modules Bug 2039126 - Disable HDR video on Windows for Firefox 151 r=jrmuizel a=dmeehan 2026-05-13 01:42:55 +00:00
mozglue Bug 2031162 - Fix mmap error check in install_sig_alt_stack (use MAP_FAILED) r=glandium 2026-04-14 23:47:59 +00:00
netwerk Bug 2038803 - Partially revert 23500da25e25fa2b398afea0b726f5f6122e3094. a=dmeehan 2026-05-13 16:16:44 +00:00
nsprpub Bug 2023572 - NSPR 4.39 RTM, no code change, only version number. r=jcristau UPGRADE_NSPR_RELEASE a=dmeehan DONTBUILD 2026-05-06 22:55:38 +00:00
other-licenses Bug 2023419 - Remove Emacs/Vim modelines from other-licenses/ r=emilio 2026-03-18 14:34:41 +00:00
parser Bug 2029813 - Add evenness checks for attribute counts. r=hsivonen,shravanrn 2026-04-14 18:14:57 +00:00
python Bug 2032640 - Added ineligible user send tab flow for avatar and hamburger menus a=dmeehan 2026-05-02 14:46:46 +00:00
remote Bug 2030964 - [webdriver-bidi] restore previous Error "text" content in "log.entryAdded" event a=dmeehan 2026-04-28 19:52:47 +00:00
security No Bug, mozilla-beta repo-update remote-settings mobile-experiments ct-logs - a=dmeehan 2026-05-12 20:15:42 +00:00
services No Bug, mozilla-release repo-update remote-settings mobile-experiments - a=RyanVM 2026-05-18 14:52:20 +00:00
servo Bug 2031956 - Fix serialization of QueryStyleRange for container queries r=firefox-style-system-reviewers,nchevobbe,devtools-reviewers,emilio a=dmeehan 2026-05-06 01:56:42 +00:00
startupcache Bug 2023878 - Part 2: Replace MOZ_BIG_ENDIAN uses with std::endian::big. r=sergesanspaille,media-playback-reviewers,profiler-reviewers,canaltinova,padenot,necko-reviewers,dom-storage-reviewers,jesup 2026-03-26 22:55:09 +00:00
storage Bug 2028005. a=dmeehan 2026-04-28 16:34:18 +00:00
supply-chain Bug 1981270: Cherry-pick upstream fix wgpu#9363. r=webgpu-reviewers,aleiserson a=diannaS 2026-05-04 19:15:49 +00:00
taskcluster Bug 2037552 - Remove all remaining tests running on android p5 devices. r=taskgraph-reviewers,ahal a=dmeehan DONTBUILD 2026-05-20 17:16:59 +00:00
testing Bug 2037803 - Clone NS_MAYBE_MASKED flag when cloning text nodes. a=diannaS 2026-05-10 20:38:11 +00:00
third_party Bug 2034935 - Undelete deprecation of local_ssrc for recv streams. a=dmeehan 2026-05-06 15:50:32 +00:00
toolkit Bug 2039028 - Introduce upgradeNotAvailable pref to gate upgrade buttons and messaging - a=dmeehan 2026-05-13 16:12:00 +00:00
tools Revert "Bug 2024146 - Persist the SSL session token cache across restarts r=valentin,necko-reviewers,keeler,emz" from beta due to regressions 2026-05-05 16:52:28 +00:00
uriloader Revert "Bug 2022763 - Clean up existing usages of MockFilePicker.init(). r=dom-core,mtigley,extension-reviewers,credential-management-reviewers,devtools-reviewers,omc-reviewers,migration-reviewers,profiles-reviewers,layout-reviewers,emz,fchasen,nchevobbe,mconley,smaug,mossop,robwu,hanna_a,jwatt" for causing multiple failures. 2026-04-17 10:52:18 +00:00
widget Bug 2020990 - Fix context menu notification action for Windows a=dmeehan 2026-05-09 14:07:57 +00:00
xpcom Bug 2040979 - just use a retry on Windows if serial port is still in use a=dmeehan 2026-05-20 21:18:02 +00:00
xpfe/appshell Bug 2023519 - Make our codebase modernize-use-equals-default + modernize-use-equals-delete -safe wrt. clang-tidy r=sylvestre,necko-reviewers,media-playback-reviewers,profiler-reviewers,dom-storage-reviewers,layout-reviewers,dom-worker-reviewers,valentin,jesup,padenot,edenchuang,emilio 2026-03-22 08:35:47 +00:00
.arcconfig No Bug - Update configs after merge day operations a=release 2026-05-13 18:32:52 +00:00
.babel-eslint.rc.js
.clang-format
.clang-format-ignore
.cron.yml Bug 2034531 - run full set mozilla-beta tasks every 3 hours. a=dmeehan DONTBUILD 2026-04-27 16:34:59 +00:00
.editorconfig Bug 2026261 - Add more makefiles to .editorconfig r=sylvestre DONTBUILD 2026-04-15 08:34:55 +00:00
.git-blame-ignore-revs
.gitattributes
.gitignore Merge upstream Firefox into FlawlessFox (2026-05-21) 2026-05-21 11:50:59 +02:00
.hg-annotate-ignore-revs
.hgignore Bug 2032006 - Add ccache.conf to .gitignore. r=sylvestre 2026-04-15 11:48:18 +00:00
.hgtags
.lando.ini Bug 2014036 - add instance_id attribute to lando.ini sections r=ahal,sparky 2026-03-27 05:33:39 +00:00
.lldbinit
.mailmap
.mcp.json
.prettierignore Bug 2029948 - Part 1: Adds a new Samples Acorn Components application r=android-reviewers,frontend-codestyle-reviewers,jonalmeida 2026-04-10 06:33:26 +00:00
.prettierignore-css Bug 1606785 - Enable Prettier for CSS files r=desktop-theme-reviewers,Standard8,frontend-codestyle-reviewers,emilio 2025-05-28 02:51:14 +00:00
.prettierignore-non-css
.prettierrc.js
.rstcheck.cfg
.stylelintignore
.stylelintrc.js
.taskcluster.yml Bug 2027836 - [ci] Add a pull request parameter for Github graphs, r=taskgraph-reviewers,releng-reviewers,bhearsum 2026-03-31 16:53:41 +00:00
.trackerignore
.yamllint
.ycm_extra_conf.py
AGENTS.md Bug 2031298 - Temporarily use artifacts/ and redirect command outputs in AGENTS.md until 2028809 is fixed. r=ai4dev-reviewers,marco 2026-04-13 15:09:55 +00:00
AUTHORS
build.gradle Bug 2007013 - Consolidate ktlint configuration into ProjectPlugin r=nalexander,android-reviewers,geckoview-reviewers 2026-04-16 17:19:34 +00:00
Cargo.lock Revert "Bug 2024146 - Persist the SSL session token cache across restarts r=valentin,necko-reviewers,keeler,emz" from beta due to regressions 2026-05-05 16:52:28 +00:00
Cargo.toml Bug 2033279 - Make --enable-rust-simd work with Rust 1.95. a=dmeehan 2026-04-23 12:17:24 +00:00
CLAUDE.md
client.mk Bug 2023419 - Remove Emacs/Vim modelines from client.mk/ r=emilio 2026-03-17 09:23:35 +00:00
client.py
CLOBBER flawlessfox: bump CLOBBER after upstream merge 2026-05-21 11:51:15 +02:00
CODE_OF_CONDUCT.md
configure
configure.py Bug 2023319 - Error on Windows when topsrcdir or topobjdir paths are too long r=firefox-build-system-reviewers,nalexander 2026-03-24 09:42:30 +00:00
eslint-file-globals.config.mjs Bug 1892551 - Part 12: Remove SHIP checks from GeckoView. r=geckoview-reviewers,m_kato,frontend-codestyle-reviewers,geckoview-api-reviewers,nika 2026-03-18 17:26:39 +00:00
eslint-ignores.config.mjs Bug 2029976 - Remove the need to preprocess Enterprise's schema.sys.mjs by using import attributes. r=mkaply,frontend-codestyle-reviewers,mossop 2026-04-08 10:43:22 +00:00
eslint-rollouts.config.mjs Bug 2028423 - Move browser_switchTab* tests into browser-switchTab/ subdirectory. r=urlbar-reviewers,mak 2026-04-17 11:20:42 +00:00
eslint-subdirs.config.mjs
eslint-test-paths.config.mjs
eslint.config.mjs
GNUmakefile
gradle.properties
gradlew Bug 2024705 - Update Gradle to version 9.4.1. r=android-reviewers,jonalmeida 2026-03-20 16:31:21 +00:00
gradlew.bat
LICENSE
mach
mach.cmd
mach.ps1
Makefile.in Bug 2026460 - enable symbols file generation if full symbols are requested r=firefox-build-system-reviewers,sergesanspaille,glandium 2026-04-01 06:48:52 +00:00
mots.yaml Bug 2031315 - Move :relud to Nimbus Desktop peers emeritus r=nimbus-reviewers,zeid,emcminn 2026-04-14 01:23:24 +00:00
moz.build Bug 2023419 - Remove Emacs/Vim modelines from moz.build/ r=emilio 2026-03-17 12:06:19 +00:00
moz.configure Revert "Bug 2017549 - Enable libz-rs-sys by default on release. r=firefox-build-system-reviewers,ahochheiden" from release due to crashes in Bug 1950764 2026-05-20 17:24:26 +00:00
mozilla-config.h.in
package-lock.json
package.json
pyproject.toml Bug 2015713 - doc: don't dump all the python variable when building the doc r=firefox-build-system-reviewers,ahochheiden 2026-03-09 18:05:32 +00:00
README.md fix(ci): add --locked to cbindgen cargo install to pin dependency tree 2026-05-05 02:03:40 +02:00
SECURITY.md
settings.gradle Bug 1896203 - p3: un-vendor ExoPlayer2 source code. r=geckoview-reviewers,releng-reviewers,jcristau,nalexander 2026-04-15 20:10:16 +00:00
srcdir-resolver.js
stylelint-rollouts.config.js Bug 2030210 - Nova weather widget search UI a=dmeehan 2026-04-24 17:41:22 +00:00
substitute-local-geckoview.gradle
test.mozbuild

FlawlessFox

FlawlessFox is a privacy-hardened Firefox fork built entirely from source. Telemetry, crash reporting, and DRM are removed at compile time — not just toggled off in preferences. Every upstream Firefox release passes through an automated dual-gate audit system that blocks the build until all configuration changes are reviewed. No upstream change can re-enable data collection without explicit approval.

Status

Pre-release. The audit system, CI/CD pipeline, and options registry (393 configure options, all reviewed) are in place. First successful build is in progress.

What's Different

FlawlessFox is not a preference overlay or a user.js distribution. Everything listed below is compiled out — the code paths don't exist in the binary:

Removed at compile time Enabled at compile time
Telemetry (MOZ_TELEMETRY_REPORTING) Sandboxing
Crash reporter Hardened SSL/TLS
DRM / EME Proxy bypass protection
Normandy (remote experiments) Disk remnant avoidance
Default browser agent
Updater
Sponsored content

The dual-gate audit system is what makes this sustainable across upstream releases — see Audit System below.

Profiles

Two build profiles with identical security posture:

Profile Purpose Branding
FlawlessFox Primary release (desktop + Android) browser/branding/flawlessfox
BaseSecure Hardened base for security-focused distributions browser/branding/basesecure

BaseSecure is designed to meet the Kicksecure Default Browser Criteria — see the compliance matrix.

Platforms

Platform Status
Linux x86_64 Primary target
Android ARM64 Secondary target

Audit System

FlawlessFox maintains an options registry — a reviewed catalog of every moz.configure build option — and a dual-gate audit:

Gate Scope Catches
Gate 1 Structural — configure options New flags, removed options, renamed arguments
Gate 2 Behavioral — resolved config Flipped defaults, changed conditionals, implicit telemetry re-enables

Gate 1 runs on every upstream sync (~30 s). Gate 2 runs after ./mach configure but before compilation, so a block costs minutes — not hours.

Together they guarantee: no upstream change alters the privacy posture without review.

For the full development workflow, CI/CD pipeline, and multi-layer audit roadmap, see WORKFLOW.md.

Building Locally

git clone https://forgejo.franklyflawless.org/FranklyFlawless/FlawlessFox.git
cd FlawlessFox && git checkout flawlessfox
cp flawlessfox/profiles/flawlessfox/mozconfig .mozconfig
./mach bootstrap --application-choice browser
./mach configure
./mach build
./mach package

Requires Debian Trixie (or compatible), 8 GB+ RAM, 30 GB+ disk. See the Firefox build prerequisites.

Repository Structure

All fork-specific files live under flawlessfox/ to minimize upstream merge conflicts:

flawlessfox/
├── config/       Options registry, release calendar, config snapshots
├── profiles/     Build profiles (mozconfigs, compliance criteria)
├── scripts/      CI/CD automation, analysis tools, upstream sync
├── patches/      Source transforms and mozconfig patches
├── exports/      Generated profile summaries
└── reports/      Merge and audit reports

Browser branding lives at browser/branding/flawlessfox/ and browser/branding/basesecure/ (follows upstream convention).

Documentation

Document Contents
WORKFLOW.md Development workflow, CI/CD pipeline, audit architecture
CRITERIA.md BaseSecure — Kicksecure criteria compliance
REGISTRY-GUIDE.md Options registry format, schema, and audit log
TRUST-MODEL.md Trust boundary maps in the build pipeline

License

Built on Firefox by Mozilla, licensed under the Mozilla Public License 2.0. Fork-specific files under flawlessfox/ and .forgejo/workflows/ are also MPL-2.0.