summaryrefslogtreecommitdiffstats
path: root/toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js')
-rw-r--r--toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js b/toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js
new file mode 100644
index 0000000000..d80abfdc81
--- /dev/null
+++ b/toolkit/components/resistfingerprinting/tests/browser/browser_rfp_canvasplaceholder_pdfjs.js
@@ -0,0 +1,52 @@
+const PDF_FILE =
+ getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content",
+ "https://example.com"
+ ) + "file_pdf.pdf";
+
+add_task(async function canvas_placeholder_pdfjs() {
+ await SpecialPowers.pushPrefEnv({
+ set: [["privacy.resistFingerprinting", true]],
+ });
+
+ const tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PDF_FILE);
+
+ const data = await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+ function extractCanvasData() {
+ const canvas = document.createElement("canvas");
+ canvas.width = 10;
+ canvas.height = 10;
+
+ const context = canvas.getContext("2d");
+
+ context.fillStyle = "#332211";
+ context.fillRect(0, 0, 10, 10);
+
+ // Add the canvas element to the document
+ document.body.appendChild(canvas);
+
+ return context.getImageData(0, 0, 10, 10).data;
+ }
+
+ return content.eval(`(${extractCanvasData})()`);
+ });
+
+ is(data.length, 10 * 10 * 4, "correct canvas data size");
+
+ let failure = false;
+ for (var i = 0; i < 10 * 10 * 4; i += 4) {
+ if (
+ data[i] != 0x33 ||
+ data[i + 1] != 0x22 ||
+ data[i + 2] != 0x11 ||
+ data[i + 3] != 0xff
+ ) {
+ ok(false, `incorrect data ${data.slice(i, i + 4)} @ ${i}..${i + 3}`);
+ failure = true;
+ break;
+ }
+ }
+ ok(!failure, "canvas is correct");
+
+ BrowserTestUtils.removeTab(tab);
+});