Browse Source

Unarchived Firefox Privacy documentation

Trikolon 3 years ago
parent
commit
c87ddc8b0e
20 changed files with 0 additions and 1800 deletions
  1. 0 73
      files/en-us/mozilla/firefox/privacy/index.html
  2. 0 12
      files/en-us/mozilla/firefox/privacy/raw.html
  3. 0 151
      files/en-us/mozilla/firefox/privacy/redirect_tracking_protection/index.html
  4. 0 88
      files/en-us/mozilla/firefox/privacy/redirect_tracking_protection/raw.html
  5. 0 91
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedall/index.html
  6. 0 27
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedall/raw.html
  7. 0 89
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedbypermission/index.html
  8. 0 25
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedbypermission/raw.html
  9. 0 92
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html
  10. 0 28
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/raw.html
  11. 0 97
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html
  12. 0 33
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/raw.html
  13. 0 75
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookiepartitionedforeign/index.html
  14. 0 11
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookiepartitionedforeign/raw.html
  15. 0 76
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/index.html
  16. 0 13
      files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/raw.html
  17. 0 320
      files/en-us/mozilla/firefox/privacy/storage_access_policy/index.html
  18. 0 258
      files/en-us/mozilla/firefox/privacy/storage_access_policy/raw.html
  19. 0 152
      files/en-us/mozilla/firefox/privacy/tracking_protection/index.html
  20. 0 89
      files/en-us/mozilla/firefox/privacy/tracking_protection/raw.html

+ 0 - 73
files/en-us/mozilla/firefox/privacy/index.html

@@ -1,73 +0,0 @@
----
-title: Privacy
-slug: Mozilla/Firefox/Privacy
-tags:
-  - Privacy
-  - Security
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<p class="summary">This document lists privacy-related documentation.</p>
-
-<p></p><ul><li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">Storage access policy: Block cookies from trackers</a></li><li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Tracking_Protection">Tracking Protection</a></li></ul><p></p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/products/firefox/privacy-and-security">Privacy and security settings</a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/Security">Web Security</a></li>
-</ul>

+ 0 - 12
files/en-us/mozilla/firefox/privacy/raw.html

@@ -1,12 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<p class="summary">This document lists privacy-related documentation.</p>
-
-<p>{{ ListSubpages () }}</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/products/firefox/privacy-and-security">Privacy and security settings</a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/Security">Web Security</a></li>
-</ul>

+ 0 - 151
files/en-us/mozilla/firefox/privacy/redirect_tracking_protection/index.html

@@ -1,151 +0,0 @@
----
-title: Redirect tracking protection
-slug: Mozilla/Firefox/Privacy/Redirect_tracking_protection
-tags:
-  - Firefox
-  - Mozilla
-  - Privacy
-  - redirect tracking protection
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-<p>Firefox 79 includes protection against redirect tracking. This document describes how the protections work.</p>
-
-<h2 id="Redirect_tracking_defined">Redirect tracking defined</h2>
-
-<p><strong>Redirect tracking</strong> is an abuse of cross-site navigation in which a tracker momentarily redirects a user to their website for the purpose of using first-party storage to track that user across websites.</p>
-
-<p>Cross-site navigations are a core feature of the web; a person might search for &quot;best running shoes&quot; on a search engine, click a search result to read reviews, and finally click a link to buy a pair of shoes from an online store. In the past, each of these websites could embed resources from the same tracker, and the tracker could use its cookies to link all of these page visits to the same person. To protect the privacy of Firefox users, <a href="https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop">Enhanced Tracking Protection</a> (ETP) already blocks trackers from using cookies when they are embedded in a third-party context, but still allows them to use cookies as a first party because blocking first party cookies causes websites to break. Redirect tracking takes advantage of this to circumvent third-party cookie blocking.</p>
-
-<p>Redirect trackers work by forcing you to make an imperceptible and momentary stopover to their website as part of that journey. So instead of navigating directly from the review website to the retailer, you’ll end up navigating to the redirect tracker first rather than to the retailer. This means that the tracker is loaded as a first party. The redirect tracker associates tracking data with the identifiers they have stored in their first-party cookies and then forwards you to the retailer.</p>
-
-<h2 id="Redirect_tracking_protection_explained">Redirect tracking protection explained</h2>
-
-<p>To protect against redirect tracking Firefox periodically clears cookies and site data from trackers. We only clear this data from storage if the user is <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">blocking tracking cookies</a> (i.e., the <code>network.cookie.cookieBehavior</code> pref is set to <code>4</code>). Support for other cookie policies is tracked by <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1643045">Bug 1643045</a>.</p>
-
-<h3 id="What_origins_are_cleared">What origins are cleared?</h3>
-
-<p>An origin will be cleared if it fulfills the following conditions:</p>
-
-<ol>
- <li>It has stored cookies or accessed other site storage (e.g. <a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>, <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>, or the <a href="/en-US/docs/Web/API/CacheStorage">Cache API</a>) within the last 72 hours. Since cookies are per-host, we will clear both the <code>http</code> and <code>https</code> origin variants of a cookie host.</li>
- <li>The origin is <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">classified as a tracker</a> in our Tracking Protection list.</li>
- <li>No origin with the same base domain (eTLD+1) has a user-interaction permission.
-  <ul>
-   <li>This permission is granted to an origin for 45 days once a user interacts with a top-level document from that origin. &quot;Interacting&quot; includes scrolling.</li>
-   <li>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.</li>
-  </ul>
- </li>
-</ol>
-
-<h3 id="What_data_is_cleared">What data is cleared?</h3>
-
-<p>Firefox will clear the <a href="https://searchfox.org/mozilla-central/rev/622dbd3409610ad3f71b56c9a6a92da905dab0aa/toolkit/components/antitracking/PurgeTrackerService.jsm#209-225">following data</a>:</p>
-
-<ul>
- <li>Network cache and image cache</li>
- <li>Cookies</li>
- <li>AppCache</li>
- <li>DOM Quota Storage (localStorage, IndexedDB, ServiceWorkers, DOM Cache, etc.)</li>
- <li>DOM Push notifications</li>
- <li>Reporting API Reports</li>
- <li>Security Settings (i.e. HSTS)</li>
- <li>EME Media Plugin Data</li>
- <li>Plugin Data (e.g. Flash)</li>
- <li>Media Devices</li>
- <li>Storage Access permissions granted to the origin</li>
- <li>HTTP Authentication Tokens</li>
- <li>HTTP Authentication Cache</li>
-</ul>
-
-<div class="note notecard">
-<p><strong>Note</strong>: Even though we&apos;re clearing all of this data, we currently only flag origins for clearing when they use cookies or other site storage.</p>
-</div>
-
-<p>Storage clearing ignores origin attributes. This means that storage will be cleared across <a href="https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers">containers</a> and isolated storage (i.e. from <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies#First-party_isolation">First-Party Isolation</a>).</p>
-
-<h3 id="How_frequently_is_data_cleared">How frequently is data cleared?</h3>
-
-<p>Firefox clears storage based on the firing of an internal event called <code>idle-daily</code>, which is defined by the following conditions:</p>
-
-<ul>
- <li>It will, at the earliest, fire 24h after the last <code>idle-daily</code> event fired.</li>
- <li>It will only fire if the user has been idle for at least 3min (for 24-48h after the last <code>idle-daily</code>) or 1min (for &gt;48h after the last <code>idle-daily</code>).</li>
-</ul>
-
-<p>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 <code>privacy.purge_trackers.max_purge_count</code>) for performance reasons.</p>
-
-<h2 id="Debugging">Debugging</h2>
-
-<p>Redirect tracking protection can be enabled or disabled by flipping the <code>privacy.purge_trackers.enabled</code> preference in <code>about:config</code>. Furthermore, it will only run if the <code>network.cookie.cookieBehavior</code> pref is set to <code>4</code> or <code>5</code> in Firefox 79+ onwards (<code>1</code>, <code>3</code>, <code>4</code>, or <code>5</code> as of Firefox 80).</p>
-
-<p>Different log levels can be set via the <code>privacy.purge_trackers.logging.level</code> pref.</p>
-
-<p>For debugging purposes, it&apos;s easiest to trigger storage clearing by triggering the service directly via the <a href="/en-US/docs/Tools/Browser_Console#Browser_Console_command_line">Browser Console command line</a>. Note that this is different from the normal <a href="/en-US/docs/Tools/Web_Console">Web Console</a> you might use to debug a website, and requires the <code>devtools.chrome.enabled</code> pref to be set to <code>true</code> to use it interactively. Once you&apos;ve enabled the Browser Console you can trigger storage clearing by running the following command:</p>
-
-<pre class="brush: js notranslate">await Components.classes[&quot;@mozilla.org/purge-tracker-service;1&quot;].getService(Components.interfaces.nsIPurgeTrackerService).purgeTrackingCookieJars()</pre>
-
-<p>The time until user interaction permissions expire can be set to a lower amount using the <code>privacy.userInteraction.expiration</code> pref. Note that you will have to set this pref before visiting the sites you want to test — it will not apply retroactively.</p>
-
-<h2 id="Other_implementations">Other implementations</h2>
-
-<p>WebKit first shipped redirect tracking protection in <a href="https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/">ITP 2.0</a> (they refer to the same attack as bounce tracking). As of July 2020, there are several significant differences between WebKit’s implementation and Firefox’s implementation:</p>
-
-<ul>
- <li>The list of origins to be cleared in Firefox is based on our <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">tracking protection list</a>; WebKit relies on ITP&apos;s classification.</li>
- <li>Firefox&apos;s definition of &quot;interaction&quot; includes user scrolling when visiting the origin as a first party; WebKit’s does not.</li>
- <li>Firefox will not clear data for an origin if it has received interaction as a first party in the last 45 days of calendar time; WebKit’s interaction window is 30 days of browser use (e.g. days in which the user has had at least one interaction with Safari).</li>
-</ul>

