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.js44
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();
+ }
+}