Source code
Revision control
Copy as Markdown
Other Tools
"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();
}
}