+ 0 - 88
files/en-us/mozilla/firefox/privacy/redirect_tracking_protection/raw.html

@@ -1,88 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-<p>Firefox 79 includes protection against redirect tracking. This document describes how the protections work.</p>
-
-<h2 id="Redirect_tracking_defined">Redirect tracking defined</h2>
-
-<p><strong>Redirect tracking</strong> is an abuse of cross-site navigation in which a tracker momentarily redirects a user to their website for the purpose of using first-party storage to track that user across websites.</p>
-
-<p>Cross-site navigations are a core feature of the web; a person might search for "best running shoes" on a search engine, click a search result to read reviews, and finally click a link to buy a pair of shoes from an online store. In the past, each of these websites could embed resources from the same tracker, and the tracker could use its cookies to link all of these page visits to the same person. To protect the privacy of Firefox users, <a href="https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop">Enhanced Tracking Protection</a> (ETP) already blocks trackers from using cookies when they are embedded in a third-party context, but still allows them to use cookies as a first party because blocking first party cookies causes websites to break. Redirect tracking takes advantage of this to circumvent third-party cookie blocking.</p>
-
-<p>Redirect trackers work by forcing you to make an imperceptible and momentary stopover to their website as part of that journey. So instead of navigating directly from the review website to the retailer, you’ll end up navigating to the redirect tracker first rather than to the retailer. This means that the tracker is loaded as a first party. The redirect tracker associates tracking data with the identifiers they have stored in their first-party cookies and then forwards you to the retailer.</p>
-
-<h2 id="Redirect_tracking_protection_explained">Redirect tracking protection explained</h2>
-
-<p>To protect against redirect tracking Firefox periodically clears cookies and site data from trackers. We only clear this data from storage if the user is <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">blocking tracking cookies</a> (i.e., the <code>network.cookie.cookieBehavior</code> pref is set to <code>4</code>). Support for other cookie policies is tracked by <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1643045">Bug 1643045</a>.</p>
-
-<h3 id="What_origins_are_cleared">What origins are cleared?</h3>
-
-<p>An origin will be cleared if it fulfills the following conditions:</p>
-
-<ol>
- <li>It has stored cookies or accessed other site storage (e.g. <a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>, <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>, or the <a href="/en-US/docs/Web/API/CacheStorage">Cache API</a>) within the last 72 hours. Since cookies are per-host, we will clear both the <code>http</code> and <code>https</code> origin variants of a cookie host.</li>
- <li>The origin is <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">classified as a tracker</a> in our Tracking Protection list.</li>
- <li>No origin with the same base domain (eTLD+1) has a user-interaction permission.
-  <ul>
-   <li>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.</li>
-   <li>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.</li>
-  </ul>
- </li>
-</ol>
-
-<h3 id="What_data_is_cleared">What data is cleared?</h3>
-
-<p>Firefox will clear the <a href="https://searchfox.org/mozilla-central/rev/622dbd3409610ad3f71b56c9a6a92da905dab0aa/toolkit/components/antitracking/PurgeTrackerService.jsm#209-225">following data</a>:</p>
-
-<ul>
- <li>Network cache and image cache</li>
- <li>Cookies</li>
- <li>AppCache</li>
- <li>DOM Quota Storage (localStorage, IndexedDB, ServiceWorkers, DOM Cache, etc.)</li>
- <li>DOM Push notifications</li>
- <li>Reporting API Reports</li>
- <li>Security Settings (i.e. HSTS)</li>
- <li>EME Media Plugin Data</li>
- <li>Plugin Data (e.g. Flash)</li>
- <li>Media Devices</li>
- <li>Storage Access permissions granted to the origin</li>
- <li>HTTP Authentication Tokens</li>
- <li>HTTP Authentication Cache</li>
-</ul>
-
-<div class="blockIndicator note">
-<p><strong>Note</strong>: Even though we're clearing all of this data, we currently only flag origins for clearing when they use cookies or other site storage.</p>
-</div>
-
-<p>Storage clearing ignores origin attributes. This means that storage will be cleared across <a href="https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers">containers</a> and isolated storage (i.e. from <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies#First-party_isolation">First-Party Isolation</a>).</p>
-
-<h3 id="How_frequently_is_data_cleared">How frequently is data cleared?</h3>
-
-<p>Firefox clears storage based on the firing of an internal event called <code>idle-daily</code>, which is defined by the following conditions:</p>
-
-<ul>
- <li>It will, at the earliest, fire 24h after the last <code>idle-daily</code> event fired.</li>
- <li>It will only fire if the user has been idle for at least 3min (for 24-48h after the last <code>idle-daily</code>) or 1min (for &gt;48h after the last <code>idle-daily</code>).</li>
-</ul>
-
-<p>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 <code>privacy.purge_trackers.max_purge_count</code>) for performance reasons.</p>
-
-<h2 id="Debugging">Debugging</h2>
-
-<p>Redirect tracking protection can be enabled or disabled by flipping the <code>privacy.purge_trackers.enabled</code> preference in <code>about:config</code>. Furthermore, it will only run if the <code>network.cookie.cookieBehavior</code> pref is set to <code>4</code> or <code>5</code> in Firefox 79+ onwards (<code>1</code>, <code>3</code>, <code>4</code>, or <code>5</code> as of Firefox 80).</p>
-
-<p>Different log levels can be set via the <code>privacy.purge_trackers.logging.level</code> pref.</p>
-
-<p>For debugging purposes, it's easiest to trigger storage clearing by triggering the service directly via the <a href="/en-US/docs/Tools/Browser_Console#Browser_Console_command_line">Browser Console command line</a>. Note that this is different from the normal <a href="/en-US/docs/Tools/Web_Console">Web Console</a> you might use to debug a website, and requires the <code>devtools.chrome.enabled</code> pref to be set to <code>true</code> to use it interactively. Once you've enabled the Browser Console you can trigger storage clearing by running the following command:</p>
-
-<pre class="brush: js notranslate">await Components.classes["@mozilla.org/purge-tracker-service;1"].getService(Components.interfaces.nsIPurgeTrackerService).purgeTrackingCookieJars()</pre>
-
-<p>The time until user interaction permissions expire can be set to a lower amount using the <code>privacy.userInteraction.expiration</code> pref. Note that you will have to set this pref before visiting the sites you want to test — it will not apply retroactively.</p>
-
-<h2 id="Other_implementations">Other implementations</h2>
-
-<p>WebKit first shipped redirect tracking protection in <a href="https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/">ITP 2.0</a> (they refer to the same attack as bounce tracking). As of July 2020, there are several significant differences between WebKit’s implementation and Firefox’s implementation:</p>
-
-<ul>
- <li>The list of origins to be cleared in Firefox is based on our <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">tracking protection list</a>; WebKit relies on ITP's classification.</li>
- <li>Firefox's definition of "interaction" includes user scrolling when visiting the origin as a first party; WebKit’s does not.</li>
- <li>Firefox will not clear data for an origin if it has received interaction as a first party in the last 45 days of calendar time; WebKit’s interaction window is 30 days of browser use (e.g. days in which the user has had at least one interaction with Safari).</li>
-</ul>

+ 0 - 91
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedall/index.html

@@ -1,91 +0,0 @@
----
-title: 'Blocked: All storage access requests'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedAll
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedAll=Request to access cookies or storage on “X” was blocked because we are blocking all storage access requests.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because the browser is blocking all storage access.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking</em></li>
- <li>In the <em>Custom</em> Content Blocking section, selecting a value other than <em>All Cookies </em>for the <em>Cookies</em> item</li>
-</ul>
-
-<p>If the resource that is being blocked doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to your element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 27
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedall/raw.html

@@ -1,27 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedAll=Request to access cookies or storage on “X” was blocked because we are blocking all storage access requests.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because the browser is blocking all storage access.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking</em></li>
- <li>In the <em>Custom</em> Content Blocking section, selecting a value other than <em>All Cookies </em>for the <em>Cookies</em> item</li>
-</ul>
-
-<p>If the resource that is being blocked doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to your element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 89
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedbypermission/index.html

@@ -1,89 +0,0 @@
----
-title: 'Blocked: Custom cookie permission'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedByPermission
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedByPermission=Request to access cookies or storage on “X” was blocked because of custom cookie permission.
-</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because there's a custom user-defined permission set.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking &gt; Cookies and Site Data</em></li>
- <li>Clicking on the <em>Manage Permissions</em> button and updating the listed exceptions</li>
-</ul>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
-</ul>

+ 0 - 25
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedbypermission/raw.html

@@ -1,25 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedByPermission=Request to access cookies or storage on “X” was blocked because of custom cookie permission.
-</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because there's a custom user-defined permission set.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking &gt; Cookies and Site Data</em></li>
- <li>Clicking on the <em>Manage Permissions</em> button and updating the listed exceptions</li>
-</ul>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
-</ul>

+ 0 - 92
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html

@@ -1,92 +0,0 @@
----
-title: 'Blocked: All third-party storage access requests'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedForeign=Request to access cookies or storage on “X” was blocked because we are blocking all third-party storage access requests and content blocking is enabled.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because it came from a third-party (a different origin) and content blocking is enabled.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking </em>and either</li>
- <li>adding an exception with the <em>Manage Exceptions</em>… button</li>
- <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Cookies</em> checkbox</li>
-</ul>
-
-<p>If the resource that is being blocked doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 28
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/raw.html

