commit 44614fee5f456bf9fe4b75d43b96f84b5bb3e7df
parent d16c83fddd2d33ba8d911df0b058efa44cd1ec61
Author: Tim Huang <tihuang@mozilla.com>
Date: Wed, 17 Dec 2025 08:56:18 +0000
Bug 2005485 - Record tracking cookie blocked in the tracking DB when trackers access partitioned cookies. r=manuel
Differential Revision: https://phabricator.services.mozilla.com/D275978
Diffstat:
3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/browser/base/content/test/protectionsUI/browser_protectionsUI_tracker_cookies_subview.js b/browser/base/content/test/protectionsUI/browser_protectionsUI_tracker_cookies_subview.js
@@ -127,3 +127,35 @@ add_task(async function testTrackerCookiesSubView() {
BrowserTestUtils.removeTab(tab);
});
+
+// Verify that the partitioned tracker cookies are recorded in the tracking DB.
+add_task(async function testPartitionedTrackerCookiesInTrackingDB() {
+ await TrackingDBService.clearAll();
+
+ // Open a tab which embeds a third-party tracker iframe which sets a cookie.
+ let tab = await BrowserTestUtils.openNewForegroundTab({
+ url: TEST_PAGE,
+ gBrowser,
+ });
+
+ let promise = BrowserTestUtils.waitForCondition(async () => {
+ let foundTrackerCookieEvent = false;
+ let events = await TrackingDBService.getEventsByDateRange(0, Date.now());
+
+ for (let event of events) {
+ let type = event.getResultByName("type");
+ if (type == Ci.nsITrackingDBService.TRACKING_COOKIES_ID) {
+ foundTrackerCookieEvent = true;
+ break;
+ }
+ }
+
+ return foundTrackerCookieEvent;
+ });
+
+ BrowserTestUtils.removeTab(tab);
+
+ await promise;
+
+ ok(true, "Partitioned tracker cookies are recorded in the tracking DB");
+});
diff --git a/browser/base/content/test/protectionsUI/cookieServer.sjs b/browser/base/content/test/protectionsUI/cookieServer.sjs
@@ -27,8 +27,6 @@ function handleRequest(request, response) {
"Set-Cookie",
"foopy=1; SameSite=None; Secure; Partitioned"
);
-
- dump(" ==== TIM: cookie served\n");
} else {
response.setHeader("Set-Cookie", "foopy=1");
response.write("cookie served");
diff --git a/toolkit/components/antitracking/TrackingDBService.sys.mjs b/toolkit/components/antitracking/TrackingDBService.sys.mjs
@@ -245,7 +245,9 @@ TrackingDBService.prototype = {
// If a tracking cookie was blocked attribute it to tracking cookies.
// This includes social tracking cookies since STP is not enabled.
state & Ci.nsIWebProgressListener.STATE_COOKIES_BLOCKED_TRACKER ||
- state & Ci.nsIWebProgressListener.STATE_COOKIES_BLOCKED_SOCIALTRACKER
+ state &
+ Ci.nsIWebProgressListener.STATE_COOKIES_BLOCKED_SOCIALTRACKER ||
+ state & Ci.nsIWebProgressListener.STATE_COOKIES_PARTITIONED_TRACKER
) {
result = Ci.nsITrackingDBService.TRACKING_COOKIES_ID;
} else if (