Bug 1966860 - Enable WEBGL_debug_renderer_info extension and spoof vendor. a=dmeehan

Original Revision: https://phabricator.services.mozilla.com/D249777

Differential Revision: https://phabricator.services.mozilla.com/D251701
This commit is contained in:
Fatih Kilic
2025-05-29 13:10:09 +00:00
committed by dmeehan@mozilla.com
parent 3b461172fe
commit 8345f6ecad
2 changed files with 13 additions and 8 deletions

View File

@@ -2400,14 +2400,20 @@ void ClientWebGLContext::GetParameter(JSContext* cx, GLenum pname,
switch (pname) {
case dom::WEBGL_debug_renderer_info_Binding::UNMASKED_RENDERER_WEBGL:
ret = GetUnmaskedRenderer();
if (ret && StaticPrefs::webgl_sanitize_unmasked_renderer()) {
*ret = webgl::SanitizeRenderer(*ret);
if (ShouldResistFingerprinting(RFPTarget::WebGLRenderInfo)) {
ret = Some("Mozilla"_ns);
} else {
ret = GetUnmaskedRenderer();
if (ret && StaticPrefs::webgl_sanitize_unmasked_renderer()) {
ret = Some(webgl::SanitizeRenderer(*ret));
}
}
break;
case dom::WEBGL_debug_renderer_info_Binding::UNMASKED_VENDOR_WEBGL:
ret = GetUnmaskedVendor();
ret = ShouldResistFingerprinting(RFPTarget::WebGLRenderInfo)
? Some("Mozilla"_ns)
: GetUnmaskedVendor();
break;
default:
@@ -5896,8 +5902,7 @@ bool ClientWebGLContext::IsExtensionForbiddenForCaller(
return true;
case WebGLExtensionID::WEBGL_debug_renderer_info:
return ShouldResistFingerprinting(RFPTarget::WebGLRenderInfo) ||
!StaticPrefs::webgl_enable_debug_renderer_info();
return !StaticPrefs::webgl_enable_debug_renderer_info();
case WebGLExtensionID::WEBGL_debug_shaders:
return ShouldResistFingerprinting(RFPTarget::WebGLRenderInfo);