@@ -1,28 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedForeign=Request to access cookies or storage on “X” was blocked because we are blocking all third-party storage access requests and content blocking is enabled.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because it came from a third-party (a different origin) and content blocking is enabled.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking </em>and either</li>
- <li>adding an exception with the <em>Manage Exceptions</em>… button</li>
- <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Cookies</em> checkbox</li>
-</ul>
-
-<p>If the resource that is being blocked doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 97
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html

@@ -1,97 +0,0 @@
----
-title: 'Blocked: Storage access requests from trackers'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedTracker=Request to access cookies or storage on “X” was blocked because it came from a tracker and content blocking is enabled.
-</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because the browser identified it as coming from a tracker and content blocking is enabled.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking </em>and either
-
-  <ul>
-   <li>adding an exception with the <em>Manage Exceptions</em>… button</li>
-   <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Tracker</em> checkbox</li>
-  </ul>
- </li>
-</ul>
-
-<p>If the blocked resource doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 33
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/raw.html

@@ -1,33 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedTracker=Request to access cookies or storage on “X” was blocked because it came from a tracker and content blocking is enabled.
-</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was blocked because the browser identified it as coming from a tracker and content blocking is enabled.</p>
-
-<p>The permission can be changed or removed by:</p>
-
-<ul>
- <li>Going to <em>Preferences &gt; Content Blocking </em>and either
-
-  <ul>
-   <li>adding an exception with the <em>Manage Exceptions</em>… button</li>
-   <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Tracker</em> checkbox</li>
-  </ul>
- </li>
-</ul>
-
-<p>If the blocked resource doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>

+ 0 - 75
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookiepartitionedforeign/index.html

@@ -1,75 +0,0 @@
----
-title: 'Partitioned: All third-party storage access requests'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookiePartitionedForeign
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox notranslate">CookiePartitionedForeign=Partitioned cookie or storage access was provided to “&lt;URL&gt;” because it is loaded in the third-party context and storage partitioning is enabled.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was <em>partitioned</em> because it came from a third-party (a different origin) and dynamic first-party isolation is enabled.</p>

+ 0 - 11
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/cookiepartitionedforeign/raw.html

@@ -1,11 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Message">Message</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox notranslate">CookiePartitionedForeign=Partitioned cookie or storage access was provided to “&lt;URL&gt;” because it is loaded in the third-party context and storage partitioning is enabled.</pre>
-
-<h2 id="What_went_wrong">What went wrong?</h2>
-
-<p>A request to access cookies or storage was <em>partitioned</em> because it came from a third-party (a different origin) and dynamic first-party isolation is enabled.</p>

+ 0 - 76
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/index.html

@@ -1,76 +0,0 @@
----
-title: Errors
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors
-tags:
-  - Cookies
-  - Errors
-  - Storage
-  - storage access policy
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<p>This page lists the errors that can be raised due to Firefox's anti-tracking functionality, governed by the <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">Storage access policy</a>. You can find further information about them by clicking on the links below:</p>
-
-<p>A request to access cookies or storage was</p>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedByPermission">blocked because of a custom cookie permission</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker">blocked because it came from a tracker and content blocking is enabled</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedAll">blocked because we are blocking all storage access requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign">blocked because we are blocking all third-party storage access requests and content blocking is enabled</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookiePartitionedForeign">granted <em>partitioned</em> access because it came from a third-party and dynamic first-party isolation is enabled</a></li>
-</ul>

+ 0 - 13
files/en-us/mozilla/firefox/privacy/storage_access_policy/errors/raw.html

@@ -1,13 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<p>This page lists the errors that can be raised due to Firefox's anti-tracking functionality, governed by the <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">Storage access policy</a>. You can find further information about them by clicking on the links below:</p>
-
-<p>A request to access cookies or storage was</p>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedByPermission">blocked because of a custom cookie permission</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker">blocked because it came from a tracker and content blocking is enabled</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedAll">blocked because we are blocking all storage access requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign">blocked because we are blocking all third-party storage access requests and content blocking is enabled</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookiePartitionedForeign">granted <em>partitioned</em> access because it came from a third-party and dynamic first-party isolation is enabled</a></li>
-</ul>

+ 0 - 320
files/en-us/mozilla/firefox/privacy/storage_access_policy/index.html

