tor-browser

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

test_webgl_vendor_randomize_rfp.html (1797B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>WebGL Vendor Randomize with RFP - WebGLRenderInfo takes precedence</title>
      4 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      5 <script>
      6 /* global SimpleTest SpecialPowers */
      7 SimpleTest.waitForExplicitFinish();
      8 document.addEventListener("DOMContentLoaded", async function() {
      9  // Enable RFP - WebGLRenderInfo should take precedence over WebGLVendorRandomize
     10  await SpecialPowers.pushPrefEnv({
     11    set: [
     12 ["privacy.resistFingerprinting", true],
     13 ["privacy.fingerprintingProtection.overrides", "+WebGLVendorRandomize"],
     14 ["privacy.fingerprintingProtection", true],
     15    ]
     16  });
     17 
     18  let canvas = document.body.appendChild(document.createElement("canvas"));
     19  if (!canvas) {
     20    SimpleTest.ok(false, "Cannot create canvas");
     21    SimpleTest.finish();
     22    return;
     23  }
     24 
     25  let gl = canvas.getContext("webgl");
     26  if (!gl) {
     27    SimpleTest.ok(false, "Cannot get WebGL context");
     28    SimpleTest.finish();
     29    return;
     30  }
     31 
     32  // Try to get the WEBGL_debug_renderer_info extension
     33  let ext = gl.getExtension("WEBGL_debug_renderer_info");
     34  if (!ext) {
     35    SimpleTest.ok(false, "WEBGL_debug_renderer_info extension should be available in RFP");
     36    SimpleTest.finish();
     37    return;
     38  }
     39 
     40  // With RFP enabled, WebGLRenderInfo takes precedence over WebGLVendorRandomize
     41  // The vendor should be "Mozilla", NOT "Mozilla <Base64>"
     42  let vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
     43  SimpleTest.is(vendor, "Mozilla", "UNMASKED_VENDOR_WEBGL should be 'Mozilla' with RFP enabled (WebGLRenderInfo precedence)");
     44 
     45  // Also check renderer for completeness
     46  let renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);
     47  SimpleTest.is(renderer, "Mozilla", "UNMASKED_RENDERER_WEBGL should be 'Mozilla' with RFP enabled");
     48 
     49  SimpleTest.finish();
     50 });
     51 </script>