зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1722782 - Re-enable but deprecate WEBGL_debug_renderer_info. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D121149
This commit is contained in:
Родитель
0edcc72b48
Коммит
9ce93546e4
|
@ -197,8 +197,14 @@ RefPtr<ClientWebGLExtensionBase> ClientWebGLContext::GetExtension(
|
|||
return new ClientWebGLExtensionCompressedTextureS3TC(*this);
|
||||
case WebGLExtensionID::WEBGL_compressed_texture_s3tc_srgb:
|
||||
return new ClientWebGLExtensionCompressedTextureS3TC_SRGB(*this);
|
||||
case WebGLExtensionID::WEBGL_debug_renderer_info:
|
||||
case WebGLExtensionID::WEBGL_debug_renderer_info: {
|
||||
if (callerType != dom::CallerType::System) {
|
||||
JsWarning(
|
||||
"WEBGL_debug_renderer_info is deprecated in Firefox and will "
|
||||
"be removed. Please use RENDERER.");
|
||||
}
|
||||
return new ClientWebGLExtensionDebugRendererInfo(*this);
|
||||
}
|
||||
case WebGLExtensionID::WEBGL_debug_shaders:
|
||||
return new ClientWebGLExtensionDebugShaders(*this);
|
||||
case WebGLExtensionID::WEBGL_depth_texture:
|
||||
|
|
|
@ -31,7 +31,7 @@ var defaultExts = [
|
|||
['OES_texture_half_float_linear' , [ENSURE , FORBID ]],
|
||||
['OES_vertex_array_object' , [ENSURE , FORBID ]],
|
||||
['WEBGL_compressed_texture_s3tc' , [MACHINE_SPECIFIC, MACHINE_SPECIFIC]],
|
||||
['WEBGL_debug_renderer_info' , [FORBID , FORBID ]],
|
||||
['WEBGL_debug_renderer_info' , [ENSURE , ENSURE ]],
|
||||
['WEBGL_debug_shaders' , [ENSURE , ENSURE ]],
|
||||
['WEBGL_depth_texture' , [MACHINE_SPECIFIC, FORBID ]],
|
||||
['WEBGL_draw_buffers' , [MACHINE_SPECIFIC, FORBID ]],
|
||||
|
|
|
@ -53,9 +53,23 @@ SimpleTest = {
|
|||
};
|
||||
|
||||
SpecialPowers = {
|
||||
pushPrefEnv: (env, func) => {
|
||||
console.log('SpecialPowers.pushPrefEnv: ' + JSON.stringify(env));
|
||||
setTimeout(func, 0);
|
||||
pushPrefEnv: async (env, callback = null) => {
|
||||
console.log(`SpecialPowers.pushPrefEnv(${JSON.stringify(env)})`);
|
||||
await new Promise(res => {
|
||||
setTimeout(res, 0);
|
||||
});
|
||||
if (callback) {
|
||||
await callback();
|
||||
}
|
||||
},
|
||||
popPrefEnv: async (callback = null) => {
|
||||
console.log('SpecialPowers.popPrefEnv()');
|
||||
await new Promise(res => {
|
||||
setTimeout(res, 0);
|
||||
});
|
||||
if (callback) {
|
||||
await callback();
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -60,13 +60,17 @@ SimpleTest.waitForExplicitFinish();
|
|||
return;
|
||||
}
|
||||
|
||||
await asyncPushPrefEnv({'set': [
|
||||
await SpecialPowers.pushPrefEnv({'set': [
|
||||
['webgl.override-unmasked-renderer', RTX3070_R],
|
||||
['webgl.override-unmasked-vendor', RTX3070_V],
|
||||
]});
|
||||
|
||||
// -
|
||||
// Initial state
|
||||
// Test disabled
|
||||
|
||||
await SpecialPowers.pushPrefEnv({'set': [
|
||||
['webgl.enable-debug-renderer-info', false],
|
||||
]});
|
||||
|
||||
ext = gl.getExtension('WEBGL_debug_renderer_info');
|
||||
ok(!ext,
|
||||
|
@ -78,53 +82,56 @@ SimpleTest.waitForExplicitFinish();
|
|||
vendor: 'Mozilla',
|
||||
};
|
||||
const was = getStrings();
|
||||
expectJsonEqual(was, EXPECTED, 'v92 behavior');
|
||||
expectJsonEqual(was, EXPECTED, 'v92 behavior w/o ext');
|
||||
}
|
||||
|
||||
// -
|
||||
// Enable extension
|
||||
await SpecialPowers.popPrefEnv();
|
||||
|
||||
await asyncPushPrefEnv({'set': [
|
||||
['webgl.enable-debug-renderer-info', true],
|
||||
// -
|
||||
// Test RFP
|
||||
|
||||
await SpecialPowers.pushPrefEnv({'set': [
|
||||
['privacy.resistFingerprinting', true],
|
||||
]});
|
||||
|
||||
ext = gl.getExtension('WEBGL_debug_renderer_info');
|
||||
ok(ext, 'When pref enabled: Should have access to \'WEBGL_debug_renderer_info\'.');
|
||||
|
||||
{
|
||||
const EXPECTED = {
|
||||
renderer: RTX3070_R_SANITIZED,
|
||||
vendor: 'Mozilla',
|
||||
unmasked_renderer: RTX3070_R,
|
||||
unmasked_vendor: RTX3070_V,
|
||||
};
|
||||
const was = getStrings();
|
||||
expectJsonEqual(was, EXPECTED, 'v92 behavior w/ext');
|
||||
}
|
||||
|
||||
// -
|
||||
// Disable detailed RENDERER
|
||||
|
||||
await asyncPushPrefEnv({'set': [
|
||||
['webgl.enable-renderer-query', false],
|
||||
]});
|
||||
ok(!ext,
|
||||
'With RFP: Should not have access to \'WEBGL_debug_renderer_info\'.');
|
||||
|
||||
{
|
||||
const EXPECTED = {
|
||||
renderer: 'Mozilla',
|
||||
vendor: 'Mozilla',
|
||||
unmasked_renderer: RTX3070_R,
|
||||
};
|
||||
const was = getStrings();
|
||||
expectJsonEqual(was, EXPECTED, 'RFP behavior');
|
||||
}
|
||||
|
||||
await SpecialPowers.popPrefEnv();
|
||||
|
||||
// -
|
||||
// Test default state (v92+)
|
||||
|
||||
ext = gl.getExtension('WEBGL_debug_renderer_info');
|
||||
ok(ext,
|
||||
'By default: Should have access to \'WEBGL_debug_renderer_info\'.');
|
||||
|
||||
{
|
||||
const EXPECTED = {
|
||||
renderer: RTX3070_R_SANITIZED,
|
||||
vendor: 'Mozilla',
|
||||
unmasked_renderer: RTX3070_R_SANITIZED,
|
||||
unmasked_vendor: RTX3070_V,
|
||||
};
|
||||
const was = getStrings();
|
||||
expectJsonEqual(was, EXPECTED, 'v90 behavior');
|
||||
expectJsonEqual(was, EXPECTED, 'v92 behavior');
|
||||
}
|
||||
|
||||
// -
|
||||
// Sanitize even UNMASKED_RENDERER
|
||||
// Test v91 behavior
|
||||
|
||||
await asyncPushPrefEnv({'set': [
|
||||
['webgl.sanitize-unmasked-renderer', true],
|
||||
await SpecialPowers.pushPrefEnv({'set': [
|
||||
['webgl.enable-renderer-query', false],
|
||||
]});
|
||||
|
||||
{
|
||||
|
@ -138,6 +145,24 @@ SimpleTest.waitForExplicitFinish();
|
|||
expectJsonEqual(was, EXPECTED, 'v91 behavior');
|
||||
}
|
||||
|
||||
// -
|
||||
// Test v90 behavior
|
||||
|
||||
await SpecialPowers.pushPrefEnv({'set': [
|
||||
['webgl.sanitize-unmasked-renderer', false],
|
||||
]});
|
||||
|
||||
{
|
||||
const EXPECTED = {
|
||||
renderer: 'Mozilla',
|
||||
vendor: 'Mozilla',
|
||||
unmasked_renderer: RTX3070_R,
|
||||
unmasked_vendor: RTX3070_V,
|
||||
};
|
||||
const was = getStrings();
|
||||
expectJsonEqual(was, EXPECTED, 'v90 behavior');
|
||||
}
|
||||
|
||||
// -
|
||||
|
||||
ok(true, 'Test complete.');
|
||||
|
|
|
@ -11371,7 +11371,7 @@
|
|||
|
||||
- name: webgl.enable-debug-renderer-info
|
||||
type: RelaxedAtomicBool
|
||||
value: false
|
||||
value: true
|
||||
mirror: always
|
||||
|
||||
- name: webgl.enable-draft-extensions
|
||||
|
@ -11495,7 +11495,7 @@
|
|||
|
||||
- name: webgl.sanitize-unmasked-renderer
|
||||
type: RelaxedAtomicBool
|
||||
value: false
|
||||
value: true
|
||||
mirror: always
|
||||
|
||||
- name: webgl.allow-immediate-queries
|
||||
|
|
Загрузка…
Ссылка в новой задаче