diff --git a/content/canvas/test/webgl/non-conf-tests/driver-info.js b/content/canvas/test/webgl/non-conf-tests/driver-info.js
index 14089ea2e62e..9ef2c93f3107 100644
--- a/content/canvas/test/webgl/non-conf-tests/driver-info.js
+++ b/content/canvas/test/webgl/non-conf-tests/driver-info.js
@@ -134,6 +134,7 @@ DriverInfo = (function() {
getOS: function() { return kOS; },
getDriver: function() { return kDriver; },
getOSVersion: function() { return kOSVersion; },
+ hasWebGL: function { return kHasWebGL; },
};
})();
diff --git a/content/canvas/test/webgl/non-conf-tests/mochitest.ini b/content/canvas/test/webgl/non-conf-tests/mochitest.ini
index 22642249b070..fbe9d6c4035b 100644
--- a/content/canvas/test/webgl/non-conf-tests/mochitest.ini
+++ b/content/canvas/test/webgl/non-conf-tests/mochitest.ini
@@ -3,6 +3,7 @@ support-files =
driver-info.js
webgl-util.js
+[test_highp_fs.html]
[test_webgl_available.html]
[test_webgl_conformance.html]
[test_webgl_request_mismatch.html]
diff --git a/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html b/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html
new file mode 100644
index 000000000000..e1d9911128e7
--- /dev/null
+++ b/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html
@@ -0,0 +1,63 @@
+
+
WebGL test: `highp` support
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/canvas/test/webgl/non-conf-tests/webgl-util.js b/content/canvas/test/webgl/non-conf-tests/webgl-util.js
index 9936f8e0c200..da29327048b5 100644
--- a/content/canvas/test/webgl/non-conf-tests/webgl-util.js
+++ b/content/canvas/test/webgl/non-conf-tests/webgl-util.js
@@ -1,6 +1,6 @@
WebGLUtil = (function() {
// ---------------------------------------------------------------------------
- // Error handling
+ // Error handling (for obvious failures, such as invalid element ids)
function defaultErrorFunc(str) {
console.log('Error: ' + str);
@@ -15,6 +15,22 @@ WebGLUtil = (function() {
gErrorFunc(str);
}
+ // ---------------------------------------------------------------------------
+ // Warning handling (for failures that may be intentional)
+
+ function defaultWarningFunc(str) {
+ console.log('Warning: ' + str);
+ }
+
+ var gWarningFunc = defaultWarningFunc;
+ function setWarningFunc(func) {
+ gWarningFunc = func;
+ }
+
+ function warning(str) {
+ gWarningFunc(str);
+ }
+
// ---------------------------------------------------------------------------
// WebGL helpers
@@ -63,19 +79,19 @@ WebGLUtil = (function() {
return null;
}
- var src = getContentById(id);
+ var src = getContentFromElem(elem);
var shader;
if (elem.type == "x-shader/x-fragment") {
shader = gl.createShader(gl.FRAGMENT_SHADER);
- } else if (shaderScript.type == "x-shader/x-vertex") {
+ } else if (elem.type == "x-shader/x-vertex") {
shader = gl.createShader(gl.VERTEX_SHADER);
} else {
error('Bad MIME type for shader \'' + id + '\': ' + elem.type + '.');
return null;
}
- gl.shaderSource(shader, str);
+ gl.shaderSource(shader, src);
gl.compileShader(shader);
return shader;
@@ -93,11 +109,11 @@ WebGLUtil = (function() {
gl.linkProgram(prog);
if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) {
- var str = "Shader program linking failed:\n";
- str += "Shader program info log:\n" + gl.getProgramInfoLog(prog) + "\n\n";
- str += "Vert shader log:\n" + gl.getShaderInfoLog(vs) + "\n\n";
- str += "Frag shader log:\n" + gl.getShaderInfoLog(fs);
- error(str);
+ var str = "Shader program linking failed:";
+ str += "\nShader program info log:\n" + gl.getProgramInfoLog(prog);
+ str += "\n\nVert shader log:\n" + gl.getShaderInfoLog(vs);
+ str += "\n\nFrag shader log:\n" + gl.getShaderInfoLog(fs);
+ warning(str);
return null;
}
@@ -106,6 +122,7 @@ WebGLUtil = (function() {
return {
setErrorFunc: setErrorFunc,
+ setWarningFunc: setWarningFunc,
getWebGL: getWebGL,
createShaderById: createShaderById,