diff options
Diffstat (limited to 'dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js')
-rw-r--r-- | dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js b/dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js new file mode 100644 index 000000000..8d710139f --- /dev/null +++ b/dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js @@ -0,0 +1,44 @@ +'use strict'; + +function EnsureExt(extName, shouldHave=true) { + EnsureExtFor('webgl', extName, shouldHave); + EnsureExtFor('webgl2', extName, shouldHave); +} + +function EnsureExtFor(contextType, extName, shouldHave=true) { + var c = document.createElement('canvas'); + var gl = c.getContext(contextType); + + if (!gl) { + todo(false, 'Failed to create context: ' + contextType); + return; + } + + var ext = gl.getExtension(extName); + var haveText = ' have ' + contextType + ' extension ' + extName + '.'; + if (shouldHave) { + ok(ext, 'Should' + haveText); + } else { + ok(!ext, 'Should not' + haveText); + } +} + +function Lastly_WithDraftExtsEnabled(func) { + SimpleTest.waitForExplicitFinish(); + + var fnEnsure = function() { + func(); + SimpleTest.finish(); + }; + + if ('SpecialPowers' in window) { + var prefStateList = [ + ['webgl.enable-draft-extensions', true], + ]; + var prefEnv = {'set': prefStateList}; + SpecialPowers.pushPrefEnv(prefEnv, fnEnsure); + } else { + console.log('Couldn\'t use SpecialPowers to enable draft extensions.'); + fnEnsure(); + } +} |