From c18a27e75a0d5719431e205a2e12271fb871eb31 Mon Sep 17 00:00:00 2001 From: Paul Zuehlcke Date: Fri, 20 Jan 2023 16:26:38 +0000 Subject: [PATCH] Bug 1811349 - Add documentation for cookie purging, data sanitization and query stripping. r=anti-tracking-reviewers,bvandersloot DONTBUILD Differential Revision: https://phabricator.services.mozilla.com/D167301 --- .../antitracking/docs/cookie-purging/index.md | 217 +++++++++ .../docs/data-sanitization/index.md | 443 ++++++++++++++++++ .../docs/data-sanitization/media/image1.png | Bin 0 -> 17565 bytes .../docs/data-sanitization/media/image2.png | Bin 0 -> 52969 bytes .../docs/data-sanitization/media/image3.png | Bin 0 -> 38858 bytes .../docs/data-sanitization/media/image4.png | Bin 0 -> 25861 bytes .../docs/data-sanitization/media/image5.png | Bin 0 -> 123390 bytes .../docs/data-sanitization/media/image6.png | Bin 0 -> 12129 bytes .../docs/data-sanitization/media/image7.png | Bin 0 -> 13577 bytes .../docs/data-sanitization/media/image8.png | Bin 0 -> 59889 bytes .../components/antitracking/docs/index.rst | 12 + .../docs/query-stripping/index.md | 153 ++++++ .../docs/query-stripping/overview.png | Bin 0 -> 45036 bytes toolkit/components/antitracking/moz.build | 2 + toolkit/docs/index.rst | 1 + 15 files changed, 828 insertions(+) create mode 100644 toolkit/components/antitracking/docs/cookie-purging/index.md create mode 100644 toolkit/components/antitracking/docs/data-sanitization/index.md create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image1.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image2.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image3.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image4.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image5.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image6.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image7.png create mode 100644 toolkit/components/antitracking/docs/data-sanitization/media/image8.png create mode 100644 toolkit/components/antitracking/docs/index.rst create mode 100644 toolkit/components/antitracking/docs/query-stripping/index.md create mode 100644 toolkit/components/antitracking/docs/query-stripping/overview.png diff --git a/toolkit/components/antitracking/docs/cookie-purging/index.md b/toolkit/components/antitracking/docs/cookie-purging/index.md new file mode 100644 index 000000000000..2bf9919759d8 --- /dev/null +++ b/toolkit/components/antitracking/docs/cookie-purging/index.md @@ -0,0 +1,217 @@ +# Cookie Purging + +“Cookie Purging” describes a technique that will periodically clear +cookies and site data of known tracking domains without user interaction +to protect against [bounce +tracking](https://privacycg.github.io/nav-tracking-mitigations/#bounce-tracking). + +## Protection Background + +### What similar protections do other browsers have? + +**Safari** classifies sites as redirect trackers which directly or +shortly after navigation redirect the user to other sites. Sites which +receive user interaction are exempt from this. To detect bigger redirect +networks, sites may also inherit redirect tracker +[classification](https://privacycg.github.io/nav-tracking-mitigations/#mitigations-safari). +If a site is classified as a redirect tracker, any site pointing to it +will inherit this classification. Safari does not use tracker lists. + +When the source site is classified as a tracker, Safari will purge all +storage, excluding cookies. Sites which receive user interaction within +seven days of browser use are exempt. If the destination site's URL +includes query parameters or URL fragments, Safari caps the lifetime of +client-side set cookies of the destination site to 24 hours. + +**Brave** uses lists to classify redirect trackers. Recently, they have +rolled out a new protection, [Unlinkable Bouncing](https://brave.com/privacy-updates/16-unlinkable-bouncing/), +which limits first party storage lifetime. The underlying mechanism is +called “first-party ephemeral storage”. If a user visits a known +bounce-tracker which doesn’t have any pre-existing storage, the browser +will create a temporary first-party storage bucket for the destination +site. This temporary storage is cleared 30 seconds after the user closes +the last tab of the site. + +**Chrome** and **Edge** currently do not implement any navigational +tracking protections. + +### Is it standardized? + +At this time there are no standardized navigational tracking +protections. The PrivacyCG has a [work item for Navigation-based Tracking Mitigations](https://privacycg.github.io/nav-tracking-mitigations/). +Also see Apple’s proposal +[here](https://github.com/privacycg/proposals/issues/6). + +### How does it fit into our vision of “Zero Privacy Leaks?” + +Existing tracking protections mechanisms focus mostly on third-party +trackers. Redirect tracking can circumvent these mechanisms and utilize +first-party storage for tracking. Cookie purging contributes to the +“Zero Privacy Leaks” vision by mitigating this cross-site tracking +vector. + +## Firefox Status + +Metabug: [Bug 1594226 - \[Meta\] Purging Tracking Cookies](https://bugzilla.mozilla.org/show_bug.cgi?id=1594226) + +### What is the ship state of this protection in Firefox? + +Shipped to Release in standard ETP mode + +### Is there outstanding work? + +The mechanism of storing user interaction as a permission via +nsIPermissionManager has shown to be brittle and has led to users +getting logged out of sites in the past. The concept of a permission +doesn’t fully match that of a user interaction flag. Permissions may be +separated between normal browsing and PBM (Bug +[1692567](https://bugzilla.mozilla.org/show_bug.cgi?id=1692567)). +They may also get purged when clearing site data (Bug +[1675018](https://bugzilla.mozilla.org/show_bug.cgi?id=1675018)). + +A proposed solution to this is to create a dedicated data store for +keeping track of user interaction. This could also enable tracking user +interaction relative to browser usage time, rather than absolute time +([Bug 1637146](https://bugzilla.mozilla.org/show_bug.cgi?id=1637146)). + +Important outstanding bugs: +- [Bug 1637146 - Use use-time rather than absolute time when computing whether to purge cookies](https://bugzilla.mozilla.org/show_bug.cgi?id=1637146) + +### Existing Documentation + +- [https://developer.mozilla.org/en-US/docs/Web/Privacy/Redirect\_tracking\_protection](https://developer.mozilla.org/en-US/docs/Web/Privacy/Redirect_tracking_protection) + +- [PrivacyCG: Navigational-Tracking Mitigations](https://privacycg.github.io/nav-tracking-mitigations/) + + +## Technical Information + +### Feature Prefs + +Cookie purging can be enabled or disabled by flipping the +`privacy.purge_trackers.enabled` preference. Further, it will only run if +the `network.cookie.cookieBehavior` pref is set to `4` or `5` ([bug 1643045](https://bugzilla.mozilla.org/show_bug.cgi?id=1643045) adds +support for behaviors `1` and `3`). + +Different log levels can be set via the pref +`privacy.purge_trackers.logging.level`. + +The time until user interaction permissions expire can be set to a lower +amount of time using the `privacy.userInteraction.expiration` pref. Note +that you will have to set this pref before visiting the sites you want +to test on, it will not apply retroactively. + +### How does it work? + +Cookie purging periodically clears first-party storage of known +trackers, which the user has not interacted with recently. It is +implemented in the +[PurgeTrackerService](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/antitracking/PurgeTrackerService.jsm), +which implements the +[nsIPurgeTrackerService](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/antitracking/nsIPurgeTrackerService.idl) +IDL interface. + +#### What origins are cleared? + +An origin will be cleared if it fulfills the following conditions: + +1. It has stored cookies or accessed other site storage (e.g. + [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API), + [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), + or the [Cache API](https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage)) + within the last 72 hours. Since cookies are per-host, we will + clear both the http and https origin variants of a cookie host. + +2. The origin is [classified as a tracker](https://developer.mozilla.org/en-US/docs/Web/Privacy/Storage_Access_Policy#tracking_protection_explained) + in our Tracking Protection list. + +3. No origin with the same base domain (eTLD+1) has a user-interaction + permission. + + - This permission is granted to an origin for 45 days once a user + interacts with a top-level document from that origin. + "Interacting" includes scrolling. + + - Although this permission is stored on a per-origin level, we + will check whether any origin with the same base domain has + it, to avoid breaking sites with subdomains and a + corresponding cookie setup. + +#### What data is cleared? + +Firefox will clear the [following data](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/antitracking/PurgeTrackerService.jsm#205-213): + +- Network cache and image cache + +- Cookies + +- DOM Quota Storage (localStorage, IndexedDB, ServiceWorkers, DOM + Cache, etc.) + +- DOM Push notifications + +- Reporting API Reports + +- Security Settings (i.e. HSTS) + +- EME Media Plugin Data + +- Plugin Data (e.g. Flash) + +- Media Devices + +- Storage Access permissions granted to the origin + +- HTTP Authentication Tokens + +- HTTP Authentication Cache + +**Note:** Even though we're clearing all of this data, we currently only +flag origins for clearing when they use cookies or other site storage. + +Storage clearing ignores origin attributes. This means that storage will +be cleared across +[containers](https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers) +and isolated storage (i.e. from [First-Party Isolation](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies#first-party_isolation)). + +#### How frequently is data cleared? + +Firefox clears storage based on the firing of an internal event called +[idle-daily](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/antitracking/PurgeTrackerService.jsm#60,62,65), +which is defined by the following conditions: + +- It will, at the earliest, fire 24h after the last idle-daily event + fired. + +- It will only fire if the user has been idle for at least 3min (for + 24-48h after the last idle-daily) or 1 min (for >48h after the + last idle-daily). + +This means that there are at least 24 hours between each storage +clearance, and storage will only be cleared when the browser is idle. +When clearing cookies, we sort cookies by creation date and batch them +into sets of 100 (controlled by the pref +`privacy.purge_trackers.max_purge_count`) for performance reasons. + +#### Debugging + +For debugging purposes, it's easiest to trigger storage clearing by +triggering the service directly via the [Browser Console command line](/devtools-user/browser_console/index.html#browser_console_command_line). +Note that this is different from the normal [Web Console](/devtools-user/web_console/index.rst) +you might use to debug a website, and requires the +`devtools.chrome.enabled` pref to be set to true to use it interactively. +Once you've enabled the Browser Console you can trigger storage clearing +by running the following command: + +``` javascript +await Components.classes["@mozilla.org/purge-tracker-service;1"] +.getService(Components.interfaces.nsIPurgeTrackerService) +.purgeTrackingCookieJars() +``` + + diff --git a/toolkit/components/antitracking/docs/data-sanitization/index.md b/toolkit/components/antitracking/docs/data-sanitization/index.md new file mode 100644 index 000000000000..0958bf437767 --- /dev/null +++ b/toolkit/components/antitracking/docs/data-sanitization/index.md @@ -0,0 +1,443 @@ +# Data Sanitization + + + +Firefox has several Data Sanitization features. They allow users to +clear preferences and website data. Clearing data is an essential +feature for user privacy. There are two major privacy issues data +clearing helps mitigate: + +1. Websites tracking the user via web-exposed APIs and storages. This + can be traditional storages, e.g. localStorage, or cookies. + However, sites can also use Supercookies, e.g. caches, to persist + storage in the browser. + +2. Attackers who have control over a computer can exfiltrate data from + Firefox, such as history, passwords, etc. + +## Protection Background + +### What similar protections do other browsers have? + +All major browsers implement data clearing features +([Chrome](https://support.google.com/chrome/answer/2392709?hl=en&co=GENIE.Platform%3DDesktop&oco=0#zippy=), +[Edge](https://support.microsoft.com/en-us/microsoft-edge/view-and-delete-browser-history-in-microsoft-edge-00cf7943-a9e1-975a-a33d-ac10ce454ca4), +[Safari](https://support.apple.com/guide/safari/clear-your-browsing-history-sfri47acf5d6/mac), +[Brave](https://support.brave.com/hc/en-us/articles/360054509991-How-do-I-clear-Cookies-and-Site-data-in-Brave-on-Android-)). +They usually include a way for users to clear site data within a +configurable time-span along with a list of data categories to be +cleared. + +Chrome, Edge and Brave all share Chromium’s data clearing dialog with +smaller adjustments. Notably, Brave extends it with a clear-on-shutdown +mechanism similar to Firefox, while Chrome only supports clearing +specifically site data on shutdown. + +Safari’s history clearing feature only allows users to specify a time +span. It does not allow filtering by categories, but clears all website +related data. + +All browsers allow fine grained control over website cookies and +storages via the developer tools. + +### Is it standardized? + +This is a browser UX feature and is therefore not standardized. It is +not part of the web platform. + +There is a standardized HTTP header sites can send to clear associated +browser cache, cookies and storage: +[Clear-Site-Data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data). +However, Firefox no longer allows sites to clear caches via the header +since [Bug +1671182](https://bugzilla.mozilla.org/show_bug.cgi?id=1671182). + +### How does it fit into our vision of “Zero Privacy Leaks?” + +Clearing site data protects users against various tracking techniques +that rely on browser state to (re-)identify users. While Total Cookie +Protection covers many cross-site tracking scenarios, clearing site data +can additionally protect against first-party tracking and other tracking +methods that bypass TCP such as [navigational +tracking](https://privacycg.github.io/nav-tracking-mitigations/#intro). + +## Firefox Status + +### What is the ship state of this protection in Firefox? + +This long standing set of features is shipped in Release in default ETP +mode. In Firefox 91 we introduced [Enhanced Cookie +Clearing](https://blog.mozilla.org/security/2021/08/10/firefox-91-introduces-enhanced-cookie-clearing/) +which makes use of TCP’s cookie jars. This feature only benefits users +who have TCP enabled - in ETP strict mode or Private Browsing Mode. + +### Is there outstanding work? + +Since [Bug +1422365](https://bugzilla.mozilla.org/show_bug.cgi?id=1422365) the +ClearDataService provides a common interface to clear data of various +storage implementations. However, we don’t have full coverage of all +browser state yet. There are several smaller blind spots, most of which +are listed in this [meta +bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1102808). There is +also a long backlog of data sanitization bugs +[here](https://bugzilla.mozilla.org/show_bug.cgi?id=1550317). + +From a user perspective it’s difficult to understand what kind of data +is cleared from which UI. The category selection in the “Clear recent +history” dialog is especially confusing. + +Data clearing can take a long time on bigger Firefox profiles. Since +these operations mostly run on the main thread, this can lock up the UI +making the browser unresponsive until the operation has completed. + +Generally it would be worth revisiting cleaner implementations in the +ClearDataService and beyond to see where we can improve clearing +performance. + +Slow data clearing is especially problematic on shutdown. If the +sanitize-on-shutdown feature takes too long to clear storage, the parent +process will be terminated, resulting in a shutdown crash. [Bug +1756724](https://bugzilla.mozilla.org/show_bug.cgi?id=1756724) +proposes a solution to this: We could show a progress dialog when +clearing data. This way we can allow a longer shutdown phase, since the +user is aware that we’re clearing data. + +Important outstanding bugs: + +- [Bug 1550317 - \[meta\] Broken data + sanitization](https://bugzilla.mozilla.org/show_bug.cgi?id=1550317) + +- [Bug 1102808 - \[meta\] Clear Recent History / Forget button + blind + spots](https://bugzilla.mozilla.org/show_bug.cgi?id=1102808) + +- [Bug 1756724 - Show a data clearing progress dialog when + sanitizing data at shutdown due to "delete cookies and site data + when Firefox is + closed"](https://bugzilla.mozilla.org/show_bug.cgi?id=1756724) + +### Existing Documentation + + +\- + +## Technical Information + +### Feature Prefs + +| Pref | Description | +| ---- | ----------- | +| places.forgetThisSite.clearByBaseDomain | Switches “Forget about this site” to clear for the whole base domain rather than just the host. | +| privacy.sanitize.sanitizeOnShutdown | Whether to clear data on Firefox shutdown. | +| privacy.clearOnShutdown.* | Categories of data to be cleared on shutdown. True = clear category. Data is only cleared if privacy.sanitize.sanitizeOnShutdown is enabled.| + +### How does it work? + +The following section lists user facing data sanitization features in +Firefox, along with a brief description and a diagram how they tie into +the main clearing logic in `nsIClearDataService`. + +#### Clear Data + +- Accessible via `about:preferences#privacy` + +- Clears site data and caches depending on user selection + +- Clears + + - Cookies + + - DOM storages + + - HSTS + + - EME + + - Caches: CSS, Preflight, HSTS + +- Source + + - [clearSiteData.xhtml](https://searchfox.org/mozilla-central/source/browser/components/preferences/dialogs/clearSiteData.xhtml) + + - [clearSiteData.js](https://searchfox.org/mozilla-central/source/browser/components/preferences/dialogs/clearSiteData.js) + + - [clearSiteData.css](https://searchfox.org/mozilla-central/source/browser/components/preferences/dialogs/clearSiteData.css) + +![image3](media/image3.png) + +![image1](media/image1.png) + +#### Clear Recent History + +- Accessible via hamburger menu => History => Clear Recent + history or `about:preferences#privacy` => History => Clear + History + +- Clears a configurable list of categories as [defined in + Sanitizer.jsm](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm#356) + +- Can clear everything or a specific time range + +- Source + + - [sanitize.xhtml](https://searchfox.org/mozilla-central/source/browser/base/content/sanitize.xhtml) + + - [sanitizeDialog.js](https://searchfox.org/mozilla-central/source/browser/base/content/sanitizeDialog.js) + +![image4](media/image4.png) + +#### Forget About this Site + +- Accessible via hamburger menu => History => Contextmenu of an + item => Forget About This Site + +- Clears all data associated with the base domain of the selected site + +- \[With TCP\] Also clears data of any third-party sites embedded + under the top level base domain + +- The goal is to remove all traces of the associated site from Firefox + +- Clears + \[[flags](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/toolkit/components/cleardata/nsIClearDataService.idl#302-307)\] + + - History, session history, download history + + - All caches + + - Site data (cookies, dom storages) + + - Encrypted Media Extensions (EME) + + - Passwords (See [Bug + 702925](https://bugzilla.mozilla.org/show_bug.cgi?id=702925)) + + - Permissions + + - Content preferences (e.g. page zoom level) + + - Predictor network data + + - Reports (Reporting API) + + - Client-Auth-Remember flag, Certificate exceptions + + - Does **not** clear bookmarks + +- Source + + - [ForgetAboutSite.jsm](https://searchfox.org/mozilla-central/source/toolkit/components/forgetaboutsite/ForgetAboutSite.jsm) + + - [nsIClearDataService flags + used](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/toolkit/components/cleardata/nsIClearDataService.idl#302-307) + +![image6](media/image6.png) + +![image2](media/image2.png) + +#### Sanitize on Shutdown + +- Can be enabled via `about:preferences#privacy` => History: Firefox + will: Use custom settings for history => Check “Clear history + when Firefox closes” + + - After [Bug + 1681493](https://bugzilla.mozilla.org/show_bug.cgi?id=1681493) + it can also be controlled via the checkbox “Delete cookies and + site data when Firefox is closed” + +- On shutdown of Firefox, will clear all data for the selected + categories. The list of categories is defined in + [Sanitizer.jsm](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm#356) + +- Categories are the same as for the “Clear recent history” dialog + +- Exceptions + + - Sites which have a “cookie” permission, set to + [ACCESS\_SESSION](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/netwerk/cookie/nsICookiePermission.idl#28) + always get cleared, even if sanitize-on-shutdown is disabled + + - Sites which have a “cookie” permission set to + [ACCESS\_ALLOW](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/netwerk/cookie/nsICookiePermission.idl#19) + are exempt from data clearing + + - Caveat: When “site settings” is selected in the categories to be + cleared, the Sanitizer will remove exception permissions too. + This results in the above exceptions being cleared. + +- Uses PrincipalsCollector to obtain a list of principals which have + site data associated with them + + - [getAllPrincipals](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/toolkit/components/cleardata/PrincipalsCollector.jsm#72) + queries the QuotaManager, the cookie service and the service + worker manager for principals + +- The list of principals obtained is checked for permission + exceptions. Principals which set a cookie + [ACCESS\_ALLOW](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/netwerk/cookie/nsICookiePermission.idl#19) + permission are removed from the list. + +- Sanitizer.jsm [calls the + ClearDataService](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm#1022,1027-1032) + to clear data for every principal from the filtered list + +- Source + + - Most of the sanitize-on-shutdown logic is implemented in + [Sanitizer.jsm](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm) + + - The main entry point is + [sanitizeOnShutdown](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm#790) + + - [Parts of + sanitize-on-shutdown](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/Sanitizer.jsm#904-911) + always have to run, even if the rest of the feature is + disabled, to support clearing storage of sites which have + “cookie” set to + [ACCESS\_SESSION](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/netwerk/cookie/nsICookiePermission.idl#28) + (see exceptions above) + +#### Manage Cookies and Site Data + +- Accessible via `about:preferences#privacy` => Cookies and Site Data + => Manage Data + +- Clears + \[[flags](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/SiteDataManager.jsm#499,510-514)\] + + - Cookies + + - DOM storages + + - EME + + - Caches: CSS, Preflight, HSTS + +- Lists site cookies and storage grouped by base domain. + +- Clearing data on a more granular (host or origin) level is not + possible. This is a deliberate decision to make this UI more + thorough in cleaning and easier to understand. If users need very + granular data management capabilities, they can install an addon + or use the devtools. + +- Allows users to clear storage for specific sites, or all sites + +- \[With TCP\] Also clears data of any third-party sites embedded + under the top level base domain + +- Collects list of sites via + [SiteDataManager.getSites](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/SiteDataManager.jsm#366) + +- Before removal, prompts via SiteDataManger.promptSiteDataRemoval + +- On removal calls SiteDataManager.removeAll() if all sites have been + selected or SiteDataManager.remove() passing a list of sites to be + removed. + +- Source + + - [siteDataSettings.xhtml](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/components/preferences/dialogs/siteDataSettings.xhtml) + + - [siteDataSettings.js](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/components/preferences/dialogs/siteDataSettings.js) + +#### Clear Cookies and Site Data + +- Accessible via the identity panel (click on lock icon in the URL + bar) + +- Clears + \[[flags](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/modules/SiteDataManager.jsm#499,510-514)\] + + - Cookies + + - DOM storages + + - EME + + - Caches: CSS, Preflight, HSTS + +- Button handler method: + [clearSiteData](https://searchfox.org/mozilla-central/rev/fbb1e8462ad82b0e76b5c13dd0d6280cfb69e68d/browser/base/content/browser-siteIdentity.js#364-385) + +- Calls SiteDataManager.remove() with the base domain of the currently + selected tab + +- The button is only shown if a site has any cookies or quota storage. + This is checked + [here](https://searchfox.org/mozilla-central/rev/3269d4c928ef0d8310c2f57634e9b6057aa636e9/browser/base/content/browser-siteIdentity.js#923). + +- Source + + - [identityPanel.inc.xhtml](https://searchfox.org/mozilla-central/rev/3269d4c928ef0d8310c2f57634e9b6057aa636e9/browser/components/controlcenter/content/identityPanel.inc.xhtml#97) + + - [browser-siteIdentity.js](https://searchfox.org/mozilla-central/rev/3269d4c928ef0d8310c2f57634e9b6057aa636e9/browser/base/content/browser-siteIdentity.js#364) + +![image7](media/image7.png) + +![image5](media/image5.png) + +A broad overview of the different data clearing features accessible via +about:preferences#privacy. + +The user can clear data on demand or choose to clear data on shutdown. +For the latter the user may make exceptions for specific origins not to +be cleared or to be always cleared on shutdown. + +#### ClearDataService + +This service serves as a unified module to hold all data clearing logic +in Firefox / Gecko. Callers can use the +[nsIClearDataService](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/cleardata/nsIClearDataService.idl) +interface to clear data. From JS the service is accessible via +Services.clearData. + +To specify which state to clear pass a combination of +[flags](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/cleardata/nsIClearDataService.idl#161-308) +into aFlags. + +Every category of browser state should have its own cleaner +implementation which exposes the following methods to the +ClearDataService: + +- **deleteAll**: Deletes all data owned by the cleaner + +- **deleteByPrincipal**: Deletes data associated with a specific + principal. + +- **deleteByBaseDomain**: Deletes all entries which are associated + with the given base domain. This includes data partitioned by + Total Cookie Protection. + +- **deleteByHost**: Clears data associated with a host. Does not clear + partitioned data. + +- **deleteByRange**: Clear data which matches a given time-range. + +- **deleteByLocalFiles**: Delete data held for local files and other + hostless origins. + +- **deleteByOriginAttributes**: Clear entries which match an + [OriginAttributesPattern](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/caps/OriginAttributes.h#153). + +Some of these methods are optional. See [comment +here](https://searchfox.org/mozilla-central/rev/cf77e656ef36453e154bd45a38eea08b13d6a53e/toolkit/components/cleardata/ClearDataService.jsm#85-105). +If a cleaner does not support a specific method, we will usually try to +fall back to deleteAll. For privacy reasons we try to over-clear storage +rather than under-clear it or not clear it at all because we can’t +target individual entries. + +![image8](media/image8.png) + +Overview of the most important cleaning methods of the ClearDataService +called by other Firefox / Gecko components. deleteDataFromPrincipal is +called programmatically, while user exposed data clearing features clear +by base domain, host or all data. + + diff --git a/toolkit/components/antitracking/docs/data-sanitization/media/image1.png b/toolkit/components/antitracking/docs/data-sanitization/media/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..c9029753a3513885b154e2b68f72ce27c67cfbeb GIT binary patch literal 17565 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 literal 0 HcmV?d00001 diff --git a/toolkit/components/antitracking/docs/data-sanitization/media/image2.png b/toolkit/components/antitracking/docs/data-sanitization/media/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..451b297b7e2f1acfbf52c9b453ab2091d51d31e6 GIT binary patch literal 52969 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

|9}mQ8#D%Dgbs@RxGRcQ)mUzu*`V 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