@@ -1,320 +0,0 @@
----
-title: 'Storage access policy: Block cookies from trackers'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy
-tags:
-  - Privacy
-  - storage access policy
-  - tracking protection
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<p class="summary">Firefox includes a new storage access policy that blocks cookies and other site data from third-party tracking resources. This policy is designed as an alternative to the <a href="/en-US/docs/Mozilla/Cookies_Preferences">older cookie policies</a>, which have been available in Firefox for many years. This policy protects against cross-site tracking while minimizing the site breakage associated with traditional cookie blocking. This article explains how the policy works and how you can test it.</p>
-
-<h2 id="Testing_in_Firefox">Testing in Firefox</h2>
-
-<p>This cookie policy has been available in Firefox since version 63. This documentation describes the policy that we intend to ship to Firefox Release users, but may not match what is implemented in the current Release version of Firefox. That&apos;s because we document new aspects of the policy as soon as they land in <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, our pre-release channel. Firefox Nightly may also contain experimental features that we don&apos;t yet plan to ship to Release users; experimental features will not be included in this documentation, but may nevertheless impact the functionality of domains classified as trackers.</p>
-
-<p>We recommend sites test with <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, as this includes the newest version of our protections. As described above, note that Nightly may include additional protections that end up getting removed or changed before they reach our Release users. We’ll keep this page updated with the newest information as we strengthen our protections.</p>
-
-<p>These protections are on by default in Nightly. The cookie policy can be enabled in other versions of Firefox through the <a href="https://support.mozilla.org/en-US/kb/content-blocking">Content Blocking settings</a> (these steps will vary by version; the linked documentation includes a dropdown to select the appropriate Firefox version).</p>
-
-<h3 id="Report_Broken_Sites">Report Broken Sites</h3>
-
-<p>If you find a website broken as a result of this change, file a bug under the Tracking Protection component within the Firefox product on <a href="https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&amp;blocked=1480137&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_fx_iteration=---&amp;cf_fx_points=---&amp;cf_platform_rel=---&amp;cf_status_firefox62=---&amp;cf_status_firefox63=---&amp;cf_status_firefox64=---&amp;cf_status_firefox_esr60=---&amp;cf_status_geckoview62=---&amp;cf_tracking_firefox62=---&amp;cf_tracking_firefox63=---&amp;cf_tracking_firefox64=---&amp;cf_tracking_firefox_esr60=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_geckoview62=---&amp;component=Tracking%20Protection&amp;contenttypemethod=list&amp;contenttypeselection=text%2Fplain&amp;defined_groups=1&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-787=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-803=X&amp;flag_type-835=X&amp;flag_type-846=X&amp;flag_type-855=X&amp;flag_type-864=X&amp;flag_type-914=X&amp;flag_type-916=X&amp;flag_type-929=X&amp;flag_type-930=X&amp;flag_type-933=X&amp;form_name=enter_bug&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=Unspecified&amp;priority=--&amp;product=Firefox&amp;rep_platform=Unspecified&amp;target_milestone=---&amp;version=unspecified">Bugzilla</a>. Alternatively you can report broken sites directly in Firefox by clicking &quot;Report a Problem&quot; in the Content Blocking section of the <a href="https://support.mozilla.org/en-US/kb/control-center-site-privacy-and-security-firefox">Control Center</a> (this shortcut may not be available in all versions of Firefox).</p>
-
-<h2 id="Tracking_protection_explained">Tracking protection explained</h2>
-
-<p>How does Firefox determine which resources are tracking resources?</p>
-
-<p>Firefox uses the Tracking Protection list to determine which resources are tracking resources. The Tracking Protection list is <a href="https://github.com/disconnectme/disconnect-tracking-protection/issues">maintained by Disconnect</a>. When the list is applied in Firefox, we make two important changes:</p>
-
-<ul>
- <li>First, we only use the &quot;Basic Protection&quot; version of the list, which <a href="https://github.com/mozilla-services/shavar-prod-lists#disconnect-blacklistjson">excludes some categories of trackers</a>. In the future, we may expand our protections to use the &quot;Strict Protection&quot; version of the list.</li>
- <li>Second, Firefox uses an additional &quot;<a href="https://github.com/mozilla-services/shavar-prod-lists/blob/master/disconnect-entitylist.json">entity list</a>&quot;, which prevents <a href="https://github.com/mozilla-services/shavar-prod-lists#disconnect-entitylistjson">domains from being classified as trackers when they are loaded on a top-level site owned by the same organization</a>.</li>
-</ul>
-
-<p>Firefox uses the built-in <a href="https://support.mozilla.org/en-US/kb/tracking-protection">Tracking Protection</a> URL classifier to determine which resources match the tracking protection list. Domains are matched against the list in accordance with the <a href="https://developers.google.com/safe-browsing/v4/urls-hashing#suffixprefix-expressions">SafeBrowsing v4 specification</a>. Specifically, we check the exact hostname of the resource against the list, as well as the last four hostnames formed by starting with the last five components and successively removing the leading component. Consider the following examples:</p>
-
-<table class="standard-table">
- <thead>
-  <tr>
-   <th scope="col">Hostname on the list</th>
-   <th scope="col">Hostname of resource</th>
-   <th scope="col">Matched</th>
-  </tr>
- </thead>
- <tbody>
-  <tr>
-   <td><code>example.com</code></td>
-   <td><code>example.com</code></td>
-   <td>Yes</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code></td>
-   <td><code>a.b.example.com</code></td>
-   <td>Yes</td>
-  </tr>
-  <tr>
-   <td><code>blah.example.com</code></td>
-   <td><code>example.com</code></td>
-   <td>No</td>
-  </tr>
-  <tr>
-   <td><code>a.b.example.com</code></td>
-   <td><code>c.d.example.com</code></td>
-   <td>No</td>
-  </tr>
-  <tr>
-   <td><code>blah.example.com</code></td>
-   <td><code>foo.blah.example.com</code></td>
-   <td>Yes</td>
-  </tr>
- </tbody>
-</table>
-
-<h2 id="What_does_the_storage_access_policy_block">What does the storage access policy block?</h2>
-
-<p>The storage access policy blocks resources identified as trackers from accessing their cookies and other site storage when they are loaded in a third-party context. This prevents those resources from retrieving tracking identifiers stored in cookies or site storage and using them to identify users across visits to multiple first parties. Specifically, Firefox does this by imposing the following restrictions:</p>
-
-<p>Cookies:</p>
-
-<ul>
- <li>Block <a href="/en-US/docs/Web/HTTP/Headers/Cookie"><code>Cookie</code></a> request headers and ignore <a href="/en-US/docs/Web/HTTP/Headers/Set-Cookie"><code>Set-Cookie</code></a> response headers.</li>
- <li>Return an empty string for calls to <a href="/en-US/docs/Web/API/Document/cookie"><code>Document.cookie</code></a> and ignore requests to set cookies via <code>Document.cookie</code>.</li>
-</ul>
-
-<p>DOM Storage:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code>: read and write attempts throw a <code>SecurityError</code> exception.  Prior to Firefox 70: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code> is <code>null</code>. Thus, attempts to read and write using this object will throw a <code>TypeError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">sessionStorage</a>: read and write attempts are permitted.</li>
- <li><a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>: attempting to access the IndexedDB factory object throws a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>Messaging and Workers:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Broadcast_Channel_API">Broadcast Channel</a>: attempts to create a new <a href="/en-US/docs/Web/API/BroadcastChannel"><code>BroadcastChannel</code></a> will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Workers_API">Shared Worker</a>: attempts to create a new <a href="/en-US/docs/Web/API/SharedWorker"><code>SharedWorker</code></a> will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker</a>: attempts to create a new <a href="/en-US/docs/Web/API/ServiceWorker"><code>ServiceWorker</code></a> will throw a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>DOM Cache:</p>
-
-<ul>
- <li>Calls to <a href="/en-US/docs/Web/API/CacheStorage"><code>CacheStorage</code></a> will always reject with a <code>SecurityError</code>.</li>
-</ul>
-
-<p>Browser caches:</p>
-
-<ul>
- <li>The <a href="/en-US/docs/Web/HTTP/Caching">HTTP cache</a>, the Image cache, and the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc">Alternative Services (Alt-Svc) cache</a> are all partitioned for tracking resources, such that each top-level origin will have a separate partition and tracking resources on different top-level origins will be cached separate from each other.</li>
-</ul>
-
-<p>Network connections:</p>
-
-<ul>
- <li><a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Session_Resumption">TLS sessions</a> will not be resumed using a session ticket when an HTTPS connection is made to an embedded third-party resource that is classified as a tracker.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#Persistent_connections">HTTP connection reuse</a> by domains classified as trackers is limited to requests that occur under the same top-level origin. For example, a request for content from tracker.example on news.example will not reuse an HTTP connection with a request for content from tracker.example on shopping.example or with requests that occur when tracker.example is visited directly (i.e., as a first party).</li>
-</ul>
-
-<p>HTTP Referrers</p>
-
-<ul>
- <li>The default <a href="/en-US/docs/Web/HTTP/Headers/Referrer-Policy">Referrer Policy</a> for third-party resources classified as trackers is set to <code>strict-origin-when-cross-origin</code>.</li>
-</ul>
-
-<h3 id="What_is_not_blocked_by_the_policy">What is not blocked by the policy?</h3>
-
-<ol>
- <li>This policy does not currently restrict third-party storage access for resources that are not classified as tracking resources. We may choose to apply additional restrictions to third-party storage access in the future.</li>
- <li>The restrictions applied by the policy will not prevent third-party scripts classified as tracking resources from accessing storage in the main context of the page. These scripts can continue to use storage scoped to the top-level origin.</li>
- <li>Origins classified as trackers will have access to their own storage when they are loaded in a first-party context.</li>
- <li>Cross-origin resources loaded from the same eTLD+1 as the top-level context will still have access to their storage.</li>
- <li>Origins normally classified as trackers will <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">not be blocked if the top-level page origin is determined to be from the same organization as them</a>.</li>
-</ol>
-
-<h2 id="Storage_access_grants">Storage access grants</h2>
-
-<p>In order to improve web compatibility and permit third-party integrations that require storage access, Firefox will grant storage access scoped to the first party for a particular third-party origin as described in this section. Currently, Firefox includes some web compatibility heuristics that grant storage access to third-party resources classified as trackers when a user interacts with those third parties. We do this when we expect that not granting access would cause the web page to break. We also support an initial implementation of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API">Storage Access API</a>, through which embedded <a href="/en-US/docs/Web/HTML/Element/iframe" title="The HTML Inline Frame element (&lt;iframe&gt;) represents a nested browsing context, embedding another HTML page into the current one."><code>&lt;iframe&gt;</code></a>s can request storage access by calling <a href="/en-US/docs/Web/API/Document/requestStorageAccess"><code>Document.requestStorageAccess()</code></a>. Although both of these approaches provide the same level of storage access, we recommend third parties switch to using the Storage Access API in order to guarantee their access to storage.</p>
-
-<h3 id="Automatic_storage_access_upon_interaction">Automatic storage access upon interaction</h3>
-
-<p>In order to improve web compatibility, Firefox currently includes some heuristics to grant storage access automatically to third parties that receive user interaction. These heuristics are intended to allow some third-party integrations that are common on the web to continue to function. They are intended to be temporary and will be removed in a future version of Firefox. They should not be relied upon for current and future web development.</p>
-
-<p>Third-party storage access may be granted to resources that have been classified as tracking resources when a user gesture triggers a pop-up window that has <a href="/en-US/docs/Web/API/Window/opener">opener access</a> to the originating document. When that occurs, there are three possible ways a third-party origin can be granted access:</p>
-
-<ul>
- <li>The origin of the resource that is initially loaded in the pop-up window is granted storage access on the opener document. If we discover that an origin is abusing this heuristic to gain tracking access, that origin will have the additional requirement that it must have received user interaction as a first party within the past 30 days.</li>
- <li>After the initial resource is loaded in the pop-up window, the window may go through a series of redirects to other hosts. If a user interacts with the pop-up window following a redirect, the origin of the content loaded in the pop-up window is given storage access on the opener document.</li>
- <li>When there is a top-level redirect from a tracking origin to a non-tracking origin, the tracking origin receives short-lived storage access on the non-tracking origin and any other non-tracking origins that appear further down the redirect chain (i.e., if the load continues to redirect). The tracking origin must have received user interaction as a first party within the past 30 days, and the storage access permission expires after 15 minutes.</li>
-</ul>
-
-<h3 id="Scope_of_storage_access">Scope of storage access</h3>
-
-<p>When storage access is granted, it is scoped to the origin of the opener document or subdomains of that origin. Access that is granted on the subdomain of an origin does not extend to the top-level origin. As an example, if a resource from <code>tracker.example</code> is granted storage access on <code>foo.example.com</code>, then <code>tracker.example</code> will be able to access its cookies on <code>bar.foo.example.com</code> but not <code>example.com</code>. Instead, if <code>tracker.example</code> were granted access on <code>example.com</code> it would be able to access its storage on <code>bar.foo.example.com</code>, <code>foo.example.com</code>, and <code>example.com</code>.</p>
-
-<p>When storage access is granted to <code>tracker.example</code> on <code>example.com</code>, all resources loaded from <code>tracker.example</code> on any top-level document loaded from <code>example.com</code> are immediately given storage access. This includes all resources loaded in the main context of the page, embedded <code>&lt;iframe&gt;</code>s, and resources loaded within embedded <code>&lt;iframe&gt;</code>s. Storage access is not extended to other resources loaded on <code>example.com</code> (e.g. <code>other-tracker.example</code>), nor to other first parties on which <code>tracker.example</code> is embedded (e.g. <code>example.org</code>).</p>
-
-<p>Storage access grants extend into the first level of nested contexts, but no further. This means that <code>&lt;iframe&gt;</code>s embedded in the main context of the page and loaded from a domain classified as a tracker will have full access to all storage locations accessible through JavaScript. Similarly, requests for resources loaded in <code>&lt;iframe&gt;</code>s embedded in the main context of the page will have access to HTTP cookies. However, further nested contexts, including but not limited to those from the origin classified as a tracker, will not be granted storage access.</p>
-
-<p>Consider the following embedding scenarios on a top-level page loaded from <code>example.com</code> on which <code>tracker.example</code> has been granted storage access.</p>
-
-<table class="standard-table">
- <thead>
-  <tr>
-   <th scope="col">Embedding</th>
-   <th scope="col">tracker.example resource storage access</th>
-  </tr>
- </thead>
- <tbody>
-  <tr>
-   <td>An image is loaded from <code>tracker.example</code> and embedded in the main context of <code>example.com</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: N/A</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to load an image from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: N/A</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to embed an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: No</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: Yes</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.com</code> (same origin). The nested <code>&lt;iframe&gt;</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: No</td>
-  </tr>
- </tbody>
-</table>
-
-<h3 id="Storage_access_expiration">Storage access expiration</h3>
-
-<p>The storage access grant expires after 30 days. Domains classified as tracking resources may be granted third-party storage access on multiple first parties, and the storage permission for each party expires independently. The above heuristics will also serve to extend the lifetime of a third-party storage permission on origins that have already been granted access.  Each time the heuristic is activated, or a success call to the Storage Access API is made, the pre-existing storage access expiration will be extended by 30 days, counting from the time the previous access was granted.</p>
-
-<p>Please note that in the future we expect to make changes to how long storage access will remain valid for.  As mentioned before, the way to know that you will be able to use storage as a third-party going forward will be using the Storage Access API.</p>
-
-<h2 id="Debugging">Debugging</h2>
-
-<p>We encourage site owners to test their sites, particularly those that rely on third-party content integrations. We’ve added several new features to Firefox to make testing easier.</p>
-
-<h3 id="Developer_Tools_notifications">Developer Tools notifications</h3>
-
-<p>The <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> in Firefox Developer Tools now includes an indicator for all resource requests that have been classified as tracking resources. This indicator is shown as a shield icon in the domain column. In the sample image below, <code>trackertest.org</code> is classified as a tracking resource, while the request to example.com is not.</p>
-
-<p><img alt="network requests in Firefox devtools indicating which ones are tracking resources with a small shield icon" src="https://mdn.mozillademos.org/files/16181/Screen_Shot_2018-09-21_at_10.34.22_AM.png" style="border-style: solid; border-width: 1px; display: block; height: 57px; margin: 0px auto; width: 600px;"></p>
-
-<h3 id="Adding_custom_domains_to_the_Tracking_Protection_list">Adding custom domains to the Tracking Protection list</h3>
-
-<p>Curious how things will work if a third-party domain on your site were classified as a tracker? We’ve added a preference that allows you to add custom domains to the Tracking Protection URL classifier. To do so:</p>
-
-<ol>
- <li>Type <code>about:config</code> in your address bar. If you are presented with a page that warns you &quot;This may void your warranty!&quot;, click &quot;I accept the risk!&quot;</li>
- <li>Search for the preference name &quot;urlclassifier.trackingAnnotationTable.testEntries&quot;.</li>
- <li>If the preference already exists, edit the preference value.</li>
- <li>If the preference does not exist, click &quot;String&quot; and then &quot;+&quot; to create a new preference.</li>
- <li>For the preference value enter comma separated origins that you’d like to have classified as trackers. E.g. &quot;example.net,example.org&quot;.</li>
-</ol>
-
-<div class="warning notecard">
-<p><strong>Warning</strong>: Be sure to remove these entries after you have finished testing.</p>
-</div>
-
-<h2 id="FAQ">FAQ</h2>
-
-<p>This cookie policy has the potential to lead to site breakage, but has been designed to allow common third-party integrations to continue to work while preventing cross-site tracking. In this section we describe the functionality you can expect in different integration scenarios.</p>
-
-<h3 id="Will_this_storage_access_policy_block_ads_from_displaying_on_my_website">Will this storage access policy block ads from displaying on my website?</h3>
-
-<p>No — this feature only restricts access to cookies and site data that can be used to track users across websites. Blocking tracking identifiers does not prevent the display of advertisements.</p>
-
-<h3 id="I_use_a_third-party_analytics_service_that_is_classified_as_a_tracker._Will_I_still_receive_analytics_data">I use a third-party analytics service that is classified as a tracker. Will I still receive analytics data?</h3>
-
-<p>This depends on how the third-party analytics service is implemented. Third-party analytics providers will no longer be able to user their third-party storage to collect data. This means that providers using cookies which are scoped to their third-party domain, or local storage and other site data stored under their origin, will no longer have access to those identifiers across other websites.</p>
-
-<p>If these services are embedded into the main context of the page, they can continue to use first-party cookies and site storage to track users across page visits on that specific first-party domain.</p>
-
-<h3 id="I_use_third-party_services_for_social_login_like_and_share_button_integration._Will_my_users_still_be_able_to_make_use_of_these_services">I use third-party services for social login, like, and share button integration. Will my users still be able to make use of these services?</h3>
-
-<p>This depends on how the social integration is implemented. We expect that many of the popular social integrations will continue to function as they do under Firefox’s current cookie policy with some minor differences in the user experience.</p>
-
-<p>A social content provider that is classified as a tracker will not have access to their third-party cookies when the user first visits a new first party. Thus, the user may appear logged out to the service despite being logged in when they visit the provider’s website directly. Depending on the type of integration, the user may have to take some action to interact with the social content provider before the provider is given access to their cookies. For example:</p>
-
-<ul>
- <li>For social login, the user may have to click a login button on the first party.</li>
- <li>For social like or share buttons, the user will have to first interact with the button in a logged-out state. Once they do, many social content providers will prompt them to log in.</li>
-</ul>
-
-<p>After these interactions, the provider will receive third-party storage access if they prompt the user in a way that is captured by the storage access activation heuristics described above. These providers should consider switching to explicitly request storage access through the Storage Access API as soon as possible. An <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1469714">initial implementation of this API</a> is currently available in Nightly.</p>
-
-<h3 id="I_use_third-party_pixels_and_other_tools_to_measure_the_effectiveness_of_my_ad_campaigns._Will_I_still_be_able_to_measure_the_conversion_rate_of_my_ads">I use third-party pixels and other tools to measure the effectiveness of my ad campaigns. Will I still be able to measure the conversion rate of my ads?</h3>
-
-<p>This depends on how the third party has implemented the measurement tool, but generally ad conversion measurement will be more difficult. Consider the following examples:</p>
-
-<ol>
- <li>You run an ad on a social media website that is seen several times by a user, but never clicked. That user later visits your website, which includes a conversion tracking tag from the same social media website. This type of conversion is often referred to as a “view-through conversion.” Since the social media website does not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that most view-through conversion tracking techniques will no longer work, including those offered by display networks.</li>
- <li>You run an ad on a display network or social media website that is clicked by a user. That user lands on your website, which includes a conversion tracking tag from the same website that displayed your ad. This type of conversion is often referred to as a “click-through conversion.” Since the social media site or display network will not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that this version of click-through conversion will no longer work.</li>
- <li>You run an ad that appears on a social media website. A user clicks on your advertisement and is taken to a landing page that contains a conversion tracking tag from the third-party network. On the social media website, the network annotates the advertisement landing page URL with a query parameter that signals that the visit was the result of a click on an advertisement. On your website, the display network’s tag checks the URL query parameters and saves any ad tracking parameters to first-party storage. If a user later completes a conversion event, the network’s tag checks first-party storage to determine which click (or clicks) was responsible for the visit. We expect that click-through conversion implemented in this way will continue to work.</li>
-</ol>

