45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
'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();
|
|
}
|
|
}
|