tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 05e11564b0f449829262ded7f2fc2809eb3dc5ce
parent 2a597f21c28345e274cc9ace5e52d73539a7fb9c
Author: Tom Ritter <tom@mozilla.com>
Date:   Fri, 19 Dec 2025 14:47:59 +0000

Bug 2005273: Add sources and combinations we know occur in the wild r=timhuang

Differential Revision: https://phabricator.services.mozilla.com/D276878

Diffstat:
Mtoolkit/components/antitracking/metrics.yaml | 9++++++---
Mtoolkit/components/resistfingerprinting/nsRFPService.cpp | 18++++++++++++++----
Mtoolkit/components/resistfingerprinting/nsRFPService.h | 6++++++
3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/toolkit/components/antitracking/metrics.yaml b/toolkit/components/antitracking/metrics.yaml @@ -174,7 +174,10 @@ contentblocking: # 2^33 - 2^40 "8589934592", "17179869184", "34359738368", "68719476736", "137438953472", "274877906944", "549755813888", "1099511627776", # Known Combinations - "80", "144", "208", "8388736" + "17", "65", "80", "81", "96", "144", "145", "192", "208", "209", "241", "1040", "1041", "1088", "1104", "1152", "1168", + "1169", "1216", "1232", "1233", "1265", "8388624", "8388688", "8388736", "8388752", "8388816", "2147483649", "2147483665", + "2147483712", "2147483713", "2147483793", "4294967297", "4294967312", "4294967328", "4294967360", "4294967361", "4294967376", + "4294967424", "4294967440", "4294967504", "4294968384", "4294968400", "4294968529", "36507222016", "40802189312" ] bugs: - https://bugzilla.mozilla.org/show_bug.cgi?id=1873716 @@ -214,9 +217,9 @@ contentblocking: "80", "144", "208", "8388736" ] bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id= + - https://bugzilla.mozilla.org/show_bug.cgi?id=1873716 data_reviews: - - https://bugzilla.mozilla.org/show_bug.cgi?id= + - https://bugzilla.mozilla.org/show_bug.cgi?id=1847990 notification_emails: - seceng-telemetry@mozilla.com expires: 165 diff --git a/toolkit/components/resistfingerprinting/nsRFPService.cpp b/toolkit/components/resistfingerprinting/nsRFPService.cpp @@ -2211,6 +2211,20 @@ CanvasUsageSource CanvasUsage::GetCanvasUsageSource( logImpossible("Unknown API for Canvas2D"); return CanvasUsageSource::Impossible; } + case dom::CanvasContextType::OffscreenCanvas2D: + // Very confused about how we get an OffscreenCanvas2D context without + // an OffscreenCanvas but it does happen in the wild... + switch (api) { + case CanvasExtractionAPI::GetImageData: + return CanvasUsageSource:: + MainThread_Canvas_OffscreenCanvas2D_getImageData; + case CanvasExtractionAPI::ToBlob: + return CanvasUsageSource:: + MainThread_Canvas_OffscreenCanvas2D_toBlob; + default: + logImpossible("Unsupported API for OffscreenCanvas2D"); + return CanvasUsageSource::Impossible; + } case dom::CanvasContextType::WebGL1: case dom::CanvasContextType::WebGL2: switch (api) { @@ -2286,10 +2300,6 @@ CanvasUsageSource CanvasUsage::GetCanvasUsageSource( return CanvasUsageSource::Impossible; } case dom::CanvasContextType::OffscreenCanvas2D: - if (isMainThread) { - logImpossible("OffscreenCanvas2D on main thread"); - return CanvasUsageSource::Impossible; - } switch (api) { case CanvasExtractionAPI::GetImageData: return Worker_OffscreenCanvasCanvas2D_Canvas2D_getImageData; diff --git a/toolkit/components/resistfingerprinting/nsRFPService.h b/toolkit/components/resistfingerprinting/nsRFPService.h @@ -305,6 +305,12 @@ enum CanvasUsageSource : uint64_t { Worker_OffscreenCanvas_WebGPU_toBlob = 1llu << 36, Worker_OffscreenCanvas_WebGPU_getImageData = 1llu << 37, + // --- New entires added here to preserve original values (no reordering!) + MainThread_Canvas_OffscreenCanvas2D_getImageData = 1llu << 38, + MainThread_Canvas_OffscreenCanvas2D_toBlob = 1llu << 39, + + // After you go past 40 - metrics.yaml will need to be updated + }; MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(CanvasUsageSource); nsCString CanvasUsageSourceToString(CanvasUsageSource aSource);