+ 0 - 258
files/en-us/mozilla/firefox/privacy/storage_access_policy/raw.html

@@ -1,258 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<p class="summary">Firefox includes a new storage access policy that blocks cookies and other site data from third-party tracking resources. This policy is designed as an alternative to the <a href="/en-US/docs/Mozilla/Cookies_Preferences">older cookie policies</a>, which have been available in Firefox for many years. This policy protects against cross-site tracking while minimizing the site breakage associated with traditional cookie blocking. This article explains how the policy works and how you can test it.</p>
-
-<h2 id="Testing_in_Firefox">Testing in Firefox</h2>
-
-<p>This cookie policy has been available in Firefox since version 63. This documentation describes the policy that we intend to ship to Firefox Release users, but may not match what is implemented in the current Release version of Firefox. That's because we document new aspects of the policy as soon as they land in <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, our pre-release channel. Firefox Nightly may also contain experimental features that we don't yet plan to ship to Release users; experimental features will not be included in this documentation, but may nevertheless impact the functionality of domains classified as trackers.</p>
-
-<p>We recommend sites test with <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, as this includes the newest version of our protections. As described above, note that Nightly may include additional protections that end up getting removed or changed before they reach our Release users. We’ll keep this page updated with the newest information as we strengthen our protections.</p>
-
-<p>These protections are on by default in Nightly. The cookie policy can be enabled in other versions of Firefox through the <a href="https://support.mozilla.org/en-US/kb/content-blocking">Content Blocking settings</a> (these steps will vary by version; the linked documentation includes a dropdown to select the appropriate Firefox version).</p>
-
-<h3 id="Report_Broken_Sites">Report Broken Sites</h3>
-
-<p>If you find a website broken as a result of this change, file a bug under the Tracking Protection component within the Firefox product on <a href="https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&amp;blocked=1480137&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_fx_iteration=---&amp;cf_fx_points=---&amp;cf_platform_rel=---&amp;cf_status_firefox62=---&amp;cf_status_firefox63=---&amp;cf_status_firefox64=---&amp;cf_status_firefox_esr60=---&amp;cf_status_geckoview62=---&amp;cf_tracking_firefox62=---&amp;cf_tracking_firefox63=---&amp;cf_tracking_firefox64=---&amp;cf_tracking_firefox_esr60=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_geckoview62=---&amp;component=Tracking%20Protection&amp;contenttypemethod=list&amp;contenttypeselection=text%2Fplain&amp;defined_groups=1&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-787=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-803=X&amp;flag_type-835=X&amp;flag_type-846=X&amp;flag_type-855=X&amp;flag_type-864=X&amp;flag_type-914=X&amp;flag_type-916=X&amp;flag_type-929=X&amp;flag_type-930=X&amp;flag_type-933=X&amp;form_name=enter_bug&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=Unspecified&amp;priority=--&amp;product=Firefox&amp;rep_platform=Unspecified&amp;target_milestone=---&amp;version=unspecified">Bugzilla</a>. Alternatively you can report broken sites directly in Firefox by clicking "Report a Problem" in the Content Blocking section of the <a href="https://support.mozilla.org/en-US/kb/control-center-site-privacy-and-security-firefox">Control Center</a> (this shortcut may not be available in all versions of Firefox).</p>
-
-<h2 id="Tracking_protection_explained">Tracking protection explained</h2>
-
-<p>How does Firefox determine which resources are tracking resources?</p>
-
-<p>Firefox uses the Tracking Protection list to determine which resources are tracking resources. The Tracking Protection list is <a href="https://github.com/disconnectme/disconnect-tracking-protection/issues">maintained by Disconnect</a>. When the list is applied in Firefox, we make two important changes:</p>
-
-<ul>
- <li>First, we only use the "Basic Protection" version of the list, which <a href="https://github.com/mozilla-services/shavar-prod-lists#disconnect-blacklistjson">excludes some categories of trackers</a>. In the future, we may expand our protections to use the "Strict Protection" version of the list.</li>
- <li>Second, Firefox uses an additional "<a href="https://github.com/mozilla-services/shavar-prod-lists/blob/master/disconnect-entitylist.json">entity list</a>", which prevents <a href="https://github.com/mozilla-services/shavar-prod-lists#disconnect-entitylistjson">domains from being classified as trackers when they are loaded on a top-level site owned by the same organization</a>.</li>
-</ul>
-
-<p>Firefox uses the built-in <a href="https://support.mozilla.org/en-US/kb/tracking-protection">Tracking Protection</a> URL classifier to determine which resources match the tracking protection list. Domains are matched against the list in accordance with the <a href="https://developers.google.com/safe-browsing/v4/urls-hashing#suffixprefix-expressions">SafeBrowsing v4 specification</a>. Specifically, we check the exact hostname of the resource against the list, as well as the last four hostnames formed by starting with the last five components and successively removing the leading component. Consider the following examples:</p>
-
-<table class="standard-table">
- <thead>
-  <tr>
-   <th scope="col">Hostname on the list</th>
-   <th scope="col">Hostname of resource</th>
-   <th scope="col">Matched</th>
-  </tr>
- </thead>
- <tbody>
-  <tr>
-   <td><code>example.com</code></td>
-   <td><code>example.com</code></td>
-   <td>Yes</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code></td>
-   <td><code>a.b.example.com</code></td>
-   <td>Yes</td>
-  </tr>
-  <tr>
-   <td><code>blah.example.com</code></td>
-   <td><code>example.com</code></td>
-   <td>No</td>
-  </tr>
-  <tr>
-   <td><code>a.b.example.com</code></td>
-   <td><code>c.d.example.com</code></td>
-   <td>No</td>
-  </tr>
-  <tr>
-   <td><code>blah.example.com</code></td>
-   <td><code>foo.blah.example.com</code></td>
-   <td>Yes</td>
-  </tr>
- </tbody>
-</table>
-
-<h2 id="What_does_the_storage_access_policy_block">What does the storage access policy block?</h2>
-
-<p>The storage access policy blocks resources identified as trackers from accessing their cookies and other site storage when they are loaded in a third-party context. This prevents those resources from retrieving tracking identifiers stored in cookies or site storage and using them to identify users across visits to multiple first parties. Specifically, Firefox does this by imposing the following restrictions:</p>
-
-<p>Cookies:</p>
-
-<ul>
- <li>Block {{httpheader("Cookie")}} request headers and ignore {{httpheader("Set-Cookie")}} response headers.</li>
- <li>Return an empty string for calls to {{domxref("Document.cookie")}} and ignore requests to set cookies via <code>Document.cookie</code>.</li>
-</ul>
-
-<p>DOM Storage:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code>: read and write attempts throw a <code>SecurityError</code> exception.  Prior to Firefox 70: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code> is <code>null</code>. Thus, attempts to read and write using this object will throw a <code>TypeError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">sessionStorage</a>: read and write attempts are permitted.</li>
- <li><a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>: attempting to access the IndexedDB factory object throws a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>Messaging and Workers:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Broadcast_Channel_API">Broadcast Channel</a>: attempts to create a new {{domxref("BroadcastChannel")}} will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Workers_API">Shared Worker</a>: attempts to create a new {{domxref("SharedWorker")}} will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker</a>: attempts to create a new {{domxref("ServiceWorker")}} will throw a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>DOM Cache:</p>
-
-<ul>
- <li>Calls to {{domxref("CacheStorage")}} will always reject with a <code>SecurityError</code>.</li>
-</ul>
-
-<p>Browser caches:</p>
-
-<ul>
- <li>The <a href="/en-US/docs/Web/HTTP/Caching">HTTP cache</a>, the Image cache, and the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc">Alternative Services (Alt-Svc) cache</a> are all partitioned for tracking resources, such that each top-level origin will have a separate partition and tracking resources on different top-level origins will be cached separate from each other.</li>
-</ul>
-
-<p>Network connections:</p>
-
-<ul>
- <li><a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Session_Resumption">TLS sessions</a> will not be resumed using a session ticket when an HTTPS connection is made to an embedded third-party resource that is classified as a tracker.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#Persistent_connections">HTTP connection reuse</a> by domains classified as trackers is limited to requests that occur under the same top-level origin. For example, a request for content from tracker.example on news.example will not reuse an HTTP connection with a request for content from tracker.example on shopping.example or with requests that occur when tracker.example is visited directly (i.e., as a first party).</li>
-</ul>
-
-<p>HTTP Referrers</p>
-
-<ul>
- <li>The default <a href="/en-US/docs/Web/HTTP/Headers/Referrer-Policy">Referrer Policy</a> for third-party resources classified as trackers is set to <code>strict-origin-when-cross-origin</code>.</li>
-</ul>
-
-<h3 id="What_is_not_blocked_by_the_policy">What is not blocked by the policy?</h3>
-
-<ol>
- <li>This policy does not currently restrict third-party storage access for resources that are not classified as tracking resources. We may choose to apply additional restrictions to third-party storage access in the future.</li>
- <li>The restrictions applied by the policy will not prevent third-party scripts classified as tracking resources from accessing storage in the main context of the page. These scripts can continue to use storage scoped to the top-level origin.</li>
- <li>Origins classified as trackers will have access to their own storage when they are loaded in a first-party context.</li>
- <li>Cross-origin resources loaded from the same eTLD+1 as the top-level context will still have access to their storage.</li>
- <li>Origins normally classified as trackers will <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">not be blocked if the top-level page origin is determined to be from the same organization as them</a>.</li>
-</ol>
-
-<h2 id="Storage_access_grants">Storage access grants</h2>
-
-<p>In order to improve web compatibility and permit third-party integrations that require storage access, Firefox will grant storage access scoped to the first party for a particular third-party origin as described in this section. Currently, Firefox includes some web compatibility heuristics that grant storage access to third-party resources classified as trackers when a user interacts with those third parties. We do this when we expect that not granting access would cause the web page to break. We also support an initial implementation of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API">Storage Access API</a>, through which embedded {{htmlelement("iframe")}}s can request storage access by calling {{domxref("Document.requestStorageAccess()")}}. Although both of these approaches provide the same level of storage access, we recommend third parties switch to using the Storage Access API in order to guarantee their access to storage.</p>
-
-<h3 id="Automatic_storage_access_upon_interaction">Automatic storage access upon interaction</h3>
-
-<p>In order to improve web compatibility, Firefox currently includes some heuristics to grant storage access automatically to third parties that receive user interaction. These heuristics are intended to allow some third-party integrations that are common on the web to continue to function. They are intended to be temporary and will be removed in a future version of Firefox. They should not be relied upon for current and future web development.</p>
-
-<p>Third-party storage access may be granted to resources that have been classified as tracking resources when a user gesture triggers a pop-up window that has <a href="/en-US/docs/Web/API/Window/opener">opener access</a> to the originating document. When that occurs, there are three possible ways a third-party origin can be granted access:</p>
-
-<ul>
- <li>The origin of the resource that is initially loaded in the pop-up window is granted storage access on the opener document. If we discover that an origin is abusing this heuristic to gain tracking access, that origin will have the additional requirement that it must have received user interaction as a first party within the past 30 days.</li>
- <li>After the initial resource is loaded in the pop-up window, the window may go through a series of redirects to other hosts. If a user interacts with the pop-up window following a redirect, the origin of the content loaded in the pop-up window is given storage access on the opener document.</li>
- <li>When there is a top-level redirect from a tracking origin to a non-tracking origin, the tracking origin receives short-lived storage access on the non-tracking origin and any other non-tracking origins that appear further down the redirect chain (i.e., if the load continues to redirect). The tracking origin must have received user interaction as a first party within the past 30 days, and the storage access permission expires after 15 minutes.</li>
-</ul>
-
-<h3 id="Scope_of_storage_access">Scope of storage access</h3>
-
-<p>When storage access is granted, it is scoped to the origin of the opener document or subdomains of that origin. Access that is granted on the subdomain of an origin does not extend to the top-level origin. As an example, if a resource from <code>tracker.example</code> is granted storage access on <code>foo.example.com</code>, then <code>tracker.example</code> will be able to access its cookies on <code>bar.foo.example.com</code> but not <code>example.com</code>. Instead, if <code>tracker.example</code> were granted access on <code>example.com</code> it would be able to access its storage on <code>bar.foo.example.com</code>, <code>foo.example.com</code>, and <code>example.com</code>.</p>
-
-<p>When storage access is granted to <code>tracker.example</code> on <code>example.com</code>, all resources loaded from <code>tracker.example</code> on any top-level document loaded from <code>example.com</code> are immediately given storage access. This includes all resources loaded in the main context of the page, embedded <code>&lt;iframe&gt;</code>s, and resources loaded within embedded <code>&lt;iframe&gt;</code>s. Storage access is not extended to other resources loaded on <code>example.com</code> (e.g. <code>other-tracker.example</code>), nor to other first parties on which <code>tracker.example</code> is embedded (e.g. <code>example.org</code>).</p>
-
-<p>Storage access grants extend into the first level of nested contexts, but no further. This means that <code>&lt;iframe&gt;</code>s embedded in the main context of the page and loaded from a domain classified as a tracker will have full access to all storage locations accessible through JavaScript. Similarly, requests for resources loaded in <code>&lt;iframe&gt;</code>s embedded in the main context of the page will have access to HTTP cookies. However, further nested contexts, including but not limited to those from the origin classified as a tracker, will not be granted storage access.</p>
-
-<p>Consider the following embedding scenarios on a top-level page loaded from <code>example.com</code> on which <code>tracker.example</code> has been granted storage access.</p>
-
-<table class="standard-table">
- <thead>
-  <tr>
-   <th scope="col">Embedding</th>
-   <th scope="col">tracker.example resource storage access</th>
-  </tr>
- </thead>
- <tbody>
-  <tr>
-   <td>An image is loaded from <code>tracker.example</code> and embedded in the main context of <code>example.com</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: N/A</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to load an image from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: N/A</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to embed an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: No</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: Yes</td>
-  </tr>
-  <tr>
-   <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.com</code> (same origin). The nested <code>&lt;iframe&gt;</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
-   <td>HTTP: Yes<br>
-    JS: No</td>
-  </tr>
- </tbody>
-</table>
-
-<h3 id="Storage_access_expiration">Storage access expiration</h3>
-
-<p>The storage access grant expires after 30 days. Domains classified as tracking resources may be granted third-party storage access on multiple first parties, and the storage permission for each party expires independently. The above heuristics will also serve to extend the lifetime of a third-party storage permission on origins that have already been granted access.  Each time the heuristic is activated, or a success call to the Storage Access API is made, the pre-existing storage access expiration will be extended by 30 days, counting from the time the previous access was granted.</p>
-
-<p>Please note that in the future we expect to make changes to how long storage access will remain valid for.  As mentioned before, the way to know that you will be able to use storage as a third-party going forward will be using the Storage Access API.</p>
-
-<h2 id="Debugging">Debugging</h2>
-
-<p>We encourage site owners to test their sites, particularly those that rely on third-party content integrations. We’ve added several new features to Firefox to make testing easier.</p>
-
-<h3 id="Developer_Tools_notifications">Developer Tools notifications</h3>
-
-<p>The <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> in Firefox Developer Tools now includes an indicator for all resource requests that have been classified as tracking resources. This indicator is shown as a shield icon in the domain column. In the sample image below, <code>trackertest.org</code> is classified as a tracking resource, while the request to example.com is not.</p>
-
-<p><img alt="network requests in Firefox devtools indicating which ones are tracking resources with a small shield icon" src="https://mdn.mozillademos.org/files/16181/Screen_Shot_2018-09-21_at_10.34.22_AM.png" style="border-style: solid; border-width: 1px; display: block; height: 57px; margin: 0px auto; width: 600px;"></p>
-
-<h3 id="Adding_custom_domains_to_the_Tracking_Protection_list">Adding custom domains to the Tracking Protection list</h3>
-
-<p>Curious how things will work if a third-party domain on your site were classified as a tracker? We’ve added a preference that allows you to add custom domains to the Tracking Protection URL classifier. To do so:</p>
-
-<ol>
- <li>Type <code>about:config</code> in your address bar. If you are presented with a page that warns you "This may void your warranty!", click "I accept the risk!"</li>
- <li>Search for the preference name "urlclassifier.trackingAnnotationTable.testEntries".</li>
- <li>If the preference already exists, edit the preference value.</li>
- <li>If the preference does not exist, click "String" and then "+" to create a new preference.</li>
- <li>For the preference value enter comma separated origins that you’d like to have classified as trackers. E.g. "example.net,example.org".</li>
-</ol>
-
-<div class="warning">
-<p><strong>Warning</strong>: Be sure to remove these entries after you have finished testing.</p>
-</div>
-
-<h2 id="FAQ">FAQ</h2>
-
-<p>This cookie policy has the potential to lead to site breakage, but has been designed to allow common third-party integrations to continue to work while preventing cross-site tracking. In this section we describe the functionality you can expect in different integration scenarios.</p>
-
-<h3 id="Will_this_storage_access_policy_block_ads_from_displaying_on_my_website">Will this storage access policy block ads from displaying on my website?</h3>
-
-<p>No — this feature only restricts access to cookies and site data that can be used to track users across websites. Blocking tracking identifiers does not prevent the display of advertisements.</p>
-
-<h3 id="I_use_a_third-party_analytics_service_that_is_classified_as_a_tracker._Will_I_still_receive_analytics_data">I use a third-party analytics service that is classified as a tracker. Will I still receive analytics data?</h3>
-
-<p>This depends on how the third-party analytics service is implemented. Third-party analytics providers will no longer be able to user their third-party storage to collect data. This means that providers using cookies which are scoped to their third-party domain, or local storage and other site data stored under their origin, will no longer have access to those identifiers across other websites.</p>
-
-<p>If these services are embedded into the main context of the page, they can continue to use first-party cookies and site storage to track users across page visits on that specific first-party domain.</p>
-
-<h3 id="I_use_third-party_services_for_social_login_like_and_share_button_integration._Will_my_users_still_be_able_to_make_use_of_these_services">I use third-party services for social login, like, and share button integration. Will my users still be able to make use of these services?</h3>
-
-<p>This depends on how the social integration is implemented. We expect that many of the popular social integrations will continue to function as they do under Firefox’s current cookie policy with some minor differences in the user experience.</p>
-
-<p>A social content provider that is classified as a tracker will not have access to their third-party cookies when the user first visits a new first party. Thus, the user may appear logged out to the service despite being logged in when they visit the provider’s website directly. Depending on the type of integration, the user may have to take some action to interact with the social content provider before the provider is given access to their cookies. For example:</p>
-
-<ul>
- <li>For social login, the user may have to click a login button on the first party.</li>
- <li>For social like or share buttons, the user will have to first interact with the button in a logged-out state. Once they do, many social content providers will prompt them to log in.</li>
-</ul>
-
-<p>After these interactions, the provider will receive third-party storage access if they prompt the user in a way that is captured by the storage access activation heuristics described above. These providers should consider switching to explicitly request storage access through the Storage Access API as soon as possible. An <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1469714">initial implementation of this API</a> is currently available in Nightly.</p>
-
-<h3 id="I_use_third-party_pixels_and_other_tools_to_measure_the_effectiveness_of_my_ad_campaigns._Will_I_still_be_able_to_measure_the_conversion_rate_of_my_ads">I use third-party pixels and other tools to measure the effectiveness of my ad campaigns. Will I still be able to measure the conversion rate of my ads?</h3>
-
-<p>This depends on how the third party has implemented the measurement tool, but generally ad conversion measurement will be more difficult. Consider the following examples:</p>
-
-<ol>
- <li>You run an ad on a social media website that is seen several times by a user, but never clicked. That user later visits your website, which includes a conversion tracking tag from the same social media website. This type of conversion is often referred to as a “view-through conversion.” Since the social media website does not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that most view-through conversion tracking techniques will no longer work, including those offered by display networks.</li>
- <li>You run an ad on a display network or social media website that is clicked by a user. That user lands on your website, which includes a conversion tracking tag from the same website that displayed your ad. This type of conversion is often referred to as a “click-through conversion.” Since the social media site or display network will not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that this version of click-through conversion will no longer work.</li>
- <li>You run an ad that appears on a social media website. A user clicks on your advertisement and is taken to a landing page that contains a conversion tracking tag from the third-party network. On the social media website, the network annotates the advertisement landing page URL with a query parameter that signals that the visit was the result of a click on an advertisement. On your website, the display network’s tag checks the URL query parameters and saves any ad tracking parameters to first-party storage. If a user later completes a conversion event, the network’s tag checks first-party storage to determine which click (or clicks) was responsible for the visit. We expect that click-through conversion implemented in this way will continue to work.</li>
-</ol>

