# 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 `IPProtection` and `IPProtectionPanel` (browser). - The proxy/network controller: `IPPProxyManager` and 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. ```{toctree} Components Constants Preferences StateMachine BandwidthUsageDisplay ```