Firefox Source Tree Documentation
Overview
Getting Started
Working On Firefox
- Working on Firefox
- Firefox Contributors’ Quick Reference
 - Working with stack of patches Quick Reference
 - Pocket Guide: Shipping Firefox
 - Editor / IDE integration
 - Getting reviews
 - Levelling up
 - How to submit a patch
 - Data Collection
 - Data Review
 - Introduction to Jujutsu
 - Searchfox Query Language Documentation
 - Code Review FAQ
 - Reviewer Checklist
 - Capturing a minidump
 - Debugging A Hang On macOS
 - Debugging A Minidump
 - Debugging Firefox with GDB
 - Debugging Firefox with LLDB
 - Debugging Firefox with Pernosco
 - Debugging Firefox with rr
 - Debugging Firefox with Valgrind
 - Debugging On macOS
 - Debugging On Windows
 - Debugging WebRTC Calls
 - Symbolicating TreeHerder stacks locally
 - How to get a process dump with Windows Task Manager
 - How to get a stacktrace for a bug report
 - How to get a stacktrace with WinDbg
 - Understanding Crash Reports
 - Configure Development Certificate
 - Signing Local macOS Builds
 - Firefox Source Code Directory Structure
 - Understanding Artifact Builds
 - Firefox for Mobile Devices
 - Supported Build Hosts and Targets
 - Engineering Show and Tell
 - Filing good bugs
 
 - Bug Handling
 
Firefox User Guide
Source Code Documentation
- Governance
 - Firefox Front-end
- Address Bar
 - Browser Usage Telemetry
 - Frontend Code Review Best Practices
 - Command Line Parameters
 - Browser Startup
 - Category manager indirection (callModulesFromCategory)
 - CustomizableUI Component
 - Enterprise Policies
 - Web Apps in Firefox
 - Form Autofill
 - Firefox Home (New Tab)
 - Firefox Welcome Experience (about:welcome)
 - Installer
 - Installation Attribution
 - Default Browser Agent
 - Migration
 - PageDataService
 - Places
 - Messaging System
 - Search
 - IP Protection
 - tabbrowser
 - Touch Bar
 - UITour
 - Firefox Branding
 - Storybook for Firefox
 - Reusable UI widgets
 - Other types of UI Widgets
 - Lit
 - XUL and HTML
 - Figma Code Connect
 - Design tokens
 - JSON design tokens
 - Backup Component
 - Sidebar
 - moz-cached-ohttp Protocol
 
 - DOM
 - Editor
 - Style system (CSS) & Layout
 - Graphics
 - Processes, Threads and IPC
 - Firefox DevTools Contributor Docs
 - Toolkit
- Profiles Service
 - JavaScript Logging
 - Add-on Manager
 - Autocomplete
 - Background Task Mode
 - Crash Manager
 - Crash Reporter
 - Internal URLs
 - Search Service
 - Shield Recipe Client
 - Nimbus
 - Messaging System Schemas
 - Picture-in-Picture
 - Prompts
 - Subprocess Module
 - Telemetry
 - Firefox on Glean (FOG)
 - Toolkit Modules
 - Toolkit Widgets
 - Fingerprinting Resistance
 - URL Classifier
 - WebExtensions API Development
 - Managing the built-in en-US dictionary
 - Application Update
 - Anti-Tracking
 - Translations
 - Session Store
 
 - SpiderMonkey
 - JS Loader
 - GeckoView
 - Fenix
- Acronym Dictionary
 - Addressing a performance regression
 - Architecture Decisions
 - Architecture Overview
 - Crash Monitoring
 - Creating a release branch
 - Data practises
 - Development Test Plan
 - Fennec Legacy: Migration
 - Firebase Cloud Messaging for WebPush
 - Firefox for Android Team Processes
 - Home
 - Implementing Telemetry
 - Implementing a Nimbus Experiment
 - List of Fenix Threads
 - Logging Crash Information
 - Metric Feature Tags
 - Debug settings menu instructions
 - Telemetry - Implementation, Reviews, Renewals
 - Creating Glean Annotations
 - Data review
 - Renewing existing telemetry
 - Test Telemetry Pings
 - Working with Strings
 - Adjust
 - Certificates
 - Crash Reporting
 - Experiments
 - Manual Testing
 - Metrics Definitions
 - Release Checklist
 - Startup Performance
 - Substituting Local GeckoView
 - Sync Integration Tests
 - Telemetry
 - UI Tests
 
 - Focus for Android
- Architecture Decisions
 - Battery Debugging
 - Content blocking
 - Crash Reporting with Sentry
 - Development Custom GeckoView
 - Feature & Issue workflow
 - Running GeckoView in a debug environment
 - Home
 - Homescreen Tips
 - Multisession architecture
 - Recommended pre-push hook
 - Release Process
 - Release tracks
 - Removing strings
 - Sprint Process
 - Telemetry
 - UI Test
 
 - WebIDL
 - libpref
 - Networking
 - Remote Protocols
 - Services
 - Permissions
 - File Handling
 - Firefox on macOS
 - Firefox on Windows
 - Firefox AI Runtime
 - Accessibility
 - Media Playback
 - Code quality
 - Writing Rust Code
 - Rust Components
 - Gecko Profiler
 - Performance
 - Database bindings (SQLite, KV, …)
 - XPCOM
 - NSPR
 - Network Security Services (NSS)
 - Web Security Checks in Gecko
 
The Firefox Build System
Testing & Test Infrastructure
- Automated Testing
 - Understanding Treeherder Results
 - Sheriffed intermittent failures
 - Turning on Firefox tests for a new configuration
 - Avoiding intermittent tests
 - Debugging Intermittent Test Failures
 - Testing Policy
 - Configuration Changes
 - Browser chrome mochitests
 - Chrome Tests
 - Marionette
 - geckodriver
 - Test Verification
 - WebRender Tests
 - Mochitest
 - XPCShell tests
 - TPS
 - web-platform-tests
 - GTest
 - Fuzzing
 - Sanitizer
 - Performance Testing
 - Code coverage
 - Testing & Debugging Rust Code
 
Releases & Updates
Localization & Internationalization
Firefox and Python
Metrics Collected in Firefox