<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[179859] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/179859">179859</a></dd>
<dt>Author</dt> <dd>roger_fong@apple.com</dd>
<dt>Date</dt> <dd>2015-02-09 17:02:28 -0800 (Mon, 09 Feb 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>WebGL: Update 1.0.2 conformance layout tests and address new failure.
https://bugs.webkit.org/show_bug.cgi?id=141408.
<rdar://problem/19773236>
Reviewed by Dean Jackson.
Tests covered by updated 1.0.2 conformance tests.
* html/canvas/WebGLRenderingContextBase.cpp:
Return null string instead of empty string if parameter validation fails.
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):
* fast/canvas/webgl/bad-arguments-test-expected.txt: Removed.
* fast/canvas/webgl/bad-arguments-test.html: Removed. Redundant test case.
* webgl/1.0.2/resources/webgl_test_files/README.md:
* webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js:
(VBO.prototype.use):
* webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js:
(WebGLTestUtils):
* webgl/1.0.2/resources/webgl_test_files/test-guidelines.md:
* webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesREADMEmd">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/README.md</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceattribsgldisabledvertexattribhtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancecontextcontextcreationanddestructionhtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebglcompressedtextures3tchtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebgldebugshadershtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebgldepthtexturehtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceglslmiscshaderwitharrayofstructscontainingarrayshtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemiscbadargumentstesthtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemiscwebglspecifichtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemorefunctionsuniformMatrixBadArgshtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemoreunitjs">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemoreutiljs">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformancerenderingmultisamplecorruptionhtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesfragmentShaderfrag">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesglslgeneratorjs">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesvertexShadervert">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourceswebgltestutilsjs">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_filestestguidelinesmd">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/test-guidelines.md</a></li>
<li><a href="#trunkLayoutTestswebgl102resourceswebgl_test_fileswebglconformancetestshtml">trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcanvaswebglbadargumentstestexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglbadargumentstesthtml">trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/ChangeLog        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2015-02-09 Roger Fong <roger_fong@apple.com>
+
+ WebGL: Update 1.0.2 conformance layout tests and address new failure.
+ https://bugs.webkit.org/show_bug.cgi?id=141408.
+ <rdar://problem/19773236>
+
+ Reviewed by Dean Jackson.
+
+ * fast/canvas/webgl/bad-arguments-test-expected.txt: Removed.
+ * fast/canvas/webgl/bad-arguments-test.html: Removed. Redundant test case.
+ * webgl/1.0.2/resources/webgl_test_files/README.md:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js:
+ (VBO.prototype.use):
+ * webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert:
+ * webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js:
+ (WebGLTestUtils):
+ * webgl/1.0.2/resources/webgl_test_files/test-guidelines.md:
+ * webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html:
+
</ins><span class="cx"> 2015-02-09 Jer Noble <jer.noble@apple.com>
</span><span class="cx">
</span><span class="cx"> [WebAudio] AudioBufferSourceNodes should accurately play backwards if given a negative playbackRate.
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglbadargumentstestexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test-expected.txt (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test-expected.txt        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test-expected.txt        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-Tests calling WebGL APIs with wrong argument types
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-PASS Program Compiled
-PASS Shader Compiled
-PASS getUniformLocation succeeded
-PASS context.compileShader(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.compileShader must be an instance of WebGLShader.
-PASS context.linkProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.linkProgram must be an instance of WebGLProgram.
-PASS context.attachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContextBase.attachShader must be an instance of WebGLShader.
-PASS context.attachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.attachShader must be an instance of WebGLProgram.
-PASS context.detachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContextBase.detachShader must be an instance of WebGLShader.
-PASS context.detachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.detachShader must be an instance of WebGLProgram.
-PASS context.useProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.useProgram must be an instance of WebGLProgram.
-PASS context.shaderSource(argument, 'foo') threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.shaderSource must be an instance of WebGLShader.
-PASS context.bindAttribLocation(argument, 0, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.bindAttribLocation must be an instance of WebGLProgram.
-PASS context.bindBuffer(context.ARRAY_BUFFER, argument) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContextBase.bindBuffer must be an instance of WebGLBuffer.
-PASS context.bindFramebuffer(context.FRAMEBUFFER, argument) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContextBase.bindFramebuffer must be an instance of WebGLFramebuffer.
-PASS context.bindRenderbuffer(context.RENDERBUFFER, argument) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContextBase.bindRenderbuffer must be an instance of WebGLRenderbuffer.
-PASS context.bindTexture(context.TEXTURE_2D, argument) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContextBase.bindTexture must be an instance of WebGLTexture.
-PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) threw exception TypeError: Argument 4 ('renderbuffer') to WebGLRenderingContextBase.framebufferRenderbuffer must be an instance of WebGLRenderbuffer.
-PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) threw exception TypeError: Argument 4 ('texture') to WebGLRenderingContextBase.framebufferTexture2D must be an instance of WebGLTexture.
-PASS context.uniform2fv(argument, new Float32Array([0.0, 0.0])) threw exception TypeError: Type error.
-PASS context.uniform2iv(argument, new Int32Array([0, 0])) threw exception TypeError: Type error.
-PASS context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) threw exception TypeError: Type error.
-PASS context.getProgramParameter(argument, 0) threw exception TypeError: Type error.
-PASS context.getShaderParameter(argument, 0) threw exception TypeError: Type error.
-PASS context.getUniform(argument, loc) threw exception TypeError: Type error.
-PASS context.getUniform(program, argument) threw exception TypeError: Type error.
-PASS context.getUniformLocation(argument, 'u_modelViewProjMatrix') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.getUniformLocation must be an instance of WebGLProgram.
-PASS context.getProgramInfoLog(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.getProgramInfoLog must be an instance of WebGLProgram.
-PASS context.getShaderInfoLog(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.getShaderInfoLog must be an instance of WebGLShader.
-PASS context.getShaderSource(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.getShaderSource must be an instance of WebGLShader.
-PASS context.compileShader(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.compileShader must be an instance of WebGLShader.
-PASS context.linkProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.linkProgram must be an instance of WebGLProgram.
-PASS context.attachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContextBase.attachShader must be an instance of WebGLShader.
-PASS context.attachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.attachShader must be an instance of WebGLProgram.
-PASS context.detachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContextBase.detachShader must be an instance of WebGLShader.
-PASS context.detachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.detachShader must be an instance of WebGLProgram.
-PASS context.useProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.useProgram must be an instance of WebGLProgram.
-PASS context.shaderSource(argument, 'foo') threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.shaderSource must be an instance of WebGLShader.
-PASS context.bindAttribLocation(argument, 0, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.bindAttribLocation must be an instance of WebGLProgram.
-PASS context.bindBuffer(context.ARRAY_BUFFER, argument) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContextBase.bindBuffer must be an instance of WebGLBuffer.
-PASS context.bindFramebuffer(context.FRAMEBUFFER, argument) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContextBase.bindFramebuffer must be an instance of WebGLFramebuffer.
-PASS context.bindRenderbuffer(context.RENDERBUFFER, argument) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContextBase.bindRenderbuffer must be an instance of WebGLRenderbuffer.
-PASS context.bindTexture(context.TEXTURE_2D, argument) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContextBase.bindTexture must be an instance of WebGLTexture.
-PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) threw exception TypeError: Argument 4 ('renderbuffer') to WebGLRenderingContextBase.framebufferRenderbuffer must be an instance of WebGLRenderbuffer.
-PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) threw exception TypeError: Argument 4 ('texture') to WebGLRenderingContextBase.framebufferTexture2D must be an instance of WebGLTexture.
-PASS context.uniform2fv(argument, new Float32Array([0.0, 0.0])) threw exception TypeError: Type error.
-PASS context.uniform2iv(argument, new Int32Array([0, 0])) threw exception TypeError: Type error.
-PASS context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) threw exception TypeError: Type error.
-PASS context.getProgramParameter(argument, 0) threw exception TypeError: Type error.
-PASS context.getShaderParameter(argument, 0) threw exception TypeError: Type error.
-PASS context.getUniform(argument, loc) threw exception TypeError: Type error.
-PASS context.getUniform(program, argument) threw exception TypeError: Type error.
-PASS context.getUniformLocation(argument, 'u_modelViewProjMatrix') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.getUniformLocation must be an instance of WebGLProgram.
-PASS context.getProgramInfoLog(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContextBase.getProgramInfoLog must be an instance of WebGLProgram.
-PASS context.getShaderInfoLog(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.getShaderInfoLog must be an instance of WebGLShader.
-PASS context.getShaderSource(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContextBase.getShaderSource must be an instance of WebGLShader.
-PASS context.compileShader(argument) is undefined.
-PASS context.linkProgram(argument) is undefined.
-PASS context.attachShader(program, argument) is undefined.
-PASS context.attachShader(argument, shader) is undefined.
-PASS context.detachShader(program, argument) is undefined.
-PASS context.detachShader(argument, shader) is undefined.
-PASS context.useProgram(argument) is undefined.
-PASS context.shaderSource(argument, 'foo') is undefined.
-PASS context.bindAttribLocation(argument, 0, 'foo') is undefined.
-PASS context.bindBuffer(context.ARRAY_BUFFER, argument) is undefined.
-PASS context.bindFramebuffer(context.FRAMEBUFFER, argument) is undefined.
-PASS context.bindRenderbuffer(context.RENDERBUFFER, argument) is undefined.
-PASS context.bindTexture(context.TEXTURE_2D, argument) is undefined.
-PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) is undefined.
-PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) is undefined.
-PASS context.uniform2fv(argument, new Float32Array([0.0, 0.0])) is undefined.
-PASS context.uniform2iv(argument, new Int32Array([0, 0])) is undefined.
-PASS context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) is undefined.
-PASS context.getProgramParameter(argument, 0) is null
-PASS context.getShaderParameter(argument, 0) is null
-PASS context.getUniform(argument, loc) is null
-PASS context.getUniform(program, argument) is null
-PASS context.getUniformLocation(argument, 'u_modelViewProjMatrix') is null
-PASS context.getProgramInfoLog(argument) is ''
-PASS context.getShaderInfoLog(argument) is ''
-PASS context.getShaderSource(argument) is ''
-PASS context.compileShader(argument) is undefined.
-PASS context.linkProgram(argument) is undefined.
-PASS context.attachShader(program, argument) is undefined.
-PASS context.attachShader(argument, shader) is undefined.
-PASS context.detachShader(program, argument) is undefined.
-PASS context.detachShader(argument, shader) is undefined.
-PASS context.useProgram(argument) is undefined.
-PASS context.shaderSource(argument, 'foo') is undefined.
-PASS context.bindAttribLocation(argument, 0, 'foo') is undefined.
-PASS context.bindBuffer(context.ARRAY_BUFFER, argument) is undefined.
-PASS context.bindFramebuffer(context.FRAMEBUFFER, argument) is undefined.
-PASS context.bindRenderbuffer(context.RENDERBUFFER, argument) is undefined.
-PASS context.bindTexture(context.TEXTURE_2D, argument) is undefined.
-PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) is undefined.
-PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) is undefined.
-PASS context.uniform2fv(argument, new Float32Array([0.0, 0.0])) is undefined.
-PASS context.uniform2iv(argument, new Int32Array([0, 0])) is undefined.
-PASS context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) is undefined.
-PASS context.getProgramParameter(argument, 0) is null
-PASS context.getShaderParameter(argument, 0) is null
-PASS context.getUniform(argument, loc) is null
-PASS context.getUniform(program, argument) is null
-PASS context.getUniformLocation(argument, 'u_modelViewProjMatrix') is null
-PASS context.getProgramInfoLog(argument) is ''
-PASS context.getShaderInfoLog(argument) is ''
-PASS context.getShaderSource(argument) is ''
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglbadargumentstesthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/fast/canvas/webgl/bad-arguments-test.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,89 +0,0 @@
</span><del>-<html>
-<head>
-<script src="../../../resources/js-test.js"></script>
-<script src="resources/webgl-test.js"></script>
-<script src="resources/webgl-test-utils.js"></script>
-</head>
-<body>
-<div id="description"></div>
-<div id="console"></div>
-
-<script>
-if (window.internals)
- window.internals.settings.setWebGLErrorsToConsoleEnabled(false);
-
-var wtu = WebGLTestUtils;
-description("Tests calling WebGL APIs with wrong argument types");
-
-var context = wtu.create3DContext();
-var program = wtu.loadStandardProgram(context);
-var shader = wtu.loadStandardVertexShader(context);
-var shouldGenerateGLError = wtu.shouldGenerateGLError;
-
-assertMsg(program != null, "Program Compiled");
-assertMsg(shader != null, "Shader Compiled");
-
-var loc = context.getUniformLocation(program, "u_modelViewProjMatrix");
-assertMsg(loc != null, "getUniformLocation succeeded");
-
-var arguments = [
- { value: "foo",
- throw: true },
- { value: 0,
- throw: true },
- { value: null,
- throw: false },
- { value: undefined,
- throw: false }
-];
-
-var argument;
-
-function shouldBeEmptyString(command) {
- shouldBe(command, "''");
-}
-
-for (var i = 0; i < arguments.length; ++i) {
- var func, func2, func3;
- if (arguments[i].throw) {
- func = shouldThrow;
- func2 = shouldThrow;
- func3 = shouldThrow;
- } else {
- func = shouldBeUndefined;
- func2 = shouldBeNull;
- func3 = shouldBeEmptyString;
- }
- argument = arguments[i].value;
- func("context.compileShader(argument)");
- func("context.linkProgram(argument)");
- func("context.attachShader(program, argument)");
- func("context.attachShader(argument, shader)");
- func("context.detachShader(program, argument)");
- func("context.detachShader(argument, shader)");
- func("context.useProgram(argument)");
- func("context.shaderSource(argument, 'foo')");
- func("context.bindAttribLocation(argument, 0, 'foo')");
- func("context.bindBuffer(context.ARRAY_BUFFER, argument)");
- func("context.bindFramebuffer(context.FRAMEBUFFER, argument)");
- func("context.bindRenderbuffer(context.RENDERBUFFER, argument)");
- func("context.bindTexture(context.TEXTURE_2D, argument)");
- func("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument)");
- func("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0)");
- func("context.uniform2fv(argument, new Float32Array([0.0, 0.0]))");
- func("context.uniform2iv(argument, new Int32Array([0, 0]))");
- func("context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0]))");
-
- func2("context.getProgramParameter(argument, 0)");
- func2("context.getShaderParameter(argument, 0)");
- func2("context.getUniform(argument, loc)");
- func2("context.getUniform(program, argument)");
- func2("context.getUniformLocation(argument, 'u_modelViewProjMatrix')");
-
- func3("context.getProgramInfoLog(argument)");
- func3("context.getShaderInfoLog(argument)");
- func3("context.getShaderSource(argument)");
-}
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesREADMEmd"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/README.md (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/README.md        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/README.md        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> Example: webgl-conformance-tests.html?version=1.3.2
</span><span class="cx">
</span><span class="cx"> minVersion: Set to the minimum version of each test to include. Only tests
</span><del>- at this version or above will be inlcuded.
</del><ins>+ at this version or above will be included.
</ins><span class="cx">
</span><span class="cx"> Example: webgl-conformance-tests.html?minVersion=1.3.2
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceattribsgldisabledvertexattribhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -44,20 +44,20 @@
</span><span class="cx"> attribute vec4 a_position;
</span><span class="cx"> attribute vec4 a_color;
</span><span class="cx"> varying vec4 v_color;
</span><ins>+bool isCorrectColor(vec4 v) {
+ return v.x == 0.0 && v.y == 0.0 && v.z == 0.0 && v.w == 1.0;
+}
</ins><span class="cx"> void main() {
</span><span class="cx"> gl_Position = a_position;
</span><del>- v_color = a_color;
</del><ins>+ v_color = isCorrectColor(a_color) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);
</ins><span class="cx"> }
</span><span class="cx"> </script>
</span><span class="cx">
</span><span class="cx"> <script id="fshader" type="x-shader/x-fragment">
</span><span class="cx"> precision mediump float;
</span><span class="cx"> varying vec4 v_color;
</span><del>-bool isCorrectColor(vec4 v) {
- return v.x == 0.0 && v.y == 0.0 && v.z == 0.0 && v.w == 1.0;
-}
</del><span class="cx"> void main() {
</span><del>- gl_FragColor = isCorrectColor(v_color) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);
</del><ins>+ gl_FragColor = v_color;
</ins><span class="cx"> }
</span><span class="cx"> </script>
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancecontextcontextcreationanddestructionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -32,49 +32,21 @@
</span><span class="cx"> <title>Test that contexts are freed and garbage collected reasonably</title>
</span><span class="cx"> <link rel="stylesheet" href="../../resources/js-test-style.css"/>
</span><span class="cx"> <script src="../../resources/js-test-pre.js"></script>
</span><del>-<script src="../resources/webgl-test.js"> </script>
</del><span class="cx"> <script src="../resources/webgl-test-utils.js"> </script>
</span><ins>+<script src="../resources/iterable-test.js"> </script>
</ins><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx"> <div id="description"></div>
</span><span class="cx"> <div id="console"></div>
</span><span class="cx"> <script>
</span><span class="cx"> "use strict";
</span><del>-var wtu = WebGLTestUtils;
-var target = 500;
-var count = 0;
-
</del><span class="cx"> description();
</span><del>-doNextTest();
</del><span class="cx">
</span><del>-// Creates a canvas and a texture then exits. There are
-// no references to either so both should be garbage collected.
-function test() {
- var canvas = document.createElement("canvas");
- // This is safe for any device. See drawingBufferWidth in spec.
- canvas.width = 2048;
- canvas.height = 2048;
- var gl = wtu.create3DContext(canvas);
- var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
- var size = Math.min(1024, maxTextureSize);
- var tex = gl.createTexture();
- gl.bindTexture(gl.TEXTURE_2D, tex);
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, size, size, 0, gl.RGBA, gl.UNSIGNED_BYTE,
- new Uint8Array(size * size * 4));
- gl.clear(gl.COLOR_BUFFER_BIT);
- glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors");
-}
</del><ins>+var wtu = WebGLTestUtils;
</ins><span class="cx">
</span><del>-function doNextTest() {
- ++count;
- debug("test " + count + " of " + target);
- test();
- if (count < target) {
- setTimeout(doNextTest, 100);
- } else {
- finishTest();
- }
-}
</del><ins>+var test = IterableTest.createContextCreationAndDestructionTest();
+var iterations = parseInt(wtu.getUrlOptions().iterations, 10) || 50;
+IterableTest.run(test, iterations);
</ins><span class="cx">
</span><span class="cx"> var successfullyParsed = true;
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebglcompressedtextures3tchtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -609,7 +609,7 @@
</span><span class="cx"> if (actual[actualOffset + jj] != expected[jj]) {
</span><span class="cx"> failed = true;
</span><span class="cx"> var was = actual[actualOffset + 0].toString();
</span><del>- for (j = 1; j < 4; ++j) {
</del><ins>+ for (var j = 1; j < 4; ++j) {
</ins><span class="cx"> was += "," + actual[actualOffset + j];
</span><span class="cx"> }
</span><span class="cx"> testFailed('at (' + xx + ', ' + yy +
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebgldebugshadershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -55,6 +55,7 @@
</span><span class="cx"> var program = null;
</span><span class="cx"> var info = null;
</span><span class="cx"> var translatedSource;
</span><ins>+var newTranslatedSource;
</ins><span class="cx">
</span><span class="cx"> if (!gl) {
</span><span class="cx"> testFailed("WebGL context does not exist");
</span><span class="lines">@@ -117,9 +118,9 @@
</span><span class="cx">
</span><span class="cx"> // if no source has been defined or compileShader() has not been called,
</span><span class="cx"> // getTranslatedShaderSource() should return an empty string.
</span><del>- shouldBeNull("ext.getTranslatedShaderSource(shader)");
</del><ins>+ shouldBe("ext.getTranslatedShaderSource(shader)", '""');
</ins><span class="cx"> gl.shaderSource(shader, info.source);
</span><del>- shouldBeNull("ext.getTranslatedShaderSource(shader)");
</del><ins>+ shouldBe("ext.getTranslatedShaderSource(shader)", '""');
</ins><span class="cx"> gl.compileShader(shader);
</span><span class="cx"> shouldBeTrue("gl.getShaderParameter(shader, gl.COMPILE_STATUS)");
</span><span class="cx"> translatedSource = ext.getTranslatedShaderSource(shader);
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceextensionswebgldepthtexturehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -273,9 +273,8 @@
</span><span class="cx">
</span><span class="cx"> dumpIt(gl, res, "--depth--");
</span><span class="cx">
</span><del>- // Check that each pixel's RGB are the same and that it's value is less
- // than the previous pixel in either direction. Basically verify we have a
- // gradient.
</del><ins>+ // Check that each pixel's R value is less than that of the previous pixel
+ // in either direction. Basically verify we have a gradient.
</ins><span class="cx"> var success = true;
</span><span class="cx"> for (var yy = 0; yy < res; ++yy) {
</span><span class="cx"> for (var xx = 0; xx < res; ++xx) {
</span><span class="lines">@@ -283,20 +282,6 @@
</span><span class="cx"> var left = actual - 4;
</span><span class="cx"> var down = actual - res * 4;
</span><span class="cx">
</span><del>- if (actualPixels[actual + 0] != actualPixels[actual + 1]) {
- testFailed('R != G');
- success = false;
- }
- if (actualPixels[actual + 0] != actualPixels[actual + 2]) {
- testFailed('R != B');
- success = false;
- }
- // ALPHA is implementation dependent
- if (actualPixels[actual + 3] != 0xFF && actualPixels[actual + 3] != actualPixels[actual + 0]) {
- testFailed('A != 255 && A != R');
- success = false;
- }
-
</del><span class="cx"> if (xx > 0) {
</span><span class="cx"> if (actualPixels[actual] <= actualPixels[left]) {
</span><span class="cx"> testFailed("actual(" + actualPixels[actual] + ") < left(" + actualPixels[left] + ")");
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceglslmiscshaderwitharrayofstructscontainingarrayshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -109,8 +109,6 @@
</span><span class="cx">
</span><span class="cx"> var program = wtu.setupProgram(gl, ["vshader", "fshader-with-one-element-arrays"], ["a_position"]);
</span><span class="cx"> var green_loc = gl.getUniformLocation(program, "u_colors[0].color[0]");
</span><del>-var zeroth_color = gl.getUniformLocation(program, "u_colors[0].color");
-shouldBeTrue("zeroth_color != undefined");
</del><span class="cx"> gl.uniform4fv(green_loc, [0, 1, 0, 1]);
</span><span class="cx"> wtu.clearAndDrawUnitQuad(gl);
</span><span class="cx"> wtu.checkCanvas(gl, [0, 255, 0, 255], "Should be green");
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemiscbadargumentstesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -72,15 +72,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (var i = 0; i < testArguments.length; ++i) {
</span><del>- var func, func2, func3;
</del><ins>+ var func, func2;
</ins><span class="cx"> if (testArguments[i].throws) {
</span><span class="cx"> func = shouldThrow;
</span><span class="cx"> func2 = shouldThrow;
</span><del>- func3 = shouldThrow;
</del><span class="cx"> } else {
</span><span class="cx"> func = shouldBeUndefined;
</span><span class="cx"> func2 = shouldBeNull;
</span><del>- func3 = shouldBeEmptyString;
</del><span class="cx"> }
</span><span class="cx"> argument = testArguments[i].value;
</span><span class="cx"> func("context.compileShader(argument)");
</span><span class="lines">@@ -102,15 +100,15 @@
</span><span class="cx"> func("context.uniform2iv(argument, new Int32Array([0, 0]))");
</span><span class="cx"> func("context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0]))");
</span><span class="cx">
</span><ins>+ func2("context.getProgramInfoLog(argument)");
</ins><span class="cx"> func2("context.getProgramParameter(argument, 0)");
</span><ins>+ func2("context.getShaderInfoLog(argument)");
</ins><span class="cx"> func2("context.getShaderParameter(argument, 0)");
</span><ins>+ func2("context.getShaderSource(argument)");
</ins><span class="cx"> func2("context.getUniform(argument, loc)");
</span><span class="cx"> func2("context.getUniform(program, argument)");
</span><span class="cx"> func2("context.getUniformLocation(argument, 'u_modelViewProjMatrix')");
</span><span class="cx">
</span><del>- func3("context.getProgramInfoLog(argument)");
- func3("context.getShaderInfoLog(argument)");
- func3("context.getShaderSource(argument)");
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> var successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemiscwebglspecifichtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -96,6 +96,12 @@
</span><span class="cx"> shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 1)");
</span><span class="cx"> shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)");
</span><span class="cx">
</span><ins>+// Added in 1.0.3 version of spec.
+// debug("");
+// debug("Verify that IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE are undefined");
+// shouldBeUndefined(gl.IMPLEMENTATION_COLOR_READ_FORMAT);
+// shouldBeUndefined(gl.IMPLEMENTATION_COLOR_READ_TYPE);
+
</ins><span class="cx"> debug("");
</span><span class="cx"> debug("Verify that *LENGTH are undefined");
</span><span class="cx"> shouldBeUndefined(gl.INFO_LOG_LENGTH);
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemorefunctionsuniformMatrixBadArgshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx"> });
</span><span class="cx"> var d = new Uint8Array(4);
</span><span class="cx"> gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d);
</span><del>- assertArrayEquals([1,2,3,8], d);
</del><ins>+ assertArrayEqualsWithEpsilon([1,2,3,8], d, [1,1,1,1]);
</ins><span class="cx"> sh.destroy();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemoreunitjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -390,6 +390,38 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+function assertArrayEqualsWithEpsilon(name, v, p, l) {
+if (l == null) { l = p; p = v; v = name; name = null; }
+if (!v) {
+testFailed("assertArrayEqualsWithEpsilon: first array undefined", name, v, p);
+return false;
+}
+if (!p) {
+testFailed("assertArrayEqualsWithEpsilon: second array undefined", name, v, p);
+return false;
+}
+if (!l) {
+testFailed("assertArrayEqualsWithEpsilon: limit array undefined", name, v, p);
+return false;
+}
+if (v.length != p.length) {
+testFailed("assertArrayEqualsWithEpsilon", name, v, p, l);
+return false;
+}
+if (v.length != l.length) {
+testFailed("assertArrayEqualsWithEpsilon", name, v, p, l);
+return false;
+}
+for (var ii = 0; ii < v.length; ++ii) {
+if (Math.abs(v[ii]- p[ii])>l[ii]) {
+testFailed("assertArrayEqualsWithEpsilon", name, v, p, l);
+return false;
+}
+}
+testPassed("assertArrayEqualsWithEpsilon", name, v, p, l);
+return true;
+}
+
</ins><span class="cx"> function assertNotEquals(name, v, p) {
</span><span class="cx"> if (p == null) { p = v; v = name; name = null; }
</span><span class="cx"> if (compare(v, p)) {
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancemoreutiljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -841,7 +841,7 @@
</span><span class="cx"> if (!this.initialized) this.init();
</span><span class="cx"> var gl = this.gl;
</span><span class="cx"> for (var i=0; i<arguments.length; i++) {
</span><del>- if (arguments[i] == null) continue;
</del><ins>+         if (arguments[i] == null || arguments[i] == -1) continue;
</ins><span class="cx"> gl.bindBuffer(gl.ARRAY_BUFFER, this.vbos[i]);
</span><span class="cx"> gl.vertexAttribPointer(arguments[i], this.data[i].size, gl.FLOAT, false, 0, 0);
</span><span class="cx"> gl.enableVertexAttribArray(arguments[i]);
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformancerenderingmultisamplecorruptionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -32,93 +32,26 @@
</span><span class="cx"> <title>WebGL Multisample Renderbuffer Corruption Test</title>
</span><span class="cx"> <link rel="stylesheet" href="../../resources/js-test-style.css"/>
</span><span class="cx"> <script src="../../resources/js-test-pre.js"></script>
</span><del>- <script src="../resources/webgl-test.js"> </script>
</del><span class="cx"> <script src="../resources/webgl-test-utils.js"> </script>
</span><ins>+ <script src="../resources/iterable-test.js"> </script>
</ins><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx"> <canvas id="example" width="2048" height="2048" style="width: 128px; height: 128px;"></canvas>
</span><span class="cx"> <div id="description"></div>
</span><span class="cx"> <div id="console"></div>
</span><del>- <script id="vshader" type="x-shader/x-vertex">
- attribute vec4 vPosition;
- void main()
- {
- gl_Position = vPosition;
- }
- </script>
-
- <script id="fshader" type="x-shader/x-fragment">
- void main()
- {
- gl_FragColor = vec4(0.0,0.0,0.0,0.0);
- }
- </script>
-
</del><span class="cx"> <script>
</span><span class="cx"> "use strict";
</span><del>- function init()
- {
- description(document.title);
</del><span class="cx">
</span><del>- var lastContext = null;
- var cycleCount = 0;
- var maxCycles = 100;
- var failed = false;
- var wtu = WebGLTestUtils;
- var gl = wtu.create3DContext("example", {antialias: true, preserveDrawingBuffer: true});
</del><ins>+ description(document.title);
</ins><span class="cx">
</span><del>- gl.clearColor(1.0, 0.0, 0.0, 1.0);
- gl.clear(gl.COLOR_BUFFER_BIT);
</del><ins>+ var wtu = WebGLTestUtils;
</ins><span class="cx">
</span><del>- var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]);
- var vertexObject = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,2.5,0, 1.5,1.5,0, 2.5,1.5,0 ]), gl.STATIC_DRAW);
- gl.enableVertexAttribArray(0);
- gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
</del><ins>+ var gl = wtu.create3DContext("example", {antialias: true, preserveDrawingBuffer: true});
+ var test = IterableTest.createMultisampleCorruptionTest(gl);
+ var iterations = parseInt(wtu.getUrlOptions().iterations, 10) || 25;
+ IterableTest.run(test, iterations);
</ins><span class="cx">
</span><del>- function cycleAndTest() {
- var gl2 = wtu.create3DContext(null, {antialias: true});
-
- gl2.canvas.width = gl2.canvas.height = 1024;
- gl2.canvas.style.width = gl2.canvas.style.height = "1px";
- document.body.appendChild(gl2.canvas);
-
- gl2.clearColor(1.0, 0.0, 0.0, 1.0);
- gl2.clear(gl2.COLOR_BUFFER_BIT);
-
- if(lastContext) {
- gl.drawArrays(gl.TRIANGLES, 0, 3);
- var msg = "Should be red after loop " + cycleCount;
- wtu.checkCanvasRectColor(gl,
- 0, 0, gl.canvas.width, gl.canvas.height,
- [255, 0, 0, 255], null,
- function() {
- testPassed(msg);
- },
- function() {
- testFailed(msg);
- failed = true;
- },
- debug);
- document.body.removeChild(lastContext.canvas);
- }
-
- lastContext = gl2;
- cycleCount++;
-
- if(cycleCount <= maxCycles && !failed) {
- wtu.waitForComposite(gl2, cycleAndTest);
- } else {
- finishTest();
- }
- }
-
- cycleAndTest();
- }
-
- init();
- var successfullyParsed = true;
</del><ins>+ var successfullyParsed = true;
</ins><span class="cx"> </script>
</span><span class="cx">
</span><span class="cx"> </body>
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesfragmentShaderfrag"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>-Copyright (C) 2009 Apple Inc. All rights reserved.
</del><ins>+Copyright (C) 2009 Apple Computer, Inc. All rights reserved.
</ins><span class="cx">
</span><span class="cx"> Redistribution and use in source and binary forms, with or without
</span><span class="cx"> modification, are permitted provided that the following conditions
</span><span class="lines">@@ -10,10 +10,10 @@
</span><span class="cx"> notice, this list of conditions and the following disclaimer in the
</span><span class="cx"> documentation and/or other materials provided with the distribution.
</span><span class="cx">
</span><del>-THIS SOFTWARE IS PROVIDED BY APPLE INC. AS IS AND ANY
</del><ins>+THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. AS IS AND ANY
</ins><span class="cx"> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
</span><span class="cx"> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
</span><del>-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
</del><ins>+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
</ins><span class="cx"> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
</span><span class="cx"> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
</span><span class="cx"> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesglslgeneratorjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -252,9 +252,9 @@
</span><span class="cx"> var wtu = WebGLTestUtils;
</span><span class="cx"> var gridRes = params.gridRes;
</span><span class="cx"> var vertexTolerance = params.tolerance || 0;
</span><del>- var fragmentTolerance = vertexTolerance;
</del><ins>+ var fragmentTolerance = params.tolerance || 1;
</ins><span class="cx"> if ('fragmentTolerance' in params)
</span><del>- fragmentTolerance = params.fragmentTolerance || 0;
</del><ins>+ fragmentTolerance = params.fragmentTolerance;
</ins><span class="cx">
</span><span class="cx"> description("Testing GLSL feature: " + params.feature);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourcesvertexShadervert"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>-Copyright (C) 2009 Apple Inc. All rights reserved.
</del><ins>+Copyright (C) 2009 Apple Computer, Inc. All rights reserved.
</ins><span class="cx">
</span><span class="cx"> Redistribution and use in source and binary forms, with or without
</span><span class="cx"> modification, are permitted provided that the following conditions
</span><span class="lines">@@ -10,10 +10,10 @@
</span><span class="cx"> notice, this list of conditions and the following disclaimer in the
</span><span class="cx"> documentation and/or other materials provided with the distribution.
</span><span class="cx">
</span><del>-THIS SOFTWARE IS PROVIDED BY APPLE INC. AS IS AND ANY
</del><ins>+THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. AS IS AND ANY
</ins><span class="cx"> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
</span><span class="cx"> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
</span><del>-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
</del><ins>+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
</ins><span class="cx"> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
</span><span class="cx"> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
</span><span class="cx"> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filesconformanceresourceswebgltestutilsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -28,6 +28,9 @@
</span><span class="cx"> * @param {string} msg The message to log.
</span><span class="cx"> */
</span><span class="cx"> var log = function(msg) {
</span><ins>+ if (window.console && window.console.log) {
+ window.console.log(msg);
+ }
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -35,6 +38,14 @@
</span><span class="cx"> * @param {string} msg The message to log.
</span><span class="cx"> */
</span><span class="cx"> var error = function(msg) {
</span><ins>+ if (window.console) {
+ if (window.console.error) {
+ window.console.error(msg);
+ }
+ else if (window.console.log) {
+ window.console.log(msg);
+ }
+ }
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -839,15 +850,17 @@
</span><span class="cx"> * @param {!function()} differentFn Function to call if a pixel
</span><span class="cx"> * is different than color
</span><span class="cx"> * @param {!function()} logFn Function to call for logging.
</span><ins>+ * @param {Uint8Array} opt_readBackBuf typically passed to reuse existing
+ * buffer while reading back pixels.
</ins><span class="cx"> */
</span><del>-var checkCanvasRectColor = function(gl, x, y, width, height, color, opt_errorRange, sameFn, differentFn, logFn) {
</del><ins>+var checkCanvasRectColor = function(gl, x, y, width, height, color, opt_errorRange, sameFn, differentFn, logFn, opt_readBackBuf) {
</ins><span class="cx"> var errorRange = opt_errorRange || 0;
</span><span class="cx"> if (!errorRange.length) {
</span><span class="cx"> errorRange = [errorRange, errorRange, errorRange, errorRange]
</span><span class="cx"> }
</span><span class="cx"> var buf;
</span><span class="cx"> if (gl instanceof WebGLRenderingContext) {
</span><del>- buf = new Uint8Array(width * height * 4);
</del><ins>+ buf = opt_readBackBuf ? opt_readBackBuf : new Uint8Array(width * height * 4);
</ins><span class="cx"> gl.readPixels(x, y, width, height, gl.RGBA, gl.UNSIGNED_BYTE, buf);
</span><span class="cx"> } else {
</span><span class="cx"> buf = gl.getImageData(x, y, width, height).data;
</span><span class="lines">@@ -969,6 +982,30 @@
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Returns a map of URL querystring options
+ * @return {Object?} Object containing all the values in the URL querystring
+ */
+var getUrlOptions = function() {
+ var options = {};
+ var s = window.location.href;
+ var q = s.indexOf("?");
+ var e = s.indexOf("#");
+ if (e < 0) {
+ e = s.length;
+ }
+ var query = s.substring(q + 1, e);
+ var pairs = query.split("&");
+ for (var ii = 0; ii < pairs.length; ++ii) {
+ var keyValue = pairs[ii].split("=");
+ var key = keyValue[0];
+ var value = decodeURIComponent(keyValue[1]);
+ options[key] = value;
+ }
+
+ return options;
+};
+
+/**
</ins><span class="cx"> * Creates a webgl context.
</span><span class="cx"> * @param {!Canvas|string} opt_canvas The canvas tag to get
</span><span class="cx"> * context from. If one is not passed in one will be
</span><span class="lines">@@ -1988,6 +2025,7 @@
</span><span class="cx"> getScript: getScript,
</span><span class="cx"> getSupportedExtensionWithKnownPrefixes: getSupportedExtensionWithKnownPrefixes,
</span><span class="cx"> getUrlArguments: getUrlArguments,
</span><ins>+ getUrlOptions: getUrlOptions,
</ins><span class="cx"> getAttribMap: getAttribMap,
</span><span class="cx"> getUniformMap: getUniformMap,
</span><span class="cx"> glEnumToString: glEnumToString,
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_filestestguidelinesmd"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/test-guidelines.md (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/test-guidelines.md        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/test-guidelines.md        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> Contributing WebGL conformance tests Guidelines
</span><span class="cx"> ===============================================
</span><span class="cx">
</span><del>-Thank you for contibuting to the WebGL conformance tests.
</del><ins>+Thank you for contributing to the WebGL conformance tests.
</ins><span class="cx"> Please try to follow these guidelines when submitting a test.
</span><span class="cx">
</span><span class="cx"> * If you're new to git [here's a terse set of instructions](http://www.khronos.org/webgl/wiki/Using_Github_To_Contribute "Using Github to Contribute").
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> * Please use code similar to the code in existing tests
</span><span class="cx">
</span><span class="cx"> Ideally, copy an existing test and modify it for your new test. Try not to duplicate
</span><del>- code that already exists where approriate. In particular
</del><ins>+ code that already exists where appropriate. In particular
</ins><span class="cx">
</span><span class="cx"> * use the functions in WebGLTestUtils rather than duplicating functionality.
</span><span class="cx">
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> name in `opt_attribs` is bound to the corresponding location in `opt_locations`.
</span><span class="cx">
</span><span class="cx"> * If you need to wait for a composite call `WebGLTestUtils.waitForComposite`.
</span><del>- As compositing is a browser specfic thing this provides a central place to
</del><ins>+ As compositing is a browser specific thing this provides a central place to
</ins><span class="cx"> update all tests that rely on compositing to function.
</span><span class="cx">
</span><span class="cx"> * Code/Tag Order
</span><span class="lines">@@ -133,17 +133,17 @@
</span><span class="cx"> runNextTest();
</span><span class="cx">
</span><span class="cx"> Remember the tests need to run without timing out even and slow mobile devices.
</span><del>- The harness resets the timeout timer everytime a test reports success or failure
</del><ins>+ The harness resets the timeout timer every time a test reports success or failure
</ins><span class="cx"> so as long as some part of your test calls `testPassed` or `testFailed` or one of the
</span><span class="cx"> many wrappers (`shouldXXX`, `glErrorShouldBe`, `WebGLTestUtils.checkCanvasXXX`, etc..)
</span><span class="cx"> every so often the harness will not timeout your test.
</span><span class="cx">
</span><del>- * The test harness requries the global variable `successfullyParse` to be set to true.
</del><ins>+ * The test harness requires the global variable `successfullyParse` to be set to true.
</ins><span class="cx"> This usually appears at the end of a file.
</span><span class="cx">
</span><span class="cx"> var successfullyParsed = true;
</span><span class="cx">
</span><del>- * Do not use browser specfic code.
</del><ins>+ * Do not use browser specific code.
</ins><span class="cx">
</span><span class="cx"> * Do not check the browser version. Use feature detection.
</span><span class="cx">
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> other tests can go through the same abstraction and the workaround is isolated
</span><span class="cx"> to one place.
</span><span class="cx">
</span><del>- * Vendors may place test harness specific code in the testing infrustructure.
</del><ins>+ * Vendors may place test harness specific code in the testing infrastructure.
</ins><span class="cx">
</span><span class="cx"> resources/js-test-pre.js
</span><span class="cx"> conformance/more/unit.js
</span><span class="lines">@@ -164,11 +164,11 @@
</span><span class="cx">
</span><span class="cx"> * All JavaScript must start with "use strict";
</span><span class="cx">
</span><del>-* If adding a new test edit the approriate 00_test_list.txt file
</del><ins>+* If adding a new test edit the appropriate 00_test_list.txt file
</ins><span class="cx">
</span><span class="cx"> Each folder has a 00_test_list.txt file that lists the test in that folder.
</span><span class="cx"> Each new test should be prefixed with the option `--min-version <version>` where
</span><del>- version is 1 more than the newest official verison. At the time of this writing
</del><ins>+ version is 1 more than the newest official version. At the time of this writing
</ins><span class="cx"> all new tests should be prefixed with `--min-version 1.0.2`
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestswebgl102resourceswebgl_test_fileswebglconformancetestshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/LayoutTests/webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -144,7 +144,8 @@
</span><span class="cx"> var reportType = WebGLTestHarnessModule.TestHarness.reportType;
</span><span class="cx"> var pageCount = 0;
</span><span class="cx"> var folderCount = 0;
</span><del>- var autoScroll = true;
</del><ins>+ var autoScrollEnabled = true; // Whether the user prefers to auto scroll
+ var autoScroll = true; // Whether auto scroll is actually performed
</ins><span class="cx">
</span><span class="cx"> var Page = function(reporter, folder, testIndex, url) {
</span><span class="cx"> this.reporter = reporter;
</span><span class="lines">@@ -297,7 +298,7 @@
</span><span class="cx"> button.type = 'button';
</span><span class="cx"> button.value = 'run';
</span><span class="cx"> button.onclick = function() {
</span><del>- autoScroll = true;
</del><ins>+ autoScroll = autoScrollEnabled;
</ins><span class="cx"> that.run();
</span><span class="cx"> };
</span><span class="cx"> if (reporter.noWebGL) {
</span><span class="lines">@@ -771,10 +772,16 @@
</span><span class="cx"> var button = document.getElementById("runTestsButton");
</span><span class="cx"> button.disabled = true;
</span><span class="cx"> button.onclick = function() {
</span><del>- autoScroll = true;
</del><ins>+ autoScroll = autoScrollEnabled;
</ins><span class="cx"> reporter.postTestStartToServer();
</span><span class="cx"> testHarness.runTests();
</span><span class="cx"> };
</span><ins>+ var autoScrollCheckbox = document.getElementById("autoScrollCheckbox");
+ autoScrollCheckbox.checked = autoScrollEnabled;
+ autoScrollCheckbox.onclick = function() {
+ autoScrollEnabled = autoScrollCheckbox.checked;
+ autoScroll = autoScrollEnabled;
+ };
</ins><span class="cx"> var textbutton = document.getElementById("showTextSummary");
</span><span class="cx"> textbutton.onclick = function() {
</span><span class="cx"> log("click");
</span><span class="lines">@@ -830,6 +837,9 @@
</span><span class="cx"> <br/>
</span><span class="cx"> <input type="button" value="run tests" id="runTestsButton"/>
</span><span class="cx"> <br/>
</span><ins>+ <input type="checkbox" id="autoScrollCheckbox"/>
+ <label for="autoScrollCheckbox">auto scroll</label>
+ <br/>
</ins><span class="cx"> <input type="button" style="visibility: hidden;" value="display text summary" id="showTextSummary"/>
</span><span class="cx"> <div id="nowebgl" class="nowebgl" style="display: none;">
</span><span class="cx"> This browser does not appear to support WebGL
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/Source/WebCore/ChangeLog        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2015-02-09 Roger Fong <roger_fong@apple.com>
+
+ WebGL: Update 1.0.2 conformance layout tests and address new failure.
+ https://bugs.webkit.org/show_bug.cgi?id=141408.
+ <rdar://problem/19773236>
+
+ Reviewed by Dean Jackson.
+
+ Tests covered by updated 1.0.2 conformance tests.
+
+ * html/canvas/WebGLRenderingContextBase.cpp:
+ Return null string instead of empty string if parameter validation fails.
+ (WebCore::WebGLRenderingContextBase::getProgramInfoLog):
+ (WebCore::WebGLRenderingContextBase::getShaderInfoLog):
+ (WebCore::WebGLRenderingContextBase::getShaderSource):
+
</ins><span class="cx"> 2015-02-09 Timothy Horton <timothy_horton@apple.com>
</span><span class="cx">
</span><span class="cx"> Avoid using a HashMap for DisplayRefreshMonitorManager, which rarely has more than one item
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (179858 => 179859)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-10 00:43:57 UTC (rev 179858)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-10 01:02:28 UTC (rev 179859)
</span><span class="lines">@@ -2617,10 +2617,8 @@
</span><span class="cx"> String WebGLRenderingContextBase::getProgramInfoLog(WebGLProgram* program, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(ec);
</span><del>- if (isContextLostOrPending())
</del><ins>+ if (isContextLostOrPending() || !validateWebGLObject("getProgramInfoLog", program))
</ins><span class="cx"> return String();
</span><del>- if (!validateWebGLObject("getProgramInfoLog", program))
- return "";
</del><span class="cx"> return ensureNotNull(m_context->getProgramInfoLog(objectOrZero(program)));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2714,10 +2712,8 @@
</span><span class="cx"> String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader* shader, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(ec);
</span><del>- if (isContextLostOrPending())
</del><ins>+ if (isContextLostOrPending() || !validateWebGLObject("getShaderInfoLog", shader))
</ins><span class="cx"> return String();
</span><del>- if (!validateWebGLObject("getShaderInfoLog", shader))
- return "";
</del><span class="cx"> return ensureNotNull(m_context->getShaderInfoLog(objectOrZero(shader)));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2756,10 +2752,8 @@
</span><span class="cx"> String WebGLRenderingContextBase::getShaderSource(WebGLShader* shader, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(ec);
</span><del>- if (isContextLostOrPending())
</del><ins>+ if (isContextLostOrPending() || !validateWebGLObject("getShaderSource", shader))
</ins><span class="cx"> return String();
</span><del>- if (!validateWebGLObject("getShaderSource", shader))
- return "";
</del><span class="cx"> return ensureNotNull(shader->getSource());
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>