- JavaScript 32.2%
- C++ 25.1%
- HTML 21.2%
- C 10.4%
- Kotlin 2.9%
- Other 7.9%
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. |
||
|---|---|---|
| .cargo | ||
| .claude | ||
| .codex | ||
| .forgejo/workflows | ||
| .github/workflows | ||
| .vscode | ||
| .zed | ||
| accessible | ||
| browser | ||
| build | ||
| caps | ||
| chrome | ||
| config | ||
| devtools | ||
| docs | ||
| docshell | ||
| dom | ||
| editor | ||
| extensions | ||
| flawlessfox | ||
| gfx | ||
| gradle | ||
| hal | ||
| image | ||
| intl | ||
| ipc | ||
| js | ||
| layout | ||
| media | ||
| memory | ||
| mfbt | ||
| mobile | ||
| modules | ||
| mozglue | ||
| netwerk | ||
| nsprpub | ||
| other-licenses | ||
| parser | ||
| python | ||
| remote | ||
| security | ||
| services | ||
| servo | ||
| startupcache | ||
| storage | ||
| supply-chain | ||
| taskcluster | ||
| testing | ||
| third_party | ||
| toolkit | ||
| tools | ||
| uriloader | ||
| widget | ||
| xpcom | ||
| xpfe/appshell | ||
| .arcconfig | ||
| .babel-eslint.rc.js | ||
| .clang-format | ||
| .clang-format-ignore | ||
| .cron.yml | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .hg-annotate-ignore-revs | ||
| .hgignore | ||
| .hgtags | ||
| .lando.ini | ||
| .lldbinit | ||
| .mailmap | ||
| .mcp.json | ||
| .prettierignore | ||
| .prettierignore-css | ||
| .prettierignore-non-css | ||
| .prettierrc.js | ||
| .rstcheck.cfg | ||
| .stylelintignore | ||
| .stylelintrc.js | ||
| .taskcluster.yml | ||
| .trackerignore | ||
| .yamllint | ||
| .ycm_extra_conf.py | ||
| AGENTS.md | ||
| AUTHORS | ||
| build.gradle | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| client.mk | ||
| client.py | ||
| CLOBBER | ||
| CODE_OF_CONDUCT.md | ||
| configure | ||
| configure.py | ||
| eslint-file-globals.config.mjs | ||
| eslint-ignores.config.mjs | ||
| eslint-rollouts.config.mjs | ||
| eslint-subdirs.config.mjs | ||
| eslint-test-paths.config.mjs | ||
| eslint.config.mjs | ||
| GNUmakefile | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| mach | ||
| mach.cmd | ||
| mach.ps1 | ||
| Makefile.in | ||
| mots.yaml | ||
| moz.build | ||
| moz.configure | ||
| mozilla-config.h.in | ||
| package-lock.json | ||
| package.json | ||
| pyproject.toml | ||
| README.md | ||
| SECURITY.md | ||
| settings.gradle | ||
| srcdir-resolver.js | ||
| stylelint-rollouts.config.js | ||
| 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.