From 0ba66f9f12df890341e4aa6b8284e961846dc348 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sat, 25 Aug 2018 14:07:59 +0200 Subject: [PATCH] Fix the error for invalid arrays passed to gl.vertexAttrib*v() --- .../script/dom/webglrenderingcontext.rs | 12 ++++++--- .../attribs/gl-vertex-attrib.html.ini | 25 ------------------- 2 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 tests/wpt/webgl/meta/conformance/attribs/gl-vertex-attrib.html.ini diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 4aa6c047a1b..bb1cace295e 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -3643,7 +3643,8 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { Float32ArrayOrUnrestrictedFloatSequence::UnrestrictedFloatSequence(v) => v, }; if values.len() < 1 { - return self.webgl_error(InvalidOperation); + // https://github.com/KhronosGroup/WebGL/issues/2700 + return self.webgl_error(InvalidValue); } self.vertex_attrib(indx, values[0], 0f32, 0f32, 1f32); } @@ -3660,7 +3661,8 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { Float32ArrayOrUnrestrictedFloatSequence::UnrestrictedFloatSequence(v) => v, }; if values.len() < 2 { - return self.webgl_error(InvalidOperation); + // https://github.com/KhronosGroup/WebGL/issues/2700 + return self.webgl_error(InvalidValue); } self.vertex_attrib(indx, values[0], values[1], 0f32, 1f32); } @@ -3677,7 +3679,8 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { Float32ArrayOrUnrestrictedFloatSequence::UnrestrictedFloatSequence(v) => v, }; if values.len() < 3 { - return self.webgl_error(InvalidOperation); + // https://github.com/KhronosGroup/WebGL/issues/2700 + return self.webgl_error(InvalidValue); } self.vertex_attrib(indx, values[0], values[1], values[2], 1f32); } @@ -3694,7 +3697,8 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { Float32ArrayOrUnrestrictedFloatSequence::UnrestrictedFloatSequence(v) => v, }; if values.len() < 4 { - return self.webgl_error(InvalidOperation); + // https://github.com/KhronosGroup/WebGL/issues/2700 + return self.webgl_error(InvalidValue); } self.vertex_attrib(indx, values[0], values[1], values[2], values[3]); } diff --git a/tests/wpt/webgl/meta/conformance/attribs/gl-vertex-attrib.html.ini b/tests/wpt/webgl/meta/conformance/attribs/gl-vertex-attrib.html.ini deleted file mode 100644 index e8cfa8be8e7..00000000000 --- a/tests/wpt/webgl/meta/conformance/attribs/gl-vertex-attrib.html.ini +++ /dev/null @@ -1,25 +0,0 @@ -[gl-vertex-attrib.html] - [WebGL test #979: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #978: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #976: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #980: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #975: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #977: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #982: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL - - [WebGL test #981: getError expected: INVALID_VALUE. Was INVALID_OPERATION : ] - expected: FAIL -