+ 0 - 152
files/en-us/mozilla/firefox/privacy/tracking_protection/index.html

@@ -1,152 +0,0 @@
----
-title: Tracking Protection
-slug: Mozilla/Firefox/Privacy/Tracking_Protection
-tags:
-  - Privacy
-  - Private browsing
-  - blocking
-  - tracking
----
-<div><section class="Quick_links" id="Quick_Links">
-  <ol>
-    <li class="toggle">
-        <details>
-            <summary>Firefox developer release notes</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Add-ons</summary>
-            <ol>
-              <li><a href="/en-US/Add-ons/WebExtensions">Browser extensions</a></li>
-              <li><a href="/en-US/Add-ons/Themes">Themes</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Firefox internals</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/">Mozilla project</a></li>
-              <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a></li>
-              <li><a href="/en-US/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li>
-              <li><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li>
-              <li><a href="/en-US/docs/Mozilla/js-ctypes">JS-ctypes</a></li>
-              <li><a href="/en-US/docs/Mozilla/MathML_Project">MathML project</a></li>
-              <li><a href="/en-US/docs/Mozilla/MFBT">MFBT</a></li>
-              <li><a href="/en-US/docs/Mozilla/Projects">Mozilla projects</a></li>
-              <li><a href="/en-US/docs/Mozilla/Preferences">Preference system</a></li>
-              <li><a href="/en-US/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a></li>
-              <li><a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a></li>
-            </ol>
-        </details>
-    </li>
-    <li class="toggle">
-        <details>
-            <summary>Building and contributing</summary>
-            <ol>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li>
-              <li><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li>
-              <li><a href="/en-US/docs/Mozilla/Localization">Localization</a></li>
-              <li><a href="/en-US/docs/Mozilla/Mercurial">Mercurial</a></li>
-              <li><a href="/en-US/docs/Mozilla/QA">Quality assurance</a></li>
-              <li><a href="/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li>
-            </ol>
-        </details>
-    </li>
-  </ol>
-</section></div>
-
-<h2 id="What_is_tracking_protection">What is tracking protection?</h2>
-
-<p>Firefox Desktop and Firefox for Android include built-in tracking protection. In Private Browsing windows (tabs, in Firefox for Android), Firefox will block content loaded from domains that track users across sites.</p>
-
-<p>If blocked content is part of the page layout, users may notice layout issues where Firefox blocked these loads. Sometimes users won’t notice at all, if the page grid works such that other page elements slide in to fill holes left by blocked elements.</p>
-
-<p>When Firefox blocks content, it logs a message to the Web Console like this:</p>
-
-<pre>The resource at &quot;http://some/url&quot; was blocked because tracking protection is enabled.</pre>
-
-<p>Note that with Firefox for Android, you can access console output using the remote debugger.</p>
-
-<p><img alt="Page information showing possible blocked content." src="https://mdn.mozillademos.org/files/16583/blocked_content.png" style="border-style: solid; border-width: 1px; display: block; height: 384px; margin: 0px auto; width: 416px;"></p>
-
-<p>Click the ⓘ symbol in the address bar to view information about the currently loaded page. The popup that appears will notify you when content has been blocked.  You will also be able to disable tracking protection entirely if you choose by accessing the tracking settings.</p>
-
-<p>If tracking cookies were present, you would be able to view the list by clicking on &quot;Blocking Tracking Cookies&quot; in the above image to view the following popup:</p>
-
-<p><img alt src="https://mdn.mozillademos.org/files/16584/tracking_cookies.png" style="border-style: solid; border-width: 1px; display: block; height: 384px; margin: 0px auto; width: 416px;"></p>
-
-<p>You can click &quot;Manage Content Blocking&quot; to change the blocking settings:</p>
-
-<p><img alt src="https://mdn.mozillademos.org/files/16585/content_blocking.png" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p>
-
-<h2 id="How_does_Firefox_choose_what_to_block">How does Firefox choose what to block?</h2>
-
-<p>Content is blocked based on the domain from which it is to be loaded.</p>
-
-<p>Firefox ships with a list of sites which have been identified as engaging in cross-site tracking of users. When tracking protection is enabled, Firefox blocks content from sites in the list.</p>
-
-<p>Sites that track users are most commonly third-party advertising and analytics sites.</p>
-
-<h2 id="What_does_this_mean_for_your_website">What does this mean for your website?</h2>
-
-<p>Most obviously, it means that when tracking protection is enabled:</p>
-
-<ul>
- <li>content served from third-party trackers will not be visible to users</li>
- <li>your site won&apos;t be able to use third-party advertising or analytics services that engage in tracking</li>
-</ul>
-
-<p>More subtly, if other parts of your site depend on trackers being loaded, then these parts will also be broken when tracking protection is enabled. For example, if your site includes a callback that runs when content from a tracking site is loaded, then the callback will not execute.</p>
-
-<p>For example, you should not use Google Analytics in the following way:</p>
-
-<pre class="brush:html example-bad">&lt;a href=&quot;http://www.example.com&quot; onclick=&quot;trackLink(&apos;http://www.example.com&apos;, event);&quot;&gt;
-  Visit example.com
-&lt;/a&gt;
-
-&lt;script&gt;
-function trackLink(url,event) {
-    event.preventDefault();
-    ga(&apos;send&apos;, &apos;event&apos;, &apos;outbound&apos;, &apos;click&apos;, url, {
-     &apos;transport&apos;: &apos;beacon&apos;,
-     &apos;hitCallback&apos;: function() {
-       document.location = url;
-     }
-   });
-}
-&lt;/script&gt;</pre>
-
-<p>Instead, you should account for the case when Google Analytics is missing by checking to see if the ga object has initialized:</p>
-
-<pre class="brush:html example-good">&lt;a href=&quot;http://www.example.com&quot; onclick=&quot;trackLink(&apos;http://www.example.com&apos;, event);&quot;&gt;
-  Visit example.com
-&lt;/a&gt;
-
-&lt;script&gt;
-function trackLink(url,event) {
-    event.preventDefault();
-    if (window.ga &amp;&amp; <span class="pl-smi">ga</span>.loaded) {
-         ga(&apos;send&apos;, &apos;event&apos;, &apos;outbound&apos;, &apos;click&apos;, url, {
-         &apos;transport&apos;: &apos;beacon&apos;,
-         &apos;hitCallback&apos;: function() { document.location = url; }
-       });
-    } else {
-        document.location = url;
-    }
-}
-&lt;/script&gt;
-</pre>
-
-<p>More information about this technique is available at <a href="https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/">Google Analytics, Privacy, and Event Tracking</a>.</p>
-
-<div class="note notecard">
-<p><strong>Note:</strong> Depending on a third party in this way is not a good practice anyway, because then your site can be broken if the third party is slow or unavailable, or if the tracker has been blocked by an add-on.</p>
-</div>

