IP Protection
This document describes the implementation of the IP Protection feature in Firefox.
The code is split across two directories:
toolkit/components/ipprotection— platform-independent core: the state machine, the proxy/network stack, and all core helpers. This layer has no dependency on browser UI or chrome.browser/components/ipprotection— browser-specific UI layer: the panel, toolbar button, alert and infobar managers, and onboarding helpers.
Each layer is composed of three major areas:
A finite-state machine managed by the main component:
IPProtectionService(toolkit).The UI, controlled by
IPProtectionandIPProtectionPanel(browser).The proxy/network controller:
IPPProxyManagerand helper classes (toolkit).
The two layers are wired together by IPProtectionActivator (toolkit), which
assembles the full helper list and initialises the service.
See the following pages for details on components, preferences, and the state machine.