Firefox Source Docs Logo

Overview

  • A Glossary of Common Terms
  • A Quick Guide to Mozilla Applications

Getting Started

  • Getting Set Up To Work On The Firefox Codebase

Working On Firefox

  • Working on Firefox
  • Bug Handling
  • Firefox Crash Reporting

Firefox User Guide

  • 3D view
  • about:debugging
  • Accessibility Inspector
  • Application
  • Browser Console
  • Browser Toolbox
  • Custom Formatters
  • The Firefox JavaScript Debugger
  • Debugger-API
  • Deprecated tools
  • DevTools API
  • DevToolsColors
  • DOM Property Viewer
  • Eyedropper
  • Index
  • JavaScript Tracer
  • JSON viewer
  • All keyboard shortcuts
  • Local Mode
  • Measure a portion of the page
  • Memory
  • Migrating from Firebug
  • Network Monitor
  • Page Inspector
  • Performance Tool
  • Responsive Design Mode
  • Rulers
  • Settings
  • Shader Editor
  • Storage Inspector
  • Style Editor
  • Taking screenshots
  • Tips
  • Toolbox
  • Validators
  • View Source
  • Web Audio Editor
  • Web Console
  • Working with iframes
  • Firefox DevTools User Docs

Source Code Documentation

  • Governance
  • Firefox Front-end
  • DOM
  • Editor
  • Style system (CSS) & Layout
  • Graphics
  • Processes, Threads and IPC
  • Getting started
  • Architecture overview
  • Contributing
  • Bugs and issues
  • Firefox DevTools Contributor Docs
  • Toolkit
  • SpiderMonkey
  • JS Loader
  • GeckoView
  • Fenix
  • Focus for Android
  • WebIDL
  • libpref
  • Networking
  • Remote Protocols
  • Services
  • Permissions
  • File Handling
  • Firefox on macOS
  • Firefox on Windows
  • Firefox AI Runtime
  • Page Extractor
  • 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
  • RLBox sandboxing

The Firefox Build System

  • Mach
  • Pushing to Try
  • Build System
  • Firefox CI and Taskgraph
  • Managing Documentation
  • Vendoring Third Party Components

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
  • geckodriver
  • Test Verification
  • WebRender Tests
  • Mochitest
  • XPCShell tests
  • TPS
  • web-platform-tests
  • GTest
  • Fuzzing
  • Sanitizer
  • Performance Testing
  • Code coverage
  • Testing & Debugging Rust Code

AI Agent Tools

  • AI Agent Tools for Firefox Development
    • Firefox DevTools MCP for AI Agent Testing
    • Code Review Context (review-context.toml)
    • In-tree Agent Skills
      • Accessibility Review
      • Creating a new Android module
      • Android
      • Filing a bug
      • Firefox documentation
      • Filing good first bugs
      • Finding a reviewer
      • Skill commit message / committing
      • Firefox desktop front-end
      • Fluent migrations
      • Implementing web standards in Gecko
      • SpiderMonkey Performance Investigation
      • Reviewing SpiderMonkey code
      • media-patch-review — quick fan-out dom/media review
      • Mozlint
      • Nimbus-controllable prefs
      • Triaging a Perfherder regression bug
      • Running Firefox performance tests
      • Capturing a Firefox profile
      • Analyzing a Firefox profile
      • Spec Trace
      • SpecMap: Spec-Code-WPT Mapping
      • Reorganizing a stack for reviewability
      • Splitting a commit into reviewable pieces
      • stmo-cli
      • webspec-index
      • In-tree agent skills
      • Compiled Patch Accessibility Review Runsheet
      • Advanced Profiling Tools
      • Closing out a perf regression bug
      • Confirming the regression
      • Iterating to a fix
      • Triaging without the CLIs: the Treeherder REST API
      • Firefox macOS startup font initialization lock contention
      • profiler-cli walkthrough: Firefox macOS startup font initialization lock contention
      • Example analysis of a profile of Firefox with an extension causing 100% CPU in the WebExtensions process
      • profiler-cli walkthrough: 1Password infinite recursion in WebExtensions process
      • macOS Firefox hang getting worse over time: extension blob URL accumulation and IPC I/O contention
      • profiler-cli walkthrough: extension blob URL accumulation causing macOS hangs
      • Example analysis of a profile of Firefox networking frozen by an NSS deadlock
      • profiler-cli walkthrough: NSS deadlock from DoH heuristics freezing all networking
      • Example analysis of a profile of Firefox failing network requests with PR_BAD_DESCRIPTOR_ERROR
      • profiler-cli walkthrough: PR_BAD_DESCRIPTOR_ERROR from file descriptor exhaustion
      • Example analysis of a resource usage profile for a Firefox Android fat AAR build
      • profiler-cli walkthrough: resource usage Linux fat AAR build
      • Slow history sync in Fenix: fetch_outgoing does a full table scan
      • profiler-cli walkthrough: slow history sync fetch_outgoing
      • Example analysis of a profile taken with simpleperf on a non-rooted Android device, of Firefox startup
      • profiler-cli walkthrough: simpleperf non-rooted Firefox startup
      • Example analysis of a profile showing broken stack walking in AVX2 JPEG assembly on Windows
      • profiler-cli walkthrough: broken stack walking in AVX2 JPEG assembly on Windows
      • A mochitest timeout that was really a 14-millisecond cross-process race
      • profiler-cli walkthrough: a mochitest timeout caused by a cross-process timer race
      • Dropping a superseded mid-stack commit
      • Rebuilding the intermediates of a fold-resplit
      • Reorganizing a stack with git
      • Reorganizing a stack with jj
      • Splitting a commit with git
      • Splitting a commit with jj

Releases & Updates

  • Mozilla Update Infrastructure
  • Watershed Updates
  • Desupport Updates
  • Update Verify

Localization & Internationalization

  • Internationalization
  • Localization

Firefox and Python

  • mozbase
  • Using third-party Python packages

Metrics Collected in Firefox

  • Firefox metrics
Firefox Source Docs
  • AI Agent Tools for Firefox Development
  • In-tree Agent Skills
  • Report an issue / View page source

In-tree Agent Skills

These skills live in .agents/skills/ and are available to AI agents working in the tree. See the skills README for what belongs there.

  • Accessibility Review
  • Creating a new Android module
  • Android
  • Filing a bug
  • Firefox documentation
  • Filing good first bugs
  • Finding a reviewer
  • Skill commit message / committing
  • Firefox desktop front-end
  • Fluent migrations
  • Implementing web standards in Gecko
  • SpiderMonkey Performance Investigation
  • Reviewing SpiderMonkey code
  • media-patch-review — quick fan-out dom/media review
  • Mozlint
  • Nimbus-controllable prefs
  • Triaging a Perfherder regression bug
  • Running Firefox performance tests
  • Capturing a Firefox profile
  • Analyzing a Firefox profile
  • Spec Trace
  • SpecMap: Spec-Code-WPT Mapping
  • Reorganizing a stack for reviewability
  • Splitting a commit into reviewable pieces
  • stmo-cli
  • webspec-index
Previous Next

Built with Sphinx using a theme provided by Read the Docs.