test_webgl_constant_vendor_rfp.html (1771B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>WebGL Constant Vendor 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 WebGLVendorConstant 10 await SpecialPowers.pushPrefEnv({ 11 set: [ 12 ["privacy.resistFingerprinting", true], 13 ["privacy.fingerprintingProtection", true], 14 ["privacy.fingerprintingProtection.overrides", "+WebGLVendorConstant"], 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 with RFP"); 36 SimpleTest.finish(); 37 return; 38 } 39 40 // With RFP enabled, WebGLRenderInfo takes precedence over WebGLVendorConstant 41 // The vendor should be "Mozilla" 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>