+ 0 - 89
files/en-us/mozilla/firefox/privacy/tracking_protection/raw.html

@@ -1,89 +0,0 @@
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="What_is_tracking_protection">What is tracking protection?</h2>
-
-<p>Firefox Desktop and Firefox for Android include built-in tracking protection. In Private Browsing windows (tabs, in Firefox for Android), Firefox will block content loaded from domains that track users across sites.</p>
-
-<p>If blocked content is part of the page layout, users may notice layout issues where Firefox blocked these loads. Sometimes users won’t notice at all, if the page grid works such that other page elements slide in to fill holes left by blocked elements.</p>
-
-<p>When Firefox blocks content, it logs a message to the Web Console like this:</p>
-
-<pre>The resource at "http://some/url" was blocked because tracking protection is enabled.</pre>
-
-<p>Note that with Firefox for Android, you can access console output using the remote debugger.</p>
-
-<p><img alt="Page information showing possible blocked content." src="https://mdn.mozillademos.org/files/16583/blocked_content.png" style="border-style: solid; border-width: 1px; display: block; height: 384px; margin: 0px auto; width: 416px;"></p>
-
-<p>Click the ⓘ symbol in the address bar to view information about the currently loaded page. The popup that appears will notify you when content has been blocked.  You will also be able to disable tracking protection entirely if you choose by accessing the tracking settings.</p>
-
-<p>If tracking cookies were present, you would be able to view the list by clicking on "Blocking Tracking Cookies" in the above image to view the following popup:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/16584/tracking_cookies.png" style="border-style: solid; border-width: 1px; display: block; height: 384px; margin: 0px auto; width: 416px;"></p>
-
-<p>You can click "Manage Content Blocking" to change the blocking settings:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/16585/content_blocking.png" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p>
-
-<h2 id="How_does_Firefox_choose_what_to_block">How does Firefox choose what to block?</h2>
-
-<p>Content is blocked based on the domain from which it is to be loaded.</p>
-
-<p>Firefox ships with a list of sites which have been identified as engaging in cross-site tracking of users. When tracking protection is enabled, Firefox blocks content from sites in the list.</p>
-
-<p>Sites that track users are most commonly third-party advertising and analytics sites.</p>
-
-<h2 id="What_does_this_mean_for_your_website">What does this mean for your website?</h2>
-
-<p>Most obviously, it means that when tracking protection is enabled:</p>
-
-<ul>
- <li>content served from third-party trackers will not be visible to users</li>
- <li>your site won't be able to use third-party advertising or analytics services that engage in tracking</li>
-</ul>
-
-<p>More subtly, if other parts of your site depend on trackers being loaded, then these parts will also be broken when tracking protection is enabled. For example, if your site includes a callback that runs when content from a tracking site is loaded, then the callback will not execute.</p>
-
-<p>For example, you should not use Google Analytics in the following way:</p>
-
-<pre class="brush:html example-bad">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;
-  Visit example.com
-&lt;/a&gt;
-
-&lt;script&gt;
-function trackLink(url,event) {
-    event.preventDefault();
-    ga('send', 'event', 'outbound', 'click', url, {
-     'transport': 'beacon',
-     'hitCallback': function() {
-       document.location = url;
-     }
-   });
-}
-&lt;/script&gt;</pre>
-
-<p>Instead, you should account for the case when Google Analytics is missing by checking to see if the ga object has initialized:</p>
-
-<pre class="brush:html example-good">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;
-  Visit example.com
-&lt;/a&gt;
-
-&lt;script&gt;
-function trackLink(url,event) {
-    event.preventDefault();
-    if (window.ga &amp;&amp; <span class="pl-smi">ga</span>.loaded) {
-         ga('send', 'event', 'outbound', 'click', url, {
-         'transport': 'beacon',
-         'hitCallback': function() { document.location = url; }
-       });
-    } else {
-        document.location = url;
-    }
-}
-&lt;/script&gt;
-</pre>
-
-<p>More information about this technique is available at <a href="https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/">Google Analytics, Privacy, and Event Tracking</a>.</p>
-
-<div class="blockIndicator note">
-<p><strong>Note:</strong> Depending on a third party in this way is not a good practice anyway, because then your site can be broken if the third party is slow or unavailable, or if the tracker has been blocked by an add-on.</p>
-</div>