summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js
diff options
context:
space:
mode:
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.js42
1 files changed, 42 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 0000000000..850a27caaf
--- /dev/null
+++ b/dom/canvas/test/webgl-mochitest/ensure-exts/ensure-ext.js
@@ -0,0 +1,42 @@
+"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();
+ }
+}