
Now the state is separate (“partitioned”) instead of shared across different first-party domains. This takes away the tracker’s ability to use cookies and other previously shared state to identify individuals across sites. Instead of looking up the cookie jar for Storage partitioning will use and respectively.Ĭookie-based tracking prevented by State Partitioning, by double-keying both instances of Thus, there will be two distinct cookie jars for under these two top-level websites. Following the above example, cookies for will be keyed differently under foo.com and bar.com. We use the scheme and registrable domain (also known as eTLD+1) of the top-level site as the additional key. In other words, every first party and its embedded third-party contexts will be put into a self-contained bucket.įirefox is using double-keying to implement State Partitioning, which will add an additional key to the origin of the website that is accessing these states. will be partitioned (isolated) by the top-level website you’re visiting. With State Partitioning, shared state such as cookies, localStorage, etc. In comparison, State Partitioning will also prevent shared third-party state, but it does so without blocking cookie access entirely. So, can connect your activities on both sites by using the cookie as an identifier.ĮTP will prevent this by simply blocking access to shared state for embedded instances of Without the ability to set cookies, the tracker can not easily re-identify you.Ĭookie-based tracking without protections, both instances of share the same cookie. This shared state allows trackers embedded in other websites to track you across the Web, most commonly by setting cookies.įor example, a cookie of will be shared on foo.com and bar.com if they both embed as a third-party. While these APIs were not designed for tracking, their state is shared with a website regardless of whether it is loaded as a first-party or embedded as a third-party, for example in an iframe or as a simple image (“ tracking pixel”). To explain State Partitioning, we should first take a look at how stateful Web APIs enable tracking on the Web. State Partitioning – How it works in Firefox State Partitioning is complemented by our efforts to eliminate the usage of non-traditional storage mechanisms (“supercookies”) as a tracking vector, for example through the partitioning of network state, which was recently rolled out in Firefox 85. To address the limitations of ETP and provide comprehensive protection against trackers, we introduce a technique called State Partitioning, which will prevent cookie-based tracking universally, without the need for a list. Additionally, identifying trackers is a time-consuming task and commonly adds a delay on a scale of months before a new tracking domain is added to the list. Ensuring completeness is difficult, and trackers can try to circumvent the list by registering new domain names. ETP protects users from the 3000 most common and pervasive identified trackers, but its protection relies on the fact that the list is complete and always up-to-date. This form of cookie blocking is an effective approach to stop tracking, but it has its limitations. To fight against web tracking, Firefox currently relies on Enhanced Tracking Protection (ETP) which blocks cookies and other shared state from known trackers, based on the Disconnect list. Communication channel: Broadcast channel.Workers: SharedWorkers and ServiceWorkers.Storage: Cookies, Local Storage, Session Storage, Cache Storage, and IndexedDB.To fight abuse of these APIs Mozilla is introducing State Partitioning in Firefox 86. While these APIs allow developers to enrich a user’s web experience, they also enable nefarious web tracking which jeopardizes user privacy. We call these stateful APIs, because they are able to establish state that will persist through reloads, navigations and browser restarts. Most famous are cookies, which are commonly used to build login sessions and provide a customized user experience. Web sites utilize a variety of different APIs to store data in the browser.

This article shows how State Partitioning works inside of Firefox and explains what developers of third-party integrations can do to stay compatible with the latest changes. State Partitioning is the technical term for a new privacy feature in Firefox called Total Cookie Protection, which will be available in ETP Strict Mode in Firefox 86.
