Thank you for helping keep FireFlag's flag database current and comprehensive!
FireFlag uses a GitHub Action that runs every Sunday to:
- Fetch Firefox source code from mozilla-central
- Compare Firefox prefs with our database
- Detect changes:
- New flags added by Mozilla
- Flags removed or deprecated
- Changed default values
- Create GitHub issues for review with new/removed flags listed
While detection is automated, human review is essential because:
- Safety classification requires judgment
- Effects documentation needs research
- Compatibility testing is needed
- False positives occur (internal flags, etc.)
Before adding a flag, gather this information:
- Flag key (e.g.,
privacy.resistFingerprinting) - Type (boolean, integer, string, float)
- Default value
- Minimum Gecko version where it was introduced
- Maximum Gecko version (if deprecated/removed)
- Official documentation (MDN, Bugzilla, Mozilla wiki)
- Safety level classification:
- Safe: No breaking changes, no major downsides
- Experimental: May have bugs, compatibility issues
- Dangerous: Can break browsing, security risks if misused
- Effects in three categories:
- Positive: Benefits of enabling/changing the flag
- Negative: Drawbacks, breaking changes, risks
- Interesting: Technical details, trivia, implementation notes
Edit extension/data/flags-database.json:
{
"key": "example.new.flag",
"type": "boolean",
"category": "privacy",
"safetyLevel": "safe",
"defaultValue": false,
"description": "Clear, concise one-line description",
"effects": {
"positive": [
"Benefit 1",
"Benefit 2"
],
"negative": [
"Downside 1",
"Downside 2"
],
"interesting": [
"Technical detail 1",
"Implementation note 2"
]
},
"permissions": ["privacy"],
"geckoMinVersion": "109.0",
"documentation": "https://link-to-official-docs"
}Safe:
- No significant breaking changes
- Well-tested by Mozilla
- Minimal negative effects
- Reversible without data loss
- Examples:
privacy.resistFingerprinting,browser.tabs.drawInTitlebar
Experimental:
- May have bugs or compatibility issues
- Not enabled by default for a reason
- Some websites may break
- Generally safe to test
- Examples:
network.http.http3.enable,gfx.webrender.all
Dangerous:
- Can break most/all web browsing
- Security implications if misconfigured
- Should only be changed by advanced users
- Examples:
browser.cache.disk.enable=false,devtools.debugger.remote-enabled=true
Before submitting:
- Test the flag in Firefox (about:config)
- Verify effects match your documentation
- Check compatibility across Firefox versions if possible
- Validate JSON schema:
npx ajv-cli validate -s extension/data/flags-schema.json -d extension/data/flags-database.json
- Fork the repository
- Create a branch:
git checkout -b add-flag-example-new-flag - Add your flag to the database
- Commit with clear message:
feat(db): add example.new.flag - Type: boolean - Category: privacy - Safety: safe - Gecko: 115.0+ - Effects: [brief summary] - Push and create PR with template:
## Flag Addition **Flag key:** `example.new.flag` **Category:** Privacy **Safety level:** Safe **Gecko version:** 115.0+ ### Research - [ ] Tested in Firefox - [ ] Consulted official documentation - [ ] Verified effects - [ ] Classified safety level ### Documentation - Bugzilla: [link] - MDN: [link] - Testing notes: [brief notes]
If you discover a flag has been removed from Firefox:
- Verify it's actually gone (check latest Nightly)
- Find the Gecko version where it was removed
- Update the database entry:
{ "key": "deprecated.old.flag", "geckoMaxVersion": "115.0", ... } - Submit PR with title:
fix(db): deprecate old.flag (removed in Gecko 115)
- privacy: Privacy, security, tracking protection
- performance: Speed, resource usage, caching
- experimental: New features, beta functionality
- developer: DevTools, debugging, development
- ui: User interface, visual changes
- network: Connectivity, protocols, DNS
- media: Audio, video, WebRTC, graphics
- accessibility: Screen readers, assistive tech
- Open an issue: https://github.com/hyperpolymath/fireflag/issues
- Check existing flags for examples
- Read the schema:
extension/data/flags-schema.json
Contributors are listed in:
- Git commit history
CONTRIBUTORS.md(alphabetically)- Release notes for database updates
Thank you for helping make Firefox safer and more accessible! 🦎🚩