<!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>[265841] 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/265841">265841</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2020-08-18 16:49:22 -0700 (Tue, 18 Aug 2020)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WebGL2] Various parameters should be non-nullable in IDL
https://bugs.webkit.org/show_bug.cgi?id=215616

Patch by James Darpinian <jdarpinian@chromium.org> on 2020-08-18
Reviewed by Kenneth Russell.

Source/WebCore:

Fixes 5 conformance tests:
conformance/misc/error-reporting.html
conformance/misc/null-object-behaviour.html
conformance/misc/bad-arguments-test.html
conformance/textures/misc/tex-sub-image-2d-bad-args.html
conformance/programs/get-active-test.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindAttribLocation):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getAttachedShaders):
(WebCore::WebGLRenderingContextBase::getAttribLocation):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::linkProgram):
(WebCore::WebGLRenderingContextBase::shaderSource):
(WebCore::WebGLRenderingContextBase::validateProgram):
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLRenderingContextBase.idl:
* inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::updateShader):

LayoutTests:

* fast/canvas/webgl/context-lost-expected.txt:
* fast/canvas/webgl/context-lost.html:
* fast/canvas/webgl/error-reporting-expected.txt:
* fast/canvas/webgl/error-reporting.html:
* fast/canvas/webgl/get-active-test-expected.txt:
* fast/canvas/webgl/get-active-test.html:
* fast/canvas/webgl/gl-object-get-calls-expected.txt:
* fast/canvas/webgl/gl-object-get-calls.html:
* fast/canvas/webgl/null-object-behaviour-expected.txt:
* fast/canvas/webgl/null-object-behaviour.html:
* inspector/canvas/recording-webgl-frameCount.html:
* inspector/canvas/recording-webgl-full-expected.txt:
* inspector/canvas/recording-webgl-full.html:
* inspector/canvas/recording-webgl-memoryLimit.html:
* inspector/canvas/recording-webgl-snapshots.html:
* inspector/canvas/recording-webgl2-frameCount.html:
* inspector/canvas/recording-webgl2-full.html:
* inspector/canvas/recording-webgl2-memoryLimit.html:
* inspector/canvas/recording-webgl2-snapshots.html:
* inspector/canvas/resources/recording-webgl.js:
(load):
* webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt:
* webgl/2.0.0/conformance/misc/error-reporting-expected.txt:
* webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt:
* webgl/2.0.0/conformance/programs/get-active-test-expected.txt:
* webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt:
* webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt:
* webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglcontextlostexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/context-lost-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglcontextlosthtml">trunk/LayoutTests/fast/canvas/webgl/context-lost.html</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglerrorreportingexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/error-reporting-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglerrorreportinghtml">trunk/LayoutTests/fast/canvas/webgl/error-reporting.html</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglgetactivetestexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/get-active-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglgetactivetesthtml">trunk/LayoutTests/fast/canvas/webgl/get-active-test.html</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglglobjectgetcallsexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglglobjectgetcallshtml">trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls.html</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglnullobjectbehaviourexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglnullobjectbehaviourhtml">trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebglframeCounthtml">trunk/LayoutTests/inspector/canvas/recording-webgl-frameCount.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebglfullexpectedtxt">trunk/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebglfullhtml">trunk/LayoutTests/inspector/canvas/recording-webgl-full.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebglmemoryLimithtml">trunk/LayoutTests/inspector/canvas/recording-webgl-memoryLimit.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebglsnapshotshtml">trunk/LayoutTests/inspector/canvas/recording-webgl-snapshots.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebgl2frameCounthtml">trunk/LayoutTests/inspector/canvas/recording-webgl2-frameCount.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebgl2fullhtml">trunk/LayoutTests/inspector/canvas/recording-webgl2-full.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebgl2memoryLimithtml">trunk/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasrecordingwebgl2snapshotshtml">trunk/LayoutTests/inspector/canvas/recording-webgl2-snapshots.html</a></li>
<li><a href="#trunkLayoutTestsinspectorcanvasresourcesrecordingwebgljs">trunk/LayoutTests/inspector/canvas/resources/recording-webgl.js</a></li>
<li><a href="#trunkLayoutTestswebgl200conformancemiscbadargumentstestexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformancemiscerrorreportingexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformancemiscnullobjectbehaviourexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformanceprogramsgetactivetestexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformancestateglobjectgetcallsexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformancetexturesmisctexsubimage2dbadargsexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebgl200conformance2stateglobjectgetcallsexpectedtxt">trunk/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt</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>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseidl">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorShaderProgramcpp">trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/ChangeLog 2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,3 +1,39 @@
</span><ins>+2020-08-18  James Darpinian  <jdarpinian@chromium.org>
+
+        [WebGL2] Various parameters should be non-nullable in IDL
+        https://bugs.webkit.org/show_bug.cgi?id=215616
+
+        Reviewed by Kenneth Russell.
+
+        * fast/canvas/webgl/context-lost-expected.txt:
+        * fast/canvas/webgl/context-lost.html:
+        * fast/canvas/webgl/error-reporting-expected.txt:
+        * fast/canvas/webgl/error-reporting.html:
+        * fast/canvas/webgl/get-active-test-expected.txt:
+        * fast/canvas/webgl/get-active-test.html:
+        * fast/canvas/webgl/gl-object-get-calls-expected.txt:
+        * fast/canvas/webgl/gl-object-get-calls.html:
+        * fast/canvas/webgl/null-object-behaviour-expected.txt:
+        * fast/canvas/webgl/null-object-behaviour.html:
+        * inspector/canvas/recording-webgl-frameCount.html:
+        * inspector/canvas/recording-webgl-full-expected.txt:
+        * inspector/canvas/recording-webgl-full.html:
+        * inspector/canvas/recording-webgl-memoryLimit.html:
+        * inspector/canvas/recording-webgl-snapshots.html:
+        * inspector/canvas/recording-webgl2-frameCount.html:
+        * inspector/canvas/recording-webgl2-full.html:
+        * inspector/canvas/recording-webgl2-memoryLimit.html:
+        * inspector/canvas/recording-webgl2-snapshots.html:
+        * inspector/canvas/resources/recording-webgl.js:
+        (load):
+        * webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt:
+        * webgl/2.0.0/conformance/misc/error-reporting-expected.txt:
+        * webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt:
+        * webgl/2.0.0/conformance/programs/get-active-test-expected.txt:
+        * webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt:
+        * webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt:
+        * webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
+
</ins><span class="cx"> 2020-08-18  Kenneth Russell  <kbr@chromium.org>
</span><span class="cx"> 
</span><span class="cx">         [WebGL2] Pass user-defined-properties-on-context.html layout test
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglcontextlostexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/context-lost-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/context-lost-expected.txt    2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/context-lost-expected.txt       2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imageData) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image) was expected value: NO_ERROR.
</span><del>-PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas) was expected value: NO_ERROR.
</del><ins>+PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d) was expected value: NO_ERROR.
</ins><span class="cx"> PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST) was expected value: NO_ERROR.
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, imageData) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image) was expected value: NO_ERROR.
</span><del>-PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas) was expected value: NO_ERROR.
</del><ins>+PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d) was expected value: NO_ERROR.
</ins><span class="cx"> PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, video) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.uniform1f(uniformLocation, 0) was expected value: NO_ERROR.
</span><span class="cx"> PASS gl.uniform1fv(uniformLocation, float32array) was expected value: NO_ERROR.
</span><span class="lines">@@ -178,6 +178,10 @@
</span><span class="cx"> PASS gl.isShader(shader) is false
</span><span class="cx"> PASS gl.isTexture(texture) is false
</span><span class="cx"> PASS gl.getError() is gl.NO_ERROR
</span><ins>+PASS OES_vertex_array_object.bindVertexArrayOES(vertexArrayObject) was expected value: NO_ERROR.
+PASS OES_vertex_array_object.isVertexArrayOES(vertexArrayObject) was expected value: NO_ERROR.
+PASS OES_vertex_array_object.deleteVertexArrayOES(vertexArrayObject) was expected value: NO_ERROR.
+PASS OES_vertex_array_object.createVertexArrayOES() is null
</ins><span class="cx"> 
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglcontextlosthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/context-lost.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/context-lost.html    2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/context-lost.html       2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -31,6 +31,8 @@
</span><span class="cx"> var imageData;
</span><span class="cx"> var float32array;
</span><span class="cx"> var int32array;
</span><ins>+var OES_vertex_array_object;
+var vertexArrayObject;
</ins><span class="cx"> 
</span><span class="cx"> function init()
</span><span class="cx"> {
</span><span class="lines">@@ -49,15 +51,22 @@
</span><span class="cx">     // for the isContextLost() method, which we want to do regardless of the extension's presence.
</span><span class="cx">     testValidContext();
</span><span class="cx"> 
</span><del>-    extension = gl.getExtension("WEBGL_lose_context");
-    if (!extension) {
-        debug("Could not find lose_context extension under the following names: WEBGL_lose_context");
</del><ins>+    extensionName = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_lose_context");
+    if (!extensionName) {
+        debug("Could not find WEBGL_lose_context extension");
</ins><span class="cx">         finishTest();
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><ins>+    extension = gl.getExtension(extensionName);
</ins><span class="cx"> 
</span><ins>+    // need an extension that exposes new API methods.
+    OES_vertex_array_object = wtu.getExtensionWithKnownPrefixes(gl, "OES_vertex_array_object");
+
</ins><span class="cx">     canvas.addEventListener("webglcontextlost", testLostContext, false);
</span><span class="cx"> 
</span><ins>+    // We need to initialize |uniformLocation| before losing context.
+    // Otherwise gl.getUniform() when context is lost will throw.
+    uniformLocation = gl.getUniformLocation(program, "tex");
</ins><span class="cx">     loseContext();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -103,8 +112,26 @@
</span><span class="cx">     shouldBeTrue("gl.isRenderbuffer(renderbuffer)");
</span><span class="cx">     shouldBeTrue("gl.isShader(shader)");
</span><span class="cx">     shouldBeTrue("gl.isTexture(texture)");
</span><ins>+
+    if (OES_vertex_array_object) {
+      vertexArrayObject = OES_vertex_array_object.createVertexArrayOES();
+      shouldBe("gl.getError()", "gl.NO_ERROR");
+      shouldBeTrue("OES_vertex_array_object.isVertexArrayOES(vertexArrayObject)");
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function testGLNOErrorFunctions(tests) {
+  tests.forEach(function(test) {
+      shouldGenerateGLError(gl, gl.NO_ERROR, test);
+  });
+}
+
+function testFunctionsThatReturnNULL(tests) {
+  tests.forEach(function(test) {
+      shouldBeNull(test);
+  });
+}
+
</ins><span class="cx"> function testLostContext()
</span><span class="cx"> {
</span><span class="cx">     debug("Test lost context");
</span><span class="lines">@@ -198,7 +225,7 @@
</span><span class="cx">         "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)",
</span><span class="cx">         "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imageData)",
</span><span class="cx">         "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image)",
</span><del>-        "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas)",
</del><ins>+        "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d)",
</ins><span class="cx">         "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video)",
</span><span class="cx">         "gl.texParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)",
</span><span class="cx">         "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)",
</span><span class="lines">@@ -205,7 +232,7 @@
</span><span class="cx">         "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)",
</span><span class="cx">         "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, imageData)",
</span><span class="cx">         "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image)",
</span><del>-        "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas)",
</del><ins>+        "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d)",
</ins><span class="cx">         "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, video)",
</span><span class="cx">         "gl.uniform1f(uniformLocation, 0)",
</span><span class="cx">         "gl.uniform1fv(uniformLocation, float32array)",
</span><span class="lines">@@ -254,9 +281,7 @@
</span><span class="cx">         "gl.vertexAttribPointer(0, 0, gl.FLOAT, false, 0, 0)",
</span><span class="cx">         "gl.viewport(0, 0, 0, 0)",
</span><span class="cx">     ];
</span><del>-    for (var i = 0; i < voidTests.length; ++i) {
-        shouldGenerateGLError(gl, gl.NO_ERROR, voidTests[i]);
-    }
</del><ins>+    testGLNOErrorFunctions(voidTests);
</ins><span class="cx"> 
</span><span class="cx">     // Functions return nullable values should all return null.
</span><span class="cx">     var nullTests = [
</span><span class="lines">@@ -284,11 +309,9 @@
</span><span class="cx">         "gl.getUniformLocation(program, 'vPosition')",
</span><span class="cx">         "gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)",
</span><span class="cx">         "gl.getSupportedExtensions()",
</span><del>-        "gl.getExtension('WEBGL_lose_context')",
</del><ins>+        "gl.getExtension('" + extensionName + "')",
</ins><span class="cx">     ];
</span><del>-    for (var i = 0; i < nullTests.length; ++i) {
-        shouldBeNull(nullTests[i]);
-    }
</del><ins>+    testFunctionsThatReturnNULL(nullTests);
</ins><span class="cx"> 
</span><span class="cx">     // "Is" queries should all return false.
</span><span class="cx">     shouldBeFalse("gl.isBuffer(buffer)");
</span><span class="lines">@@ -301,6 +324,20 @@
</span><span class="cx"> 
</span><span class="cx">     shouldBe("gl.getError()", "gl.NO_ERROR");
</span><span class="cx"> 
</span><ins>+    // test extensions
+    if (OES_vertex_array_object) {
+      testGLNOErrorFunctions(
+        [
+          "OES_vertex_array_object.bindVertexArrayOES(vertexArrayObject)",
+          "OES_vertex_array_object.isVertexArrayOES(vertexArrayObject)",
+          "OES_vertex_array_object.deleteVertexArrayOES(vertexArrayObject)",
+        ]);
+      testFunctionsThatReturnNULL(
+        [
+          "OES_vertex_array_object.createVertexArrayOES()",
+        ]);
+    }
+
</ins><span class="cx">     debug("");
</span><span class="cx"> 
</span><span class="cx">     finishTest();
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglerrorreportingexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/error-reporting-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/error-reporting-expected.txt 2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/error-reporting-expected.txt    2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -4,15 +4,14 @@
</span><span class="cx"> 
</span><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><span class="cx"> Testing getActiveAttrib
</span><del>-PASS context.getActiveAttrib(null, 2) is null
-PASS getError was expected value: INVALID_VALUE : 
</del><ins>+PASS context.getActiveAttrib(null, 2) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getActiveAttrib must be an instance of WebGLProgram.
</ins><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><ins>+PASS getError was expected value: NO_ERROR : 
</ins><span class="cx"> PASS context.getActiveAttrib(program, 2) is null
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><span class="cx"> Testing getActiveUniform
</span><del>-PASS context.getActiveUniform(null, 0) is null
-PASS getError was expected value: INVALID_VALUE : 
</del><ins>+PASS context.getActiveUniform(null, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getActiveUniform must be an instance of WebGLProgram.
</ins><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><span class="cx"> PASS context.getActiveUniform(program, 50) is null
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglerrorreportinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/error-reporting.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/error-reporting.html 2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/error-reporting.html    2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -26,9 +26,8 @@
</span><span class="cx"> glErrorShouldBe(context, context.NO_ERROR);
</span><span class="cx"> 
</span><span class="cx"> debug("Testing getActiveAttrib");
</span><del>-// Synthetic OpenGL error
-shouldBeNull("context.getActiveAttrib(null, 2)");
-glErrorShouldBe(context, context.INVALID_VALUE);
</del><ins>+shouldThrow("context.getActiveAttrib(null, 2)");
+glErrorShouldBe(context, context.NO_ERROR);
</ins><span class="cx"> // Error state should be clear by this point
</span><span class="cx"> glErrorShouldBe(context, context.NO_ERROR);
</span><span class="cx"> // Real OpenGL error
</span><span class="lines">@@ -38,9 +37,7 @@
</span><span class="cx"> glErrorShouldBe(context, context.NO_ERROR);
</span><span class="cx"> 
</span><span class="cx"> debug("Testing getActiveUniform");
</span><del>-// Synthetic OpenGL error
-shouldBeNull("context.getActiveUniform(null, 0)");
-glErrorShouldBe(context, context.INVALID_VALUE);
</del><ins>+shouldThrow("context.getActiveUniform(null, 0)");
</ins><span class="cx"> // Error state should be clear by this point
</span><span class="cx"> glErrorShouldBe(context, context.NO_ERROR);
</span><span class="cx"> // Real OpenGL error
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglgetactivetestexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/get-active-test-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/get-active-test-expected.txt 2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/get-active-test-expected.txt    2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -10,8 +10,8 @@
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span><span class="cx"> PASS context.getActiveUniform(program, -1) is null
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span><del>-PASS context.getActiveUniform(null, 0) is null
-PASS getError was expected value: INVALID_VALUE : 
</del><ins>+PASS context.getActiveUniform(null, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getActiveUniform must be an instance of WebGLProgram.
+PASS getError was expected value: NO_ERROR : 
</ins><span class="cx"> PASS info[ii] is non-null.
</span><span class="cx"> PASS info[ii] is non-null.
</span><span class="cx"> PASS info[ii].name is expected[ii].name
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span><span class="cx"> PASS context.getActiveAttrib(program, -1) is null
</span><span class="cx"> PASS getError was expected value: INVALID_VALUE : 
</span><del>-PASS context.getActiveAttrib(null, 0) is null
-PASS getError was expected value: INVALID_VALUE : 
</del><ins>+PASS context.getActiveAttrib(null, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getActiveAttrib must be an instance of WebGLProgram.
</ins><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><ins>+PASS getError was expected value: NO_ERROR : 
</ins><span class="cx"> Check trying to get attribs from different context
</span><span class="cx"> PASS context2.getActiveAttrib(program, 0) is null
</span><span class="cx"> PASS getError was expected value: INVALID_OPERATION : 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglgetactivetesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/get-active-test.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/get-active-test.html 2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/get-active-test.html    2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> glErrorShouldBe(context, context.INVALID_VALUE);
</span><span class="cx"> shouldBeNull("context.getActiveUniform(program, -1)");
</span><span class="cx"> glErrorShouldBe(context, context.INVALID_VALUE);
</span><del>-shouldBeNull("context.getActiveUniform(null, 0)");
-glErrorShouldBe(context, context.INVALID_VALUE);
</del><ins>+shouldThrow("context.getActiveUniform(null, 0)");
+glErrorShouldBe(context, context.NO_ERROR);
</ins><span class="cx"> 
</span><span class="cx"> // we don't know the order the attribs will appear.
</span><span class="cx"> var info = [
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx"> glErrorShouldBe(context, context.INVALID_VALUE);
</span><span class="cx"> shouldBeNull("context.getActiveAttrib(program, -1)");
</span><span class="cx"> glErrorShouldBe(context, context.INVALID_VALUE);
</span><del>-shouldBeNull("context.getActiveAttrib(null, 0)");
-glErrorShouldBe(context, context.INVALID_VALUE);
</del><ins>+shouldThrow("context.getActiveAttrib(null, 0)");
+glErrorShouldBe(context, context.NO_ERROR);
</ins><span class="cx"> 
</span><span class="cx"> glErrorShouldBe(context2, context.NO_ERROR);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglglobjectgetcallsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls-expected.txt     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls-expected.txt        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -5,8 +5,8 @@
</span><span class="cx"> PASS shaders.length is 2
</span><span class="cx"> PASS shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == standardVert && shaders[0] == standardFrag is true
</span><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><del>-PASS gl.getAttachedShaders(null) is null
-PASS getError was expected value: INVALID_VALUE : 
</del><ins>+PASS gl.getAttachedShaders(null) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getAttachedShaders must be an instance of WebGLProgram.
+PASS getError was expected value: NO_ERROR : 
</ins><span class="cx"> PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getAttachedShaders must be an instance of WebGLProgram.
</span><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><span class="cx"> PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE) is 16
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglglobjectgetcallshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls.html     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/gl-object-get-calls.html        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> shouldBe('shaders.length', '2');
</span><span class="cx"> shouldBeTrue('shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == standardVert && shaders[0] == standardFrag');
</span><span class="cx"> glErrorShouldBe(gl, gl.NO_ERROR);
</span><del>-shouldBeNull('gl.getAttachedShaders(null)');
-glErrorShouldBe(gl, gl.INVALID_VALUE);
</del><ins>+shouldThrow('gl.getAttachedShaders(null)');
+glErrorShouldBe(gl, gl.NO_ERROR);
</ins><span class="cx"> shouldThrow('gl.getAttachedShaders(standardVert)');
</span><span class="cx"> glErrorShouldBe(gl, gl.NO_ERROR);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglnullobjectbehaviourexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour-expected.txt   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour-expected.txt      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -4,16 +4,16 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Program Compiled
</span><span class="cx"> PASS Shader Compiled
</span><del>-PASS context.compileShader(undefined) was expected value: INVALID_VALUE.
-PASS context.linkProgram(undefined) was expected value: INVALID_VALUE.
-PASS context.attachShader(undefined, undefined) was expected value: INVALID_VALUE.
-PASS context.attachShader(program, undefined) was expected value: INVALID_VALUE.
-PASS context.attachShader(undefined, shader) was expected value: INVALID_VALUE.
-PASS context.detachShader(program, undefined) was expected value: INVALID_VALUE.
-PASS context.detachShader(undefined, shader) was expected value: INVALID_VALUE.
-PASS context.shaderSource(undefined, undefined) was expected value: INVALID_VALUE.
-PASS context.shaderSource(undefined, 'foo') was expected value: INVALID_VALUE.
-PASS context.bindAttribLocation(undefined, 0, 'foo') was expected value: INVALID_VALUE.
</del><ins>+PASS context.compileShader(undefined) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.compileShader must be an instance of WebGLShader.
+PASS context.linkProgram(undefined) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.linkProgram must be an instance of WebGLProgram.
+PASS context.attachShader(undefined, undefined) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.attachShader must be an instance of WebGLProgram.
+PASS context.attachShader(program, undefined) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.attachShader must be an instance of WebGLShader.
+PASS context.attachShader(undefined, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.attachShader must be an instance of WebGLProgram.
+PASS context.detachShader(program, undefined) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.detachShader must be an instance of WebGLShader.
+PASS context.detachShader(undefined, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.detachShader must be an instance of WebGLProgram.
+PASS context.shaderSource(undefined, undefined) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.shaderSource must be an instance of WebGLShader.
+PASS context.shaderSource(undefined, 'foo') threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.shaderSource must be an instance of WebGLShader.
+PASS context.bindAttribLocation(undefined, 0, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.bindAttribLocation must be an instance of WebGLProgram.
</ins><span class="cx"> PASS context.bindBuffer(context.ARRAY_BUFFER, 0) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContext.bindBuffer must be an instance of WebGLBuffer.
</span><span class="cx"> PASS context.bindFramebuffer(context.FRAMEBUFFER, 0) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContext.bindFramebuffer must be an instance of WebGLFramebuffer.
</span><span class="cx"> PASS context.bindRenderbuffer(context.RENDERBUFFER, 0) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContext.bindRenderbuffer must be an instance of WebGLRenderbuffer.
</span><span class="lines">@@ -28,13 +28,13 @@
</span><span class="cx"> PASS context.bindTexture(context.TEXTURE_2D, undefined) was expected value: NO_ERROR.
</span><span class="cx"> PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null) was expected value: INVALID_OPERATION.
</span><span class="cx"> PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0) was expected value: INVALID_OPERATION.
</span><del>-PASS context.getProgramParameter(undefined, 0) was expected value: INVALID_VALUE.
-PASS context.getProgramInfoLog(undefined, 0) was expected value: INVALID_VALUE.
-PASS context.getShaderParameter(undefined, 0) was expected value: INVALID_VALUE.
-PASS context.getShaderInfoLog(undefined, 0) was expected value: INVALID_VALUE.
-PASS context.getShaderSource(undefined) was expected value: INVALID_VALUE.
-PASS context.getUniform(undefined, null) was expected value: INVALID_VALUE.
-PASS context.getUniformLocation(undefined, 'foo') was expected value: INVALID_VALUE.
</del><ins>+PASS context.getProgramParameter(undefined, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramParameter must be an instance of WebGLProgram.
+PASS context.getProgramInfoLog(undefined, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramInfoLog must be an instance of WebGLProgram.
+PASS context.getShaderParameter(undefined, 0) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderParameter must be an instance of WebGLShader.
+PASS context.getShaderInfoLog(undefined, 0) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderInfoLog must be an instance of WebGLShader.
+PASS context.getShaderSource(undefined) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderSource must be an instance of WebGLShader.
+PASS context.getUniform(undefined, null) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniform must be an instance of WebGLProgram.
+PASS context.getUniformLocation(undefined, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniformLocation must be an instance of WebGLProgram.
</ins><span class="cx"> 
</span><span class="cx"> check with bindings
</span><span class="cx"> PASS context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW) was expected value: NO_ERROR.
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglnullobjectbehaviourhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour.html   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/fast/canvas/webgl/null-object-behaviour.html      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -22,16 +22,16 @@
</span><span class="cx"> 
</span><span class="cx"> assertMsg(program != null, "Program Compiled");
</span><span class="cx"> assertMsg(shader != null, "Shader Compiled");
</span><del>-shouldGenerateGLError(context, context.INVALID_VALUE, "context.compileShader(undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.linkProgram(undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.attachShader(undefined, undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.attachShader(program, undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.attachShader(undefined, shader)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.detachShader(program, undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.detachShader(undefined, shader)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.shaderSource(undefined, undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.shaderSource(undefined, 'foo')");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.bindAttribLocation(undefined, 0, 'foo')");
</del><ins>+shouldThrow("context.compileShader(undefined)");
+shouldThrow("context.linkProgram(undefined)");
+shouldThrow("context.attachShader(undefined, undefined)");
+shouldThrow("context.attachShader(program, undefined)");
+shouldThrow("context.attachShader(undefined, shader)");
+shouldThrow("context.detachShader(program, undefined)");
+shouldThrow("context.detachShader(undefined, shader)");
+shouldThrow("context.shaderSource(undefined, undefined)");
+shouldThrow("context.shaderSource(undefined, 'foo')");
+shouldThrow("context.bindAttribLocation(undefined, 0, 'foo')");
</ins><span class="cx"> shouldThrow("context.bindBuffer(context.ARRAY_BUFFER, 0)");
</span><span class="cx"> shouldThrow("context.bindFramebuffer(context.FRAMEBUFFER, 0)");
</span><span class="cx"> shouldThrow("context.bindRenderbuffer(context.RENDERBUFFER, 0)");
</span><span class="lines">@@ -46,13 +46,13 @@
</span><span class="cx"> shouldGenerateGLError(context, context.NO_ERROR, "context.bindTexture(context.TEXTURE_2D, undefined)");
</span><span class="cx"> shouldGenerateGLError(context, context.INVALID_OPERATION, "context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)");
</span><span class="cx"> shouldGenerateGLError(context, context.INVALID_OPERATION, "context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)");
</span><del>-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getProgramParameter(undefined, 0)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getProgramInfoLog(undefined, 0)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getShaderParameter(undefined, 0)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getShaderInfoLog(undefined, 0)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getShaderSource(undefined)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getUniform(undefined, null)");
-shouldGenerateGLError(context, context.INVALID_VALUE, "context.getUniformLocation(undefined, 'foo')");
</del><ins>+shouldThrow("context.getProgramParameter(undefined, 0)");
+shouldThrow("context.getProgramInfoLog(undefined, 0)");
+shouldThrow("context.getShaderParameter(undefined, 0)");
+shouldThrow("context.getShaderInfoLog(undefined, 0)");
+shouldThrow("context.getShaderSource(undefined)");
+shouldThrow("context.getUniform(undefined, null)");
+shouldThrow("context.getUniformLocation(undefined, 'foo')");
</ins><span class="cx"> 
</span><span class="cx"> debug("");
</span><span class="cx"> debug("check with bindings");
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebglframeCounthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl-frameCount.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl-frameCount.html       2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl-frameCount.html  2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebglfullexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -527,8 +527,8 @@
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   73: (duration)
</span><del>-    0: getUniform(0)
-      swizzleTypes: [WebGLProgram]
</del><ins>+    0: getUniform(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLUniformLocation]
</ins><span class="cx">       trace:
</span><span class="cx">         0: getUniform
</span><span class="cx">         1: (anonymous function)
</span><span class="lines">@@ -762,134 +762,134 @@
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   105: (duration)
</span><del>-    0: uniform1f(1)
-      swizzleTypes: [Number]
</del><ins>+    0: uniform1f(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform1f
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   106: (duration)
</span><del>-    0: uniform1fv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform1fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform1fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   107: (duration)
</span><del>-    0: uniform1i(1)
-      swizzleTypes: [Number]
</del><ins>+    0: uniform1i(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform1i
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   108: (duration)
</span><del>-    0: uniform1iv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform1iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform1iv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   109: (duration)
</span><del>-    0: uniform2f(1, 2)
-      swizzleTypes: [Number, Number]
</del><ins>+    0: uniform2f(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform2f
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   110: (duration)
</span><del>-    0: uniform2fv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform2fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform2fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   111: (duration)
</span><del>-    0: uniform2i(1, 2)
-      swizzleTypes: [Number, Number]
</del><ins>+    0: uniform2i(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform2i
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   112: (duration)
</span><del>-    0: uniform2iv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform2iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform2iv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   113: (duration)
</span><del>-    0: uniform3f(1, 2, 3)
-      swizzleTypes: [Number, Number, Number]
</del><ins>+    0: uniform3f(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform3f
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   114: (duration)
</span><del>-    0: uniform3fv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform3fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform3fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   115: (duration)
</span><del>-    0: uniform3i(1, 2, 3)
-      swizzleTypes: [Number, Number, Number]
</del><ins>+    0: uniform3i(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform3i
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   116: (duration)
</span><del>-    0: uniform3iv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform3iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform3iv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   117: (duration)
</span><del>-    0: uniform4f(1, 2, 3, 4)
-      swizzleTypes: [Number, Number, Number, Number]
</del><ins>+    0: uniform4f(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform4f
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   118: (duration)
</span><del>-    0: uniform4fv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform4fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform4fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   119: (duration)
</span><del>-    0: uniform4i(1, 2, 3, 4)
-      swizzleTypes: [Number, Number, Number, Number]
</del><ins>+    0: uniform4i(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform4i
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   120: (duration)
</span><del>-    0: uniform4iv(0)
-      swizzleTypes: [TypedArray]
</del><ins>+    0: uniform4iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniform4iv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   121: (duration)
</span><del>-    0: uniformMatrix2fv(true, 0)
-      swizzleTypes: [Boolean, TypedArray]
</del><ins>+    0: uniformMatrix2fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniformMatrix2fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   122: (duration)
</span><del>-    0: uniformMatrix3fv(true, 0)
-      swizzleTypes: [Boolean, TypedArray]
</del><ins>+    0: uniformMatrix3fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniformMatrix3fv
</span><span class="cx">         1: (anonymous function)
</span><span class="cx">         2: executeFrameFunction
</span><span class="cx">   123: (duration)
</span><del>-    0: uniformMatrix4fv(true, 0)
-      swizzleTypes: [Boolean, TypedArray]
</del><ins>+    0: uniformMatrix4fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
</ins><span class="cx">       trace:
</span><span class="cx">         0: uniformMatrix4fv
</span><span class="cx">         1: (anonymous function)
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebglfullhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl-full.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl-full.html     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl-full.html        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebglmemoryLimithtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl-memoryLimit.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl-memoryLimit.html      2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl-memoryLimit.html 2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebglsnapshotshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl-snapshots.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl-snapshots.html        2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl-snapshots.html   2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec3 position;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><span class="cx">         gl_Position = vec4(position, 1.0);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebgl2frameCounthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl2-frameCount.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl2-frameCount.html      2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl2-frameCount.html 2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebgl2fullhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl2-full.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl2-full.html    2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl2-full.html       2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebgl2memoryLimithtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit.html     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit.html        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,8 +6,9 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec4 test;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><del>-        gl_Position = test;
</del><ins>+        gl_Position = test + testUniform;
</ins><span class="cx">     }
</span><span class="cx"> </script>
</span><span class="cx"> <script id="fragment-shader" type="x-shader/x-fragment">
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasrecordingwebgl2snapshotshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/recording-webgl2-snapshots.html (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/recording-webgl2-snapshots.html       2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/recording-webgl2-snapshots.html  2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> <script src="resources/shaderProgram-utilities-webgl.js"></script>
</span><span class="cx"> <script id="vertex-shader" type="x-shader/x-vertex">
</span><span class="cx">     attribute vec3 position;
</span><ins>+    uniform vec4 testUniform;
</ins><span class="cx">     void main(void) {
</span><span class="cx">         gl_Position = vec4(position, 1.0);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkLayoutTestsinspectorcanvasresourcesrecordingwebgljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/canvas/resources/recording-webgl.js (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/canvas/resources/recording-webgl.js  2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/inspector/canvas/resources/recording-webgl.js     2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> 
</span><span class="cx">     buffer = context.createBuffer();
</span><span class="cx">     framebuffer = context.createFramebuffer();
</span><del>-    uniformLocation = context.getUniformLocation(program, "test");
</del><ins>+    uniformLocation = context.getUniformLocation(program, "testUniform");
</ins><span class="cx">     renderbuffer = context.createRenderbuffer();
</span><span class="cx">     shader = context.createShader(context.VERTEX_SHADER);
</span><span class="cx">     texture = context.createTexture();
</span></span></pre></div>
<a id="trunkLayoutTestswebgl200conformancemiscbadargumentstestexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,113 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../resources/webgl_test_files/conformance/misc/bad-arguments-test.html
</span><del>-
-[ 1: PASS ] Program Compiled
-[ 2: PASS ] Shader Compiled
-[ 3: PASS ] getUniformLocation succeeded
-[ 4: PASS ] context.compileShader(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.compileShader must be an instance of WebGLShader.
-[ 5: PASS ] context.linkProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.linkProgram must be an instance of WebGLProgram.
-[ 6: PASS ] context.attachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.attachShader must be an instance of WebGLShader.
-[ 7: PASS ] context.attachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.attachShader must be an instance of WebGLProgram.
-[ 8: PASS ] context.detachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.detachShader must be an instance of WebGLShader.
-[ 9: PASS ] context.detachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.detachShader must be an instance of WebGLProgram.
-[ 10: PASS ] context.shaderSource(argument, 'foo') threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.shaderSource must be an instance of WebGLShader.
-[ 11: PASS ] context.bindAttribLocation(argument, 0, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.bindAttribLocation must be an instance of WebGLProgram.
-[ 12: PASS ] context.getProgramInfoLog(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramInfoLog must be an instance of WebGLProgram.
-[ 13: PASS ] context.getProgramParameter(argument, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramParameter must be an instance of WebGLProgram.
-[ 14: PASS ] context.getShaderInfoLog(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderInfoLog must be an instance of WebGLShader.
-[ 15: PASS ] context.getShaderParameter(argument, 0) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderParameter must be an instance of WebGLShader.
-[ 16: PASS ] context.getShaderSource(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderSource must be an instance of WebGLShader.
-[ 17: PASS ] context.getUniform(argument, loc) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniform must be an instance of WebGLProgram.
-[ 18: PASS ] context.getUniform(program, argument) threw exception TypeError: Argument 2 ('location') to WebGLRenderingContext.getUniform must be an instance of WebGLUniformLocation.
-[ 19: PASS ] context.getUniformLocation(argument, 'u_modelViewProjMatrix') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniformLocation must be an instance of WebGLProgram.
-[ 20: PASS ] context.bindBuffer(context.ARRAY_BUFFER, argument) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContext.bindBuffer must be an instance of WebGLBuffer.
-[ 21: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, argument) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContext.bindFramebuffer must be an instance of WebGLFramebuffer.
-[ 22: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, argument) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContext.bindRenderbuffer must be an instance of WebGLRenderbuffer.
-[ 23: PASS ] context.bindTexture(context.TEXTURE_2D, argument) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContext.bindTexture must be an instance of WebGLTexture.
-[ 24: PASS ] context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) threw exception TypeError: Argument 4 ('renderbuffer') to WebGLRenderingContext.framebufferRenderbuffer must be an instance of WebGLRenderbuffer.
-[ 25: PASS ] context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) threw exception TypeError: Argument 4 ('texture') to WebGLRenderingContext.framebufferTexture2D must be an instance of WebGLTexture.
-[ 26: PASS ] context.uniform2fv(argument, new Float32Array([0.0, 0.0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniform2fv must be an instance of WebGLUniformLocation.
-[ 27: PASS ] context.uniform2iv(argument, new Int32Array([0, 0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniform2iv must be an instance of WebGLUniformLocation.
-[ 28: PASS ] context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniformMatrix2fv must be an instance of WebGLUniformLocation.
-[ 29: PASS ] context.useProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.useProgram must be an instance of WebGLProgram.
-[ 30: PASS ] context.compileShader(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.compileShader must be an instance of WebGLShader.
-[ 31: PASS ] context.linkProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.linkProgram must be an instance of WebGLProgram.
-[ 32: PASS ] context.attachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.attachShader must be an instance of WebGLShader.
-[ 33: PASS ] context.attachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.attachShader must be an instance of WebGLProgram.
-[ 34: PASS ] context.detachShader(program, argument) threw exception TypeError: Argument 2 ('shader') to WebGLRenderingContext.detachShader must be an instance of WebGLShader.
-[ 35: PASS ] context.detachShader(argument, shader) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.detachShader must be an instance of WebGLProgram.
-[ 36: PASS ] context.shaderSource(argument, 'foo') threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.shaderSource must be an instance of WebGLShader.
-[ 37: PASS ] context.bindAttribLocation(argument, 0, 'foo') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.bindAttribLocation must be an instance of WebGLProgram.
-[ 38: PASS ] context.getProgramInfoLog(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramInfoLog must be an instance of WebGLProgram.
-[ 39: PASS ] context.getProgramParameter(argument, 0) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getProgramParameter must be an instance of WebGLProgram.
-[ 40: PASS ] context.getShaderInfoLog(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderInfoLog must be an instance of WebGLShader.
-[ 41: PASS ] context.getShaderParameter(argument, 0) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderParameter must be an instance of WebGLShader.
-[ 42: PASS ] context.getShaderSource(argument) threw exception TypeError: Argument 1 ('shader') to WebGLRenderingContext.getShaderSource must be an instance of WebGLShader.
-[ 43: PASS ] context.getUniform(argument, loc) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniform must be an instance of WebGLProgram.
-[ 44: PASS ] context.getUniform(program, argument) threw exception TypeError: Argument 2 ('location') to WebGLRenderingContext.getUniform must be an instance of WebGLUniformLocation.
-[ 45: PASS ] context.getUniformLocation(argument, 'u_modelViewProjMatrix') threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getUniformLocation must be an instance of WebGLProgram.
-[ 46: PASS ] context.bindBuffer(context.ARRAY_BUFFER, argument) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContext.bindBuffer must be an instance of WebGLBuffer.
-[ 47: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, argument) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContext.bindFramebuffer must be an instance of WebGLFramebuffer.
-[ 48: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, argument) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContext.bindRenderbuffer must be an instance of WebGLRenderbuffer.
-[ 49: PASS ] context.bindTexture(context.TEXTURE_2D, argument) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContext.bindTexture must be an instance of WebGLTexture.
-[ 50: PASS ] context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) threw exception TypeError: Argument 4 ('renderbuffer') to WebGLRenderingContext.framebufferRenderbuffer must be an instance of WebGLRenderbuffer.
-[ 51: PASS ] context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) threw exception TypeError: Argument 4 ('texture') to WebGLRenderingContext.framebufferTexture2D must be an instance of WebGLTexture.
-[ 52: PASS ] context.uniform2fv(argument, new Float32Array([0.0, 0.0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniform2fv must be an instance of WebGLUniformLocation.
-[ 53: PASS ] context.uniform2iv(argument, new Int32Array([0, 0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniform2iv must be an instance of WebGLUniformLocation.
-[ 54: PASS ] context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) threw exception TypeError: Argument 1 ('location') to WebGLRenderingContext.uniformMatrix2fv must be an instance of WebGLUniformLocation.
-[ 55: PASS ] context.useProgram(argument) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.useProgram must be an instance of WebGLProgram.
-[ 56: FAIL ] context.compileShader(argument) should throw an exception. Was undefined.
-[ 57: FAIL ] context.linkProgram(argument) should throw an exception. Was undefined.
-[ 58: FAIL ] context.attachShader(program, argument) should throw an exception. Was undefined.
-[ 59: FAIL ] context.attachShader(argument, shader) should throw an exception. Was undefined.
-[ 60: FAIL ] context.detachShader(program, argument) should throw an exception. Was undefined.
-[ 61: FAIL ] context.detachShader(argument, shader) should throw an exception. Was undefined.
-[ 62: FAIL ] context.shaderSource(argument, 'foo') should throw an exception. Was undefined.
-[ 63: FAIL ] context.bindAttribLocation(argument, 0, 'foo') should throw an exception. Was undefined.
-[ 64: FAIL ] context.getProgramInfoLog(argument) should throw an exception. Was null.
-[ 65: FAIL ] context.getProgramParameter(argument, 0) should throw an exception. Was null.
-[ 66: FAIL ] context.getShaderInfoLog(argument) should throw an exception. Was null.
-[ 67: FAIL ] context.getShaderParameter(argument, 0) should throw an exception. Was null.
-[ 68: FAIL ] context.getShaderSource(argument) should throw an exception. Was null.
-[ 69: FAIL ] context.getUniform(argument, loc) should throw an exception. Was null.
-[ 70: FAIL ] context.getUniform(program, argument) should throw an exception. Was null.
-[ 71: FAIL ] context.getUniformLocation(argument, 'u_modelViewProjMatrix') should throw an exception. Was null.
-[ 72: PASS ] context.bindBuffer(context.ARRAY_BUFFER, argument) is undefined.
-[ 73: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, argument) is undefined.
-[ 74: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, argument) is undefined.
-[ 75: PASS ] context.bindTexture(context.TEXTURE_2D, argument) is undefined.
-[ 76: PASS ] context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) is undefined.
-[ 77: PASS ] context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) is undefined.
-[ 78: PASS ] context.uniform2fv(argument, new Float32Array([0.0, 0.0])) is undefined.
-[ 79: PASS ] context.uniform2iv(argument, new Int32Array([0, 0])) is undefined.
-[ 80: PASS ] context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) is undefined.
-[ 81: PASS ] context.useProgram(argument) is undefined.
-[ 82: FAIL ] context.compileShader(argument) should throw an exception. Was undefined.
-[ 83: FAIL ] context.linkProgram(argument) should throw an exception. Was undefined.
-[ 84: FAIL ] context.attachShader(program, argument) should throw an exception. Was undefined.
-[ 85: FAIL ] context.attachShader(argument, shader) should throw an exception. Was undefined.
-[ 86: FAIL ] context.detachShader(program, argument) should throw an exception. Was undefined.
-[ 87: FAIL ] context.detachShader(argument, shader) should throw an exception. Was undefined.
-[ 88: FAIL ] context.shaderSource(argument, 'foo') should throw an exception. Was undefined.
-[ 89: FAIL ] context.bindAttribLocation(argument, 0, 'foo') should throw an exception. Was undefined.
-[ 90: FAIL ] context.getProgramInfoLog(argument) should throw an exception. Was null.
-[ 91: FAIL ] context.getProgramParameter(argument, 0) should throw an exception. Was null.
-[ 92: FAIL ] context.getShaderInfoLog(argument) should throw an exception. Was null.
-[ 93: FAIL ] context.getShaderParameter(argument, 0) should throw an exception. Was null.
-[ 94: FAIL ] context.getShaderSource(argument) should throw an exception. Was null.
-[ 95: FAIL ] context.getUniform(argument, loc) should throw an exception. Was null.
-[ 96: FAIL ] context.getUniform(program, argument) should throw an exception. Was null.
-[ 97: FAIL ] context.getUniformLocation(argument, 'u_modelViewProjMatrix') should throw an exception. Was null.
-[ 98: PASS ] context.bindBuffer(context.ARRAY_BUFFER, argument) is undefined.
-[ 99: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, argument) is undefined.
-[ 100: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, argument) is undefined.
-[ 101: PASS ] context.bindTexture(context.TEXTURE_2D, argument) is undefined.
-[ 102: PASS ] context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument) is undefined.
-[ 103: PASS ] context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0) is undefined.
-[ 104: PASS ] context.uniform2fv(argument, new Float32Array([0.0, 0.0])) is undefined.
-[ 105: PASS ] context.uniform2iv(argument, new Int32Array([0, 0])) is undefined.
-[ 106: PASS ] context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0])) is undefined.
-[ 107: PASS ] context.useProgram(argument) is undefined.
-[ 108: PASS ] successfullyParsed is true
-[ FAIL ] 32 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformancemiscerrorreportingexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt      2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt 2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,27 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../resources/webgl_test_files/conformance/misc/error-reporting.html
</span><del>-
-[ 1: PASS ] getError was expected value: NO_ERROR :
-[ 2: FAIL ] context.getActiveAttrib(null, 2) should throw an exception. Was null.
-[ 3: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 4: PASS ] getError was expected value: NO_ERROR :
-[ 5: PASS ] context.getActiveAttrib(program, 2) is null
-[ 6: PASS ] getError was expected value: INVALID_VALUE :
-[ 7: PASS ] getError was expected value: NO_ERROR :
-[ 8: FAIL ] context.getActiveUniform(null, 0) should throw an exception. Was null.
-[ 9: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 10: PASS ] getError was expected value: NO_ERROR :
-[ 11: PASS ] context.getActiveUniform(program, 50) is null
-[ 12: PASS ] getError was expected value: INVALID_VALUE :
-[ 13: PASS ] getError was expected value: NO_ERROR :
-[ 14: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, null) is undefined.
-[ 15: PASS ] getError was expected value: NO_ERROR :
-[ 16: PASS ] context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null) is undefined.
-[ 17: PASS ] getError was expected value: INVALID_OPERATION :
-[ 18: PASS ] getError was expected value: NO_ERROR :
-[ 19: PASS ] context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0) is undefined.
-[ 20: PASS ] getError was expected value: INVALID_OPERATION :
-[ 21: PASS ] getError was expected value: NO_ERROR :
-[ 22: PASS ] successfullyParsed is true
-[ FAIL ] 4 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformancemiscnullobjectbehaviourexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt        2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt   2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,49 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html
</span><del>-
-[ 1: PASS ] Program Compiled
-[ 2: PASS ] Shader Compiled
-[ 3: FAIL ] context.compileShader(undefined) should throw an exception. Was undefined.
-[ 4: FAIL ] context.linkProgram(undefined) should throw an exception. Was undefined.
-[ 5: FAIL ] context.attachShader(undefined, undefined) should throw an exception. Was undefined.
-[ 6: FAIL ] context.attachShader(program, undefined) should throw an exception. Was undefined.
-[ 7: FAIL ] context.attachShader(undefined, shader) should throw an exception. Was undefined.
-[ 8: FAIL ] context.detachShader(program, undefined) should throw an exception. Was undefined.
-[ 9: FAIL ] context.detachShader(undefined, shader) should throw an exception. Was undefined.
-[ 10: FAIL ] context.shaderSource(undefined, undefined) should throw an exception. Was undefined.
-[ 11: FAIL ] context.shaderSource(undefined, 'foo') should throw an exception. Was undefined.
-[ 12: FAIL ] context.bindAttribLocation(undefined, 0, 'foo') should throw an exception. Was undefined.
-[ 13: PASS ] context.bindBuffer(context.ARRAY_BUFFER, 0) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContext.bindBuffer must be an instance of WebGLBuffer.
-[ 14: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, 0) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContext.bindFramebuffer must be an instance of WebGLFramebuffer.
-[ 15: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, 0) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContext.bindRenderbuffer must be an instance of WebGLRenderbuffer.
-[ 16: PASS ] context.bindTexture(context.TEXTURE_2D, 0) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContext.bindTexture must be an instance of WebGLTexture.
-[ 17: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE : after evaluating: context.bindBuffer(context.ARRAY_BUFFER, null)
-[ 18: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindFramebuffer(context.FRAMEBUFFER, null)
-[ 19: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindRenderbuffer(context.RENDERBUFFER, null)
-[ 20: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindTexture(context.TEXTURE_2D, null)
-[ 21: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindBuffer(context.ARRAY_BUFFER, undefined)
-[ 22: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindFramebuffer(context.FRAMEBUFFER, undefined)
-[ 23: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindRenderbuffer(context.RENDERBUFFER, undefined)
-[ 24: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindTexture(context.TEXTURE_2D, undefined)
-[ 25: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)
-[ 26: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)
-[ 27: FAIL ] context.getProgramParameter(undefined, 0) should throw an exception. Was null.
-[ 28: FAIL ] context.getProgramInfoLog(undefined, 0) should throw an exception. Was null.
-[ 29: FAIL ] context.getShaderParameter(undefined, 0) should throw an exception. Was null.
-[ 30: FAIL ] context.getShaderInfoLog(undefined, 0) should throw an exception. Was null.
-[ 31: FAIL ] context.getShaderSource(undefined) should throw an exception. Was null.
-[ 32: FAIL ] context.getUniform(undefined, null) should throw an exception. Was null.
-[ 33: FAIL ] context.getUniformLocation(undefined, 'foo') should throw an exception. Was null.
-[ 34: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE : after evaluating: context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)
-[ 35: PASS ] getError was expected value: NO_ERROR : after evaluating: context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)
-[ 36: PASS ] getError was expected value: NO_ERROR : after evaluating: context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))
-[ 37: PASS ] getError was expected value: NO_ERROR : after evaluating: context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)
-[ 38: PASS ] getError was expected value: NO_ERROR : after evaluating: context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)
-[ 39: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)
-[ 40: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)
-[ 41: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))
-[ 42: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)
-[ 43: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)
-[ 44: PASS ] successfullyParsed is true
-[ FAIL ] 19 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformanceprogramsgetactivetestexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt  2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt     2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,47 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../resources/webgl_test_files/conformance/programs/get-active-test.html
</span><del>-
-[ 1: PASS ] getError was expected value: NO_ERROR :
-[ 2: PASS ] context.getActiveUniform(program, 0).name is 'u_modelViewProjMatrix'
-[ 3: PASS ] context.getActiveUniform(program, 0).type is context.FLOAT_MAT4
-[ 4: PASS ] context.getActiveUniform(program, 0).size is 1
-[ 5: PASS ] context.getActiveUniform(program, 1) is null
-[ 6: PASS ] getError was expected value: INVALID_VALUE :
-[ 7: PASS ] context.getActiveUniform(program, -1) is null
-[ 8: PASS ] getError was expected value: INVALID_VALUE :
-[ 9: FAIL ] context.getActiveUniform(null, 0) should throw an exception. Was null.
-[ 10: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 11: PASS ] info[ii] is non-null.
-[ 12: PASS ] info[ii] is non-null.
-[ 13: PASS ] info[ii].name is expected[ii].name
-[ 14: PASS ] info[ii].type is expected[ii].type
-[ 15: PASS ] info[ii].size is expected[ii].size
-[ 16: PASS ] info[ii].name is expected[ii].name
-[ 17: PASS ] info[ii].type is expected[ii].type
-[ 18: PASS ] info[ii].size is expected[ii].size
-[ 19: PASS ] info2[ii] is non-null.
-[ 20: PASS ] info2[ii] is non-null.
-[ 21: PASS ] info2[ii].name is expected2[ii].name
-[ 22: PASS ] info2[ii].type is expected2[ii].type
-[ 23: PASS ] info2[ii].size is expected2[ii].size
-[ 24: PASS ] info2[ii].name is expected2[ii].name
-[ 25: PASS ] info2[ii].type is expected2[ii].type
-[ 26: PASS ] info2[ii].size is expected2[ii].size
-[ 27: PASS ] context.getActiveAttrib(program, 2) is null
-[ 28: PASS ] getError was expected value: INVALID_VALUE :
-[ 29: PASS ] context.getActiveAttrib(program, -1) is null
-[ 30: PASS ] getError was expected value: INVALID_VALUE :
-[ 31: FAIL ] context.getActiveAttrib(null, 0) should throw an exception. Was null.
-[ 32: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 33: PASS ] getError was expected value: NO_ERROR :
-[ 34: PASS ] context2.getActiveAttrib(program, 0) is null
-[ 35: PASS ] getError was expected value: INVALID_OPERATION :
-[ 36: PASS ] context2.getActiveUniform(program, 0) is null
-[ 37: PASS ] getError was expected value: INVALID_OPERATION :
-[ 38: PASS ] context.getActiveUniform(program, 0) is null
-[ 39: PASS ] getError was expected value: INVALID_VALUE :
-[ 40: PASS ] context.getActiveAttrib(program, 0) is null
-[ 41: PASS ] getError was expected value: INVALID_VALUE :
-[ 42: PASS ] successfullyParsed is true
-[ FAIL ] 4 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformancestateglobjectgetcallsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt 2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt    2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,132 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../resources/webgl_test_files/conformance/state/gl-object-get-calls.html
</span><del>-
-[ 1: PASS ] gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE) is 16
-[ 2: PASS ] gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
-[ 3: PASS ] getBufferParameter correctly handled invalid parameter enums
-[ 4: PASS ] gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE) is 16
-[ 5: PASS ] gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
-[ 6: PASS ] getBufferParameter correctly handled invalid parameter enums
-[ 7: PASS ] getBufferParameter correctly handled invalid target enums
-[ 8: PASS ] getError was expected value: NO_ERROR :
-[ 9: PASS ] getError was expected value: NO_ERROR :
-[ 10: PASS ] getError was expected value: NO_ERROR :
-[ 11: PASS ] getError was expected value: NO_ERROR :
-[ 12: PASS ] gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
-[ 13: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
-[ 14: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is texture
-[ 15: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
-[ 16: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
-[ 17: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
-[ 18: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
-[ 19: PASS ] getFramebufferAttachmentParameter correctly handled invalid parameter enums
-[ 20: PASS ] getFramebufferAttachmentParameter correctly handled invalid target enums
-[ 21: PASS ] getFramebufferAttachmentParameter correctly handled invalid attachment enums
-[ 22: PASS ] getError was expected value: NO_ERROR :
-[ 23: PASS ] getError was expected value: NO_ERROR :
-[ 24: PASS ] getError was expected value: NO_ERROR :
-[ 25: PASS ] gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
-[ 26: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
-[ 27: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is texture
-[ 28: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
-[ 29: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
-[ 30: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
-[ 31: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
-[ 32: PASS ] getFramebufferAttachmentParameter correctly handled invalid parameter enums
-[ 33: PASS ] getFramebufferAttachmentParameter correctly handled invalid target enums
-[ 34: PASS ] getFramebufferAttachmentParameter correctly handled invalid attachment enums
-[ 35: PASS ] getError was expected value: NO_ERROR :
-[ 36: PASS ] shaders.length is 2
-[ 37: PASS ] shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == standardVert && shaders[0] == standardFrag is true
-[ 38: PASS ] getError was expected value: NO_ERROR :
-[ 39: FAIL ] gl.getAttachedShaders(null) should throw an exception. Was null.
-[ 40: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 41: PASS ] gl.getAttachedShaders(standardVert) threw exception TypeError: Argument 1 ('program') to WebGLRenderingContext.getAttachedShaders must be an instance of WebGLProgram.
-[ 42: PASS ] getError was expected value: NO_ERROR :
-[ 43: PASS ] gl.getProgramParameter(standardProgram, gl.DELETE_STATUS) is false
-[ 44: PASS ] gl.getProgramParameter(standardProgram, gl.LINK_STATUS) is true
-[ 45: PASS ] typeof gl.getProgramParameter(standardProgram, gl.VALIDATE_STATUS) is "boolean"
-[ 46: PASS ] gl.getProgramParameter(standardProgram, gl.ATTACHED_SHADERS) is 2
-[ 47: PASS ] gl.getProgramParameter(standardProgram, gl.ACTIVE_ATTRIBUTES) is 2
-[ 48: PASS ] gl.getProgramParameter(standardProgram, gl.ACTIVE_UNIFORMS) is 1
-[ 49: PASS ] getProgramParameter correctly handled invalid parameter enums
-[ 50: PASS ] getError was expected value: NO_ERROR :
-[ 51: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH) is 2
-[ 52: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT) is 2
-[ 53: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_INTERNAL_FORMAT) is non-zero.
-[ 54: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE) is non-zero.
-[ 55: PASS ] getError was expected value: NO_ERROR :
-[ 56: PASS ] getError was expected value: NO_ERROR :
-[ 57: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE) is non-zero.
-[ 58: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE) is non-zero.
-[ 59: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE) is non-zero.
-[ 60: PASS ] gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE) is non-zero.
-[ 61: PASS ] getRenderbufferParameter correctly handled invalid parameter enums
-[ 62: PASS ] getRenderbufferParameter correctly handled invalid target enums
-[ 63: PASS ] getError was expected value: NO_ERROR :
-[ 64: PASS ] gl.getShaderParameter(standardVert, gl.SHADER_TYPE) is gl.VERTEX_SHADER
-[ 65: PASS ] gl.getShaderParameter(standardVert, gl.DELETE_STATUS) is false
-[ 66: PASS ] gl.getShaderParameter(standardVert, gl.COMPILE_STATUS) is true
-[ 67: PASS ] getShaderParameter correctly handled invalid parameter enums
-[ 68: PASS ] getError was expected value: NO_ERROR :
-[ 69: PASS ] gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER) is gl.NEAREST
-[ 70: PASS ] gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER) is gl.NEAREST
-[ 71: PASS ] gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S) is gl.CLAMP_TO_EDGE
-[ 72: PASS ] gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T) is gl.CLAMP_TO_EDGE
-[ 73: PASS ] getTexParameter correctly handled invalid parameter enums
-[ 74: PASS ] getTexParameter correctly handled invalid target enums
-[ 75: PASS ] getError was expected value: NO_ERROR :
-[ 76: PASS ] gl.getProgramParameter(boolProgram, gl.LINK_STATUS) is true
-[ 77: PASS ] getError was expected value: NO_ERROR :
-[ 78: PASS ] gl.getUniform(boolProgram, bvalLoc) is true
-[ 79: PASS ] gl.getUniform(boolProgram, bval2Loc) is [true, false]
-[ 80: PASS ] gl.getUniform(boolProgram, bval3Loc) is [true, false, true]
-[ 81: PASS ] gl.getUniform(boolProgram, bval4Loc) is [true, false, true, false]
-[ 82: PASS ] getError was expected value: NO_ERROR :
-[ 83: PASS ] gl.getProgramParameter(intProgram, gl.LINK_STATUS) is true
-[ 84: PASS ] getError was expected value: NO_ERROR :
-[ 85: PASS ] gl.getUniform(intProgram, ivalLoc) is 1
-[ 86: PASS ] gl.getUniform(intProgram, ival2Loc) is [2, 3]
-[ 87: PASS ] gl.getUniform(intProgram, ival3Loc) is [4, 5, 6]
-[ 88: PASS ] gl.getUniform(intProgram, ival4Loc) is [7, 8, 9, 10]
-[ 89: PASS ] getError was expected value: NO_ERROR :
-[ 90: PASS ] gl.getProgramParameter(floatProgram, gl.LINK_STATUS) is true
-[ 91: PASS ] getError was expected value: NO_ERROR :
-[ 92: PASS ] gl.getUniform(floatProgram, fvalLoc) is 11
-[ 93: PASS ] gl.getUniform(floatProgram, fval2Loc) is [12, 13]
-[ 94: PASS ] gl.getUniform(floatProgram, fval3Loc) is [14, 15, 16]
-[ 95: PASS ] gl.getUniform(floatProgram, fval4Loc) is [17, 18, 19, 20]
-[ 96: PASS ] getError was expected value: NO_ERROR :
-[ 97: PASS ] gl.getProgramParameter(samplerProgram, gl.LINK_STATUS) is true
-[ 98: PASS ] getError was expected value: NO_ERROR :
-[ 99: PASS ] gl.getUniform(samplerProgram, s2DValLoc) is 0
-[ 100: PASS ] gl.getUniform(samplerProgram, sCubeValLoc) is 1
-[ 101: PASS ] getError was expected value: NO_ERROR :
-[ 102: PASS ] gl.getProgramParameter(matProgram, gl.LINK_STATUS) is true
-[ 103: PASS ] getError was expected value: NO_ERROR :
-[ 104: PASS ] gl.getUniform(matProgram, mval2Loc) is [1, 2, 3, 4]
-[ 105: PASS ] gl.getUniform(matProgram, mval3Loc) is [5, 6, 7, 8, 9, 10, 11, 12, 13]
-[ 106: PASS ] gl.getUniform(matProgram, mval4Loc) is [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
-[ 107: PASS ] getError was expected value: NO_ERROR :
-[ 108: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is buffer
-[ 109: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_ENABLED) is true
-[ 110: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_SIZE) is 4
-[ 111: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_STRIDE) is 0
-[ 112: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_TYPE) is gl.FLOAT
-[ 113: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED) is false
-[ 114: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_STRIDE) is 36
-[ 115: PASS ] gl.getVertexAttribOffset(1, gl.VERTEX_ATTRIB_ARRAY_POINTER) is 12
-[ 116: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_ENABLED) is false
-[ 117: PASS ] gl.getVertexAttrib(1, gl.CURRENT_VERTEX_ATTRIB) is [5, 6, 7, 8]
-[ 118: PASS ] getError was expected value: NO_ERROR :
-[ 119: PASS ] getVertexAttrib correctly handled invalid parameter enums
-[ 120: PASS ] getError was expected value: INVALID_VALUE : after evaluating: gl.getVertexAttrib(16, gl.CURRENT_VERTEX_ATTRIB)
-[ 121: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE
-[ 122: PASS ] getError was expected value: INVALID_OPERATION :
-[ 123: PASS ] gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE
-[ 124: PASS ] gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null
-[ 125: PASS ] getError was expected value: NO_ERROR :
-[ 126: PASS ] getError was expected value: NO_ERROR :
-[ 127: PASS ] successfullyParsed is true
-[ FAIL ] 2 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformancetexturesmisctexsubimage2dbadargsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,42 +1,4 @@
</span><span class="cx"> This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
</span><span class="cx"> 
</span><span class="cx"> Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d-bad-args.html
</span><del>-
-[ 1: PASS ] getError was expected value: INVALID_OPERATION : no previously defined texture image
-[ 2: PASS ] getError was expected value: NO_ERROR : Setup should succeed
-[ 3: PASS ] getError was expected value: INVALID_VALUE : y + height > texture height
-[ 4: PASS ] getError was expected value: INVALID_VALUE : x + width > texture width
-[ 5: PASS ] getError was expected value: INVALID_VALUE : negative x
-[ 6: PASS ] getError was expected value: INVALID_VALUE : negative y
-[ 7: PASS ] getError was expected value: INVALID_VALUE : negative level
-[ 8: FAIL ] gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, null) should throw an exception. Was undefined.
-[ 9: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
-[ 10: PASS ] getError was expected value: INVALID_VALUE : null pixels
-[ 11: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 12: PASS ] getError was expected value: INVALID_ENUM : bad target
-[ 13: PASS ] getError was expected value: NO_ERROR : good args
-[ 14: PASS ] getError was expected value: INVALID_OPERATION : format not same as original
-[ 15: PASS ] getError was expected value: INVALID_OPERATION : type not same as original
-[ 16: PASS ] getError was expected value: NO_ERROR : make texture RGB
-[ 17: PASS ] getError was expected value: NO_ERROR : format same as original RGB
-[ 18: PASS ] getError was expected value: INVALID_OPERATION : format not same as original RGB
-[ 19: PASS ] getError was expected value: INVALID_OPERATION : type not same as original RGB
-[ 20: PASS ] getError was expected value: NO_ERROR : make texture RGBA UNSIGNED_BYTE
-[ 21: PASS ] getError was expected value: NO_ERROR : format same as original
-[ 22: PASS ] getError was expected value: INVALID_OPERATION : format not same as original
-[ 23: PASS ] getError was expected value: INVALID_OPERATION : type not same as original
-[ 24: PASS ] getError was expected value: NO_ERROR : make texture RGBA UNSIGNED_BYTE
-[ 25: PASS ] getError was expected value: NO_ERROR : format same as original
-[ 26: PASS ] getError was expected value: INVALID_OPERATION : format not same as original
-[ 27: PASS ] getError was expected value: INVALID_OPERATION : type not same as original
-[ 28: PASS ] getError was expected value: NO_ERROR : format same as original
-[ 29: PASS ] getError was expected value: INVALID_OPERATION : format not same as original
-[ 30: PASS ] getError was expected value: INVALID_OPERATION : type not same as original
-[ 31: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 32: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 33: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 34: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 35: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 36: PASS ] getError was one of: INVALID_VALUE or INVALID_OPERATION : too high level
-[ 37: PASS ] successfullyParsed is true
-[ FAIL ] 2 failures reported
</del><ins>+[ PASS ] All tests passed
</ins></span></pre></div>
<a id="trunkLayoutTestswebgl200conformance2stateglobjectgetcallsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt        2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt   2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -157,8 +157,8 @@
</span><span class="cx"> [ 153: PASS ] shaders.length is 2
</span><span class="cx"> [ 154: PASS ] shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == standardVert && shaders[0] == standardFrag is true
</span><span class="cx"> [ 155: PASS ] getError was expected value: NO_ERROR :
</span><del>-[ 156: FAIL ] gl.getAttachedShaders(null) should throw an exception. Was null.
-[ 157: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE :
</del><ins>+[ 156: PASS ] gl.getAttachedShaders(null) threw exception TypeError: Argument 1 ('program') to WebGL2RenderingContext.getAttachedShaders must be an instance of WebGLProgram.
+[ 157: PASS ] getError was expected value: NO_ERROR :
</ins><span class="cx"> [ 158: PASS ] gl.getAttachedShaders(standardVert) threw exception TypeError: Argument 1 ('program') to WebGL2RenderingContext.getAttachedShaders must be an instance of WebGLProgram.
</span><span class="cx"> [ 159: PASS ] getError was expected value: NO_ERROR :
</span><span class="cx"> [ 160: PASS ] gl.getProgramParameter(standardProgram, gl.DELETE_STATUS) is false
</span><span class="lines">@@ -365,4 +365,4 @@
</span><span class="cx"> [ 361: PASS ] getActiveUniformBlockParameter correctly handled invalid pname enums
</span><span class="cx"> [ 362: PASS ] getError was expected value: NO_ERROR :
</span><span class="cx"> [ 363: PASS ] successfullyParsed is true
</span><del>-[ FAIL ] 37 failures reported
</del><ins>+[ FAIL ] 35 failures reported
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/Source/WebCore/ChangeLog      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1,3 +1,41 @@
</span><ins>+2020-08-18  James Darpinian  <jdarpinian@chromium.org>
+
+        [WebGL2] Various parameters should be non-nullable in IDL
+        https://bugs.webkit.org/show_bug.cgi?id=215616
+
+        Reviewed by Kenneth Russell.
+
+        Fixes 5 conformance tests:
+        conformance/misc/error-reporting.html
+        conformance/misc/null-object-behaviour.html
+        conformance/misc/bad-arguments-test.html
+        conformance/textures/misc/tex-sub-image-2d-bad-args.html
+        conformance/programs/get-active-test.html
+
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::attachShader):
+        (WebCore::WebGLRenderingContextBase::bindAttribLocation):
+        (WebCore::WebGLRenderingContextBase::compileShader):
+        (WebCore::WebGLRenderingContextBase::detachShader):
+        (WebCore::WebGLRenderingContextBase::getActiveAttrib):
+        (WebCore::WebGLRenderingContextBase::getActiveUniform):
+        (WebCore::WebGLRenderingContextBase::getAttachedShaders):
+        (WebCore::WebGLRenderingContextBase::getAttribLocation):
+        (WebCore::WebGLRenderingContextBase::getProgramParameter):
+        (WebCore::WebGLRenderingContextBase::getProgramInfoLog):
+        (WebCore::WebGLRenderingContextBase::getShaderParameter):
+        (WebCore::WebGLRenderingContextBase::getShaderInfoLog):
+        (WebCore::WebGLRenderingContextBase::getShaderSource):
+        (WebCore::WebGLRenderingContextBase::getUniform):
+        (WebCore::WebGLRenderingContextBase::getUniformLocation):
+        (WebCore::WebGLRenderingContextBase::linkProgram):
+        (WebCore::WebGLRenderingContextBase::shaderSource):
+        (WebCore::WebGLRenderingContextBase::validateProgram):
+        * html/canvas/WebGLRenderingContextBase.h:
+        * html/canvas/WebGLRenderingContextBase.idl:
+        * inspector/InspectorShaderProgram.cpp:
+        (WebCore::InspectorShaderProgram::updateShader):
+
</ins><span class="cx"> 2020-08-18  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         PannerNode's rolloffFactor should be clamped to [0, 1] internally when distanceModel is "linear"
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -1320,23 +1320,23 @@
</span><span class="cx">     m_context->activeTexture(texture);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::attachShader(WebGLProgram* program, WebGLShader* shader)
</del><ins>+void WebGLRenderingContextBase::attachShader(WebGLProgram& program, WebGLShader& shader)
</ins><span class="cx"> {
</span><span class="cx">     auto locker = holdLock(objectGraphLock());
</span><span class="cx"> 
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("attachShader", program) || !validateWebGLProgramOrShader("attachShader", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("attachShader", &program) || !validateWebGLProgramOrShader("attachShader", &shader))
</ins><span class="cx">         return;
</span><del>-    if (!program->attachShader(locker, shader)) {
</del><ins>+    if (!program.attachShader(locker, &shader)) {
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "attachShader", "shader attachment already has shader");
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    m_context->attachShader(objectOrZero(program), objectOrZero(shader));
-    shader->onAttached();
</del><ins>+    m_context->attachShader(program.object(), shader.object());
+    shader.onAttached();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::bindAttribLocation(WebGLProgram* program, GCGLuint index, const String& name)
</del><ins>+void WebGLRenderingContextBase::bindAttribLocation(WebGLProgram& program, GCGLuint index, const String& name)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("bindAttribLocation", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("bindAttribLocation", &program))
</ins><span class="cx">         return;
</span><span class="cx">     if (!validateLocationLength("bindAttribLocation", name))
</span><span class="cx">         return;
</span><span class="lines">@@ -1350,7 +1350,7 @@
</span><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "bindAttribLocation", "index out of range");
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    m_context->bindAttribLocation(objectOrZero(program), index, name);
</del><ins>+    m_context->bindAttribLocation(program.object(), index, name);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebGLRenderingContextBase::checkObjectToBeBound(const char* functionName, WebGLObject* object)
</span><span class="lines">@@ -1731,14 +1731,14 @@
</span><span class="cx">     m_context->colorMask(red, green, blue, alpha);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::compileShader(WebGLShader* shader)
</del><ins>+void WebGLRenderingContextBase::compileShader(WebGLShader& shader)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("compileShader", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("compileShader", &shader))
</ins><span class="cx">         return;
</span><del>-    m_context->compileShader(objectOrZero(shader));
</del><ins>+    m_context->compileShader(shader.object());
</ins><span class="cx">     GCGLint value;
</span><del>-    m_context->getShaderiv(objectOrZero(shader), GraphicsContextGL::COMPILE_STATUS, &value);
-    shader->setValid(value);
</del><ins>+    m_context->getShaderiv(shader.object(), GraphicsContextGL::COMPILE_STATUS, &value);
+    shader.setValid(value);
</ins><span class="cx"> 
</span><span class="cx">     auto* canvas = htmlCanvas();
</span><span class="cx"> 
</span><span class="lines">@@ -2145,18 +2145,18 @@
</span><span class="cx">     m_context->depthRange(zNear, zFar);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::detachShader(WebGLProgram* program, WebGLShader* shader)
</del><ins>+void WebGLRenderingContextBase::detachShader(WebGLProgram& program, WebGLShader& shader)
</ins><span class="cx"> {
</span><span class="cx">     auto locker = holdLock(objectGraphLock());
</span><span class="cx"> 
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("detachShader", program) || !validateWebGLProgramOrShader("detachShader", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("detachShader", &program) || !validateWebGLProgramOrShader("detachShader", &shader))
</ins><span class="cx">         return;
</span><del>-    if (!program->detachShader(locker, shader)) {
</del><ins>+    if (!program.detachShader(locker, &shader)) {
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "detachShader", "shader not attached");
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    m_context->detachShader(objectOrZero(program), objectOrZero(shader));
-    shader->onDetached(locker, graphicsContextGL());
</del><ins>+    m_context->detachShader(program.object(), shader.object());
+    shader.onDetached(locker, graphicsContextGL());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebGLRenderingContextBase::disable(GCGLenum cap)
</span><span class="lines">@@ -2787,12 +2787,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveAttrib(WebGLProgram* program, GCGLuint index)
</del><ins>+RefPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveAttrib(WebGLProgram& program, GCGLuint index)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getActiveAttrib", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getActiveAttrib", &program))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     GraphicsContextGL::ActiveInfo info;
</span><del>-    if (!m_context->getActiveAttrib(objectOrZero(program), index, info))
</del><ins>+    if (!m_context->getActiveAttrib(program.object(), index, info))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     LOG(WebGL, "Returning active attribute %d: %s", index, info.name.utf8().data());
</span><span class="lines">@@ -2800,12 +2800,12 @@
</span><span class="cx">     return WebGLActiveInfo::create(info.name, info.type, info.size);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveUniform(WebGLProgram* program, GCGLuint index)
</del><ins>+RefPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveUniform(WebGLProgram& program, GCGLuint index)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getActiveUniform", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getActiveUniform", &program))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     GraphicsContextGL::ActiveInfo info;
</span><del>-    if (!m_context->getActiveUniform(objectOrZero(program), index, info))
</del><ins>+    if (!m_context->getActiveUniform(program.object(), index, info))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     // FIXME: Do we still need this for the ANGLE backend?
</span><span class="cx">     if (!isGLES2Compliant())
</span><span class="lines">@@ -2817,9 +2817,9 @@
</span><span class="cx">     return WebGLActiveInfo::create(info.name, info.type, info.size);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Optional<Vector<RefPtr<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program)
</del><ins>+Optional<Vector<RefPtr<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram& program)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getAttachedShaders", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getAttachedShaders", &program))
</ins><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><span class="cx">     const GCGLenum shaderTypes[] = {
</span><span class="lines">@@ -2828,7 +2828,7 @@
</span><span class="cx">     };
</span><span class="cx">     Vector<RefPtr<WebGLShader>> shaderObjects;
</span><span class="cx">     for (auto shaderType : shaderTypes) {
</span><del>-        RefPtr<WebGLShader> shader = program->getAttachedShader(shaderType);
</del><ins>+        RefPtr<WebGLShader> shader = program.getAttachedShader(shaderType);
</ins><span class="cx">         if (shader)
</span><span class="cx">             shaderObjects.append(shader);
</span><span class="cx">     }
</span><span class="lines">@@ -2835,9 +2835,9 @@
</span><span class="cx">     return shaderObjects;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-GCGLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program, const String& name)
</del><ins>+GCGLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram& program, const String& name)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getAttribLocation", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getAttribLocation", &program))
</ins><span class="cx">         return -1;
</span><span class="cx">     if (!validateLocationLength("getAttribLocation", name))
</span><span class="cx">         return -1;
</span><span class="lines">@@ -2845,11 +2845,11 @@
</span><span class="cx">         return -1;
</span><span class="cx">     if (isPrefixReserved(name))
</span><span class="cx">         return -1;
</span><del>-    if (!program->getLinkStatus()) {
</del><ins>+    if (!program.getLinkStatus()) {
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "getAttribLocation", "program not linked");
</span><span class="cx">         return -1;
</span><span class="cx">     }
</span><del>-    return m_context->getAttribLocation(objectOrZero(program), name);
</del><ins>+    return m_context->getAttribLocation(program.object(), name);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebGLAny WebGLRenderingContextBase::getBufferParameter(GCGLenum target, GCGLenum pname)
</span><span class="lines">@@ -3179,29 +3179,29 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGLAny WebGLRenderingContextBase::getProgramParameter(WebGLProgram* program, GCGLenum pname)
</del><ins>+WebGLAny WebGLRenderingContextBase::getProgramParameter(WebGLProgram& program, GCGLenum pname)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getProgramParameter", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getProgramParameter", &program))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     GCGLint value = 0;
</span><span class="cx">     switch (pname) {
</span><span class="cx">     case GraphicsContextGL::DELETE_STATUS:
</span><del>-        return program->isDeleted();
</del><ins>+        return program.isDeleted();
</ins><span class="cx">     case GraphicsContextGL::VALIDATE_STATUS:
</span><del>-        m_context->getProgramiv(objectOrZero(program), pname, &value);
</del><ins>+        m_context->getProgramiv(program.object(), pname, &value);
</ins><span class="cx">         return static_cast<bool>(value);
</span><span class="cx">     case GraphicsContextGL::LINK_STATUS:
</span><del>-        return program->getLinkStatus();
</del><ins>+        return program.getLinkStatus();
</ins><span class="cx">     case GraphicsContextGL::ATTACHED_SHADERS:
</span><del>-        m_context->getProgramiv(objectOrZero(program), pname, &value);
</del><ins>+        m_context->getProgramiv(program.object(), pname, &value);
</ins><span class="cx">         return value;
</span><span class="cx">     case GraphicsContextGL::ACTIVE_ATTRIBUTES:
</span><span class="cx">     case GraphicsContextGL::ACTIVE_UNIFORMS:
</span><span class="cx"> #if USE(ANGLE)
</span><del>-        m_context->getProgramiv(objectOrZero(program), pname, &value);
</del><ins>+        m_context->getProgramiv(program.object(), pname, &value);
</ins><span class="cx"> #else
</span><del>-        m_context->getNonBuiltInActiveSymbolCount(objectOrZero(program), pname, &value);
</del><ins>+        m_context->getNonBuiltInActiveSymbolCount(program.object(), pname, &value);
</ins><span class="cx"> #endif // USE(ANGLE)
</span><span class="cx">         return value;
</span><span class="cx">     default:
</span><span class="lines">@@ -3211,7 +3211,7 @@
</span><span class="cx">             case GraphicsContextGL::TRANSFORM_FEEDBACK_BUFFER_MODE:
</span><span class="cx">             case GraphicsContextGL::TRANSFORM_FEEDBACK_VARYINGS:
</span><span class="cx">             case GraphicsContextGL::ACTIVE_UNIFORM_BLOCKS:
</span><del>-                m_context->getProgramiv(objectOrZero(program), pname, &value);
</del><ins>+                m_context->getProgramiv(program.object(), pname, &value);
</ins><span class="cx">                 return value;
</span><span class="cx">             default:
</span><span class="cx">                 break;
</span><span class="lines">@@ -3223,11 +3223,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String WebGLRenderingContextBase::getProgramInfoLog(WebGLProgram* program)
</del><ins>+String WebGLRenderingContextBase::getProgramInfoLog(WebGLProgram& program)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getProgramInfoLog", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getProgramInfoLog", &program))
</ins><span class="cx">         return String();
</span><del>-    return ensureNotNull(m_context->getProgramInfoLog(objectOrZero(program)));
</del><ins>+    return ensureNotNull(m_context->getProgramInfoLog(program.object()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebGLAny WebGLRenderingContextBase::getRenderbufferParameter(GCGLenum target, GCGLenum pname)
</span><span class="lines">@@ -3301,19 +3301,19 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGLAny WebGLRenderingContextBase::getShaderParameter(WebGLShader* shader, GCGLenum pname)
</del><ins>+WebGLAny WebGLRenderingContextBase::getShaderParameter(WebGLShader& shader, GCGLenum pname)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderParameter", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderParameter", &shader))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     GCGLint value = 0;
</span><span class="cx">     switch (pname) {
</span><span class="cx">     case GraphicsContextGL::DELETE_STATUS:
</span><del>-        return shader->isDeleted();
</del><ins>+        return shader.isDeleted();
</ins><span class="cx">     case GraphicsContextGL::COMPILE_STATUS:
</span><del>-        m_context->getShaderiv(objectOrZero(shader), pname, &value);
</del><ins>+        m_context->getShaderiv(shader.object(), pname, &value);
</ins><span class="cx">         return static_cast<bool>(value);
</span><span class="cx">     case GraphicsContextGL::SHADER_TYPE:
</span><del>-        m_context->getShaderiv(objectOrZero(shader), pname, &value);
</del><ins>+        m_context->getShaderiv(shader.object(), pname, &value);
</ins><span class="cx">         return static_cast<unsigned>(value);
</span><span class="cx">     default:
</span><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_ENUM, "getShaderParameter", "invalid parameter name");
</span><span class="lines">@@ -3321,11 +3321,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader* shader)
</del><ins>+String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader& shader)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderInfoLog", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderInfoLog", &shader))
</ins><span class="cx">         return String();
</span><del>-    return ensureNotNull(m_context->getShaderInfoLog(objectOrZero(shader)));
</del><ins>+    return ensureNotNull(m_context->getShaderInfoLog(shader.object()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr<WebGLShaderPrecisionFormat> WebGLRenderingContextBase::getShaderPrecisionFormat(GCGLenum shaderType, GCGLenum precisionType)
</span><span class="lines">@@ -3359,11 +3359,11 @@
</span><span class="cx">     return WebGLShaderPrecisionFormat::create(range[0], range[1], precision);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String WebGLRenderingContextBase::getShaderSource(WebGLShader* shader)
</del><ins>+String WebGLRenderingContextBase::getShaderSource(WebGLShader& shader)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderSource", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getShaderSource", &shader))
</ins><span class="cx">         return String();
</span><del>-    return ensureNotNull(shader->getSource());
</del><ins>+    return ensureNotNull(shader.getSource());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebGLAny WebGLRenderingContextBase::getTexParameter(GCGLenum target, GCGLenum pname)
</span><span class="lines">@@ -3395,19 +3395,19 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGLAny WebGLRenderingContextBase::getUniform(WebGLProgram* program, const WebGLUniformLocation* uniformLocation)
</del><ins>+WebGLAny WebGLRenderingContextBase::getUniform(WebGLProgram& program, const WebGLUniformLocation& uniformLocation)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getUniform", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getUniform", &program))
</ins><span class="cx">         return nullptr;
</span><del>-    if (!uniformLocation || uniformLocation->program() != program) {
</del><ins>+    if (uniformLocation.program() != &program) {
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "getUniform", "no uniformlocation or not valid for this program");
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><del>-    GCGLint location = uniformLocation->location();
</del><ins>+    GCGLint location = uniformLocation.location();
</ins><span class="cx"> 
</span><span class="cx">     GCGLenum baseType;
</span><span class="cx">     unsigned length;
</span><del>-    switch (uniformLocation->type()) {
</del><ins>+    switch (uniformLocation.type()) {
</ins><span class="cx">     case GraphicsContextGL::BOOL:
</span><span class="cx">         baseType = GraphicsContextGL::BOOL;
</span><span class="cx">         length = 1;
</span><span class="lines">@@ -3479,7 +3479,7 @@
</span><span class="cx">             synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "getUniform", "unhandled type");
</span><span class="cx">             return nullptr;
</span><span class="cx">         }
</span><del>-        switch (uniformLocation->type()) {
</del><ins>+        switch (uniformLocation.type()) {
</ins><span class="cx">         case GraphicsContextGL::UNSIGNED_INT:
</span><span class="cx">             baseType = GraphicsContextGL::UNSIGNED_INT;
</span><span class="cx">             length = 1;
</span><span class="lines">@@ -3546,9 +3546,9 @@
</span><span class="cx">     case GraphicsContextGL::FLOAT: {
</span><span class="cx">         GCGLfloat value[16] = {0};
</span><span class="cx">         if (m_isRobustnessEXTSupported)
</span><del>-            m_context->getExtensions().getnUniformfvEXT(objectOrZero(program), location, 16 * sizeof(GCGLfloat), value);
</del><ins>+            m_context->getExtensions().getnUniformfvEXT(program.object(), location, 16 * sizeof(GCGLfloat), value);
</ins><span class="cx">         else
</span><del>-            m_context->getUniformfv(objectOrZero(program), location, value);
</del><ins>+            m_context->getUniformfv(program.object(), location, value);
</ins><span class="cx">         if (length == 1)
</span><span class="cx">             return value[0];
</span><span class="cx">         return Float32Array::tryCreate(value, length);
</span><span class="lines">@@ -3556,9 +3556,9 @@
</span><span class="cx">     case GraphicsContextGL::INT: {
</span><span class="cx">         GCGLint value[4] = {0};
</span><span class="cx">         if (m_isRobustnessEXTSupported)
</span><del>-            m_context->getExtensions().getnUniformivEXT(objectOrZero(program), location, 4 * sizeof(GCGLint), value);
</del><ins>+            m_context->getExtensions().getnUniformivEXT(program.object(), location, 4 * sizeof(GCGLint), value);
</ins><span class="cx">         else
</span><del>-            m_context->getUniformiv(objectOrZero(program), location, value);
</del><ins>+            m_context->getUniformiv(program.object(), location, value);
</ins><span class="cx">         if (length == 1)
</span><span class="cx">             return value[0];
</span><span class="cx">         return Int32Array::tryCreate(value, length);
</span><span class="lines">@@ -3565,7 +3565,7 @@
</span><span class="cx">     }
</span><span class="cx">     case GraphicsContextGL::UNSIGNED_INT: {
</span><span class="cx">         GCGLuint value[4] = {0};
</span><del>-        m_context->getUniformuiv(objectOrZero(program), location, value);
</del><ins>+        m_context->getUniformuiv(program.object(), location, value);
</ins><span class="cx">         if (length == 1)
</span><span class="cx">             return value[0];
</span><span class="cx">         return Uint32Array::tryCreate(value, length);
</span><span class="lines">@@ -3573,9 +3573,9 @@
</span><span class="cx">     case GraphicsContextGL::BOOL: {
</span><span class="cx">         GCGLint value[4] = {0};
</span><span class="cx">         if (m_isRobustnessEXTSupported)
</span><del>-            m_context->getExtensions().getnUniformivEXT(objectOrZero(program), location, 4 * sizeof(GCGLint), value);
</del><ins>+            m_context->getExtensions().getnUniformivEXT(program.object(), location, 4 * sizeof(GCGLint), value);
</ins><span class="cx">         else
</span><del>-            m_context->getUniformiv(objectOrZero(program), location, value);
</del><ins>+            m_context->getUniformiv(program.object(), location, value);
</ins><span class="cx">         if (length > 1) {
</span><span class="cx">             Vector<bool> vector(length);
</span><span class="cx">             for (unsigned j = 0; j < length; j++)
</span><span class="lines">@@ -3593,9 +3593,9 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr<WebGLUniformLocation> WebGLRenderingContextBase::getUniformLocation(WebGLProgram* program, const String& name)
</del><ins>+RefPtr<WebGLUniformLocation> WebGLRenderingContextBase::getUniformLocation(WebGLProgram& program, const String& name)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getUniformLocation", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("getUniformLocation", &program))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     if (!validateLocationLength("getUniformLocation", name))
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -3603,23 +3603,23 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     if (isPrefixReserved(name))
</span><span class="cx">         return nullptr;
</span><del>-    if (!program->getLinkStatus()) {
</del><ins>+    if (!program.getLinkStatus()) {
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, "getUniformLocation", "program not linked");
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><del>-    GCGLint uniformLocation = m_context->getUniformLocation(objectOrZero(program), name);
</del><ins>+    GCGLint uniformLocation = m_context->getUniformLocation(program.object(), name);
</ins><span class="cx">     if (uniformLocation == -1)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     GCGLint activeUniforms = 0;
</span><span class="cx"> #if USE(ANGLE)
</span><del>-    m_context->getProgramiv(objectOrZero(program), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</del><ins>+    m_context->getProgramiv(program.object(), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</ins><span class="cx"> #else
</span><del>-    m_context->getNonBuiltInActiveSymbolCount(objectOrZero(program), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</del><ins>+    m_context->getNonBuiltInActiveSymbolCount(program.object(), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</ins><span class="cx"> #endif
</span><span class="cx">     for (GCGLint i = 0; i < activeUniforms; i++) {
</span><span class="cx">         GraphicsContextGL::ActiveInfo info;
</span><del>-        if (!m_context->getActiveUniform(objectOrZero(program), i, info))
</del><ins>+        if (!m_context->getActiveUniform(program.object(), i, info))
</ins><span class="cx">             return nullptr;
</span><span class="cx">         // Strip "[0]" from the name if it's an array.
</span><span class="cx">         if (info.name.endsWith("[0]"))
</span><span class="lines">@@ -3629,7 +3629,7 @@
</span><span class="cx">             String uniformName = makeString(info.name, '[', index, ']');
</span><span class="cx"> 
</span><span class="cx">             if (name == uniformName || name == info.name)
</span><del>-                return WebGLUniformLocation::create(program, uniformLocation, info.type);
</del><ins>+                return WebGLUniformLocation::create(&program, uniformLocation, info.type);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -3864,12 +3864,12 @@
</span><span class="cx">     m_context->lineWidth(width);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::linkProgram(WebGLProgram* program)
</del><ins>+void WebGLRenderingContextBase::linkProgram(WebGLProgram& program)
</ins><span class="cx"> {
</span><del>-    if (!linkProgramWithoutInvalidatingAttribLocations(program))
</del><ins>+    if (!linkProgramWithoutInvalidatingAttribLocations(&program))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    program->increaseLinkCount();
</del><ins>+    program.increaseLinkCount();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations(WebGLProgram* program)
</span><span class="lines">@@ -4420,19 +4420,19 @@
</span><span class="cx">     m_context->scissor(x, y, width, height);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::shaderSource(WebGLShader* shader, const String& string)
</del><ins>+void WebGLRenderingContextBase::shaderSource(WebGLShader& shader, const String& string)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("shaderSource", shader))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("shaderSource", &shader))
</ins><span class="cx">         return;
</span><span class="cx"> #if USE(ANGLE)
</span><del>-    m_context->shaderSource(objectOrZero(shader), string);
</del><ins>+    m_context->shaderSource(shader.object(), string);
</ins><span class="cx"> #else
</span><span class="cx">     String stringWithoutComments = StripComments(string).result();
</span><span class="cx">     if (!validateString("shaderSource", stringWithoutComments))
</span><span class="cx">         return;
</span><del>-    m_context->shaderSource(objectOrZero(shader), stringWithoutComments);
</del><ins>+    m_context->shaderSource(shader.object(), stringWithoutComments);
</ins><span class="cx"> #endif
</span><del>-    shader->setSource(string);
</del><ins>+    shader.setSource(string);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebGLRenderingContextBase::stencilFunc(GCGLenum func, GCGLint ref, GCGLuint mask)
</span><span class="lines">@@ -5937,11 +5937,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderingContextBase::validateProgram(WebGLProgram* program)
</del><ins>+void WebGLRenderingContextBase::validateProgram(WebGLProgram& program)
</ins><span class="cx"> {
</span><del>-    if (isContextLostOrPending() || !validateWebGLProgramOrShader("validateProgram", program))
</del><ins>+    if (isContextLostOrPending() || !validateWebGLProgramOrShader("validateProgram", &program))
</ins><span class="cx">         return;
</span><del>-    m_context->validateProgram(objectOrZero(program));
</del><ins>+    m_context->validateProgram(program.object());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebGLRenderingContextBase::vertexAttrib1f(GCGLuint index, GCGLfloat v0)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h     2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -132,8 +132,8 @@
</span><span class="cx">     int drawingBufferHeight() const;
</span><span class="cx"> 
</span><span class="cx">     void activeTexture(GCGLenum texture);
</span><del>-    void attachShader(WebGLProgram*, WebGLShader*);
-    void bindAttribLocation(WebGLProgram*, GCGLuint index, const String& name);
</del><ins>+    void attachShader(WebGLProgram&, WebGLShader&);
+    void bindAttribLocation(WebGLProgram&, GCGLuint index, const String& name);
</ins><span class="cx">     void bindBuffer(GCGLenum target, WebGLBuffer*);
</span><span class="cx">     virtual void bindFramebuffer(GCGLenum target, WebGLFramebuffer*);
</span><span class="cx">     void bindRenderbuffer(GCGLenum target, WebGLRenderbuffer*);
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx">     void clearDepth(GCGLfloat);
</span><span class="cx">     void clearStencil(GCGLint);
</span><span class="cx">     void colorMask(GCGLboolean red, GCGLboolean green, GCGLboolean blue, GCGLboolean alpha);
</span><del>-    void compileShader(WebGLShader*);
</del><ins>+    void compileShader(WebGLShader&);
</ins><span class="cx"> 
</span><span class="cx">     void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, ArrayBufferView& data);
</span><span class="cx">     void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, ArrayBufferView& data);
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">     void depthFunc(GCGLenum);
</span><span class="cx">     void depthMask(GCGLboolean);
</span><span class="cx">     void depthRange(GCGLfloat zNear, GCGLfloat zFar);
</span><del>-    void detachShader(WebGLProgram*, WebGLShader*);
</del><ins>+    void detachShader(WebGLProgram&, WebGLShader&);
</ins><span class="cx">     void disable(GCGLenum cap);
</span><span class="cx">     void disableVertexAttribArray(GCGLuint index);
</span><span class="cx">     void drawArrays(GCGLenum mode, GCGLint first, GCGLsizei count);
</span><span class="lines">@@ -197,10 +197,10 @@
</span><span class="cx">     void frontFace(GCGLenum mode);
</span><span class="cx">     void generateMipmap(GCGLenum target);
</span><span class="cx"> 
</span><del>-    RefPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram*, GCGLuint index);
-    RefPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram*, GCGLuint index);
-    Optional<Vector<RefPtr<WebGLShader>>> getAttachedShaders(WebGLProgram*);
-    GCGLint getAttribLocation(WebGLProgram*, const String& name);
</del><ins>+    RefPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram&, GCGLuint index);
+    RefPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram&, GCGLuint index);
+    Optional<Vector<RefPtr<WebGLShader>>> getAttachedShaders(WebGLProgram&);
+    GCGLint getAttribLocation(WebGLProgram&, const String& name);
</ins><span class="cx">     WebGLAny getBufferParameter(GCGLenum target, GCGLenum pname);
</span><span class="cx">     Optional<WebGLContextAttributes> getContextAttributes();
</span><span class="cx">     GCGLenum getError();
</span><span class="lines">@@ -207,17 +207,17 @@
</span><span class="cx">     virtual WebGLExtension* getExtension(const String& name) = 0;
</span><span class="cx">     virtual WebGLAny getFramebufferAttachmentParameter(GCGLenum target, GCGLenum attachment, GCGLenum pname) = 0;
</span><span class="cx">     virtual WebGLAny getParameter(GCGLenum pname);
</span><del>-    WebGLAny getProgramParameter(WebGLProgram*, GCGLenum pname);
-    String getProgramInfoLog(WebGLProgram*);
</del><ins>+    WebGLAny getProgramParameter(WebGLProgram&, GCGLenum pname);
+    String getProgramInfoLog(WebGLProgram&);
</ins><span class="cx">     WebGLAny getRenderbufferParameter(GCGLenum target, GCGLenum pname);
</span><del>-    WebGLAny getShaderParameter(WebGLShader*, GCGLenum pname);
-    String getShaderInfoLog(WebGLShader*);
</del><ins>+    WebGLAny getShaderParameter(WebGLShader&, GCGLenum pname);
+    String getShaderInfoLog(WebGLShader&);
</ins><span class="cx">     RefPtr<WebGLShaderPrecisionFormat> getShaderPrecisionFormat(GCGLenum shaderType, GCGLenum precisionType);
</span><del>-    String getShaderSource(WebGLShader*);
</del><ins>+    String getShaderSource(WebGLShader&);
</ins><span class="cx">     virtual Optional<Vector<String>> getSupportedExtensions() = 0;
</span><span class="cx">     virtual WebGLAny getTexParameter(GCGLenum target, GCGLenum pname);
</span><del>-    WebGLAny getUniform(WebGLProgram*, const WebGLUniformLocation*);
-    RefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&);
</del><ins>+    WebGLAny getUniform(WebGLProgram&, const WebGLUniformLocation&);
+    RefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram&, const String&);
</ins><span class="cx">     WebGLAny getVertexAttrib(GCGLuint index, GCGLenum pname);
</span><span class="cx">     long long getVertexAttribOffset(GCGLuint index, GCGLenum pname);
</span><span class="cx"> 
</span><span class="lines">@@ -243,7 +243,7 @@
</span><span class="cx">     GCGLboolean isTexture(WebGLTexture*);
</span><span class="cx"> 
</span><span class="cx">     void lineWidth(GCGLfloat);
</span><del>-    void linkProgram(WebGLProgram*);
</del><ins>+    void linkProgram(WebGLProgram&);
</ins><span class="cx">     bool linkProgramWithoutInvalidatingAttribLocations(WebGLProgram*);
</span><span class="cx">     virtual void pixelStorei(GCGLenum pname, GCGLint param);
</span><span class="cx"> #if ENABLE(WEBXR)
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">     virtual void renderbufferStorageImpl(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, const char* functionName);
</span><span class="cx">     void sampleCoverage(GCGLfloat value, GCGLboolean invert);
</span><span class="cx">     void scissor(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height);
</span><del>-    void shaderSource(WebGLShader*, const String&);
</del><ins>+    void shaderSource(WebGLShader&, const String&);
</ins><span class="cx">     void stencilFunc(GCGLenum func, GCGLint ref, GCGLuint mask);
</span><span class="cx">     void stencilFuncSeparate(GCGLenum face, GCGLenum func, GCGLint ref, GCGLuint mask);
</span><span class="cx">     void stencilMask(GCGLuint);
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx">     void uniformMatrix4fv(const WebGLUniformLocation*, GCGLboolean transpose, Float32List&&);
</span><span class="cx"> 
</span><span class="cx">     void useProgram(WebGLProgram*);
</span><del>-    void validateProgram(WebGLProgram*);
</del><ins>+    void validateProgram(WebGLProgram&);
</ins><span class="cx"> 
</span><span class="cx">     void vertexAttrib1f(GCGLuint index, GCGLfloat x);
</span><span class="cx">     void vertexAttrib2f(GCGLuint index, GCGLfloat x, GCGLfloat y);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl   2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl      2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -482,8 +482,8 @@
</span><span class="cx">     readonly attribute GLsizei drawingBufferHeight;
</span><span class="cx"> 
</span><span class="cx">     void activeTexture(GLenum texture);
</span><del>-    void attachShader(WebGLProgram? program, WebGLShader? shader);
-    void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
</del><ins>+    void attachShader(WebGLProgram program, WebGLShader shader);
+    void bindAttribLocation(WebGLProgram program, GLuint index, DOMString name);
</ins><span class="cx">     void bindBuffer(GLenum target, WebGLBuffer? buffer);
</span><span class="cx">     void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
</span><span class="cx">     void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
</span><span class="lines">@@ -503,13 +503,13 @@
</span><span class="cx">     void clearDepth(GLclampf depth);
</span><span class="cx">     void clearStencil(GLint s);
</span><span class="cx">     void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
</span><del>-    void compileShader(WebGLShader? shader);
</del><ins>+    void compileShader(WebGLShader shader);
</ins><span class="cx"> 
</span><span class="cx">     void texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);
</span><del>-    [MayThrowException] void texImage2D(GLenum target, GLint level, GLenum internalformat, GLenum format, GLenum type, TexImageSource? source);
</del><ins>+    [MayThrowException] void texImage2D(GLenum target, GLint level, GLenum internalformat, GLenum format, GLenum type, TexImageSource source);
</ins><span class="cx"> 
</span><span class="cx">     void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView? pixels);
</span><del>-    [MayThrowException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLenum format, GLenum type, TexImageSource? source);
</del><ins>+    [MayThrowException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLenum format, GLenum type, TexImageSource source);
</ins><span class="cx"> 
</span><span class="cx">     void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
</span><span class="cx">     void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, ArrayBufferView data);
</span><span class="lines">@@ -536,7 +536,7 @@
</span><span class="cx">     void depthFunc(GLenum func);
</span><span class="cx">     void depthMask(GLboolean flag);
</span><span class="cx">     void depthRange(GLclampf zNear, GLclampf zFar);
</span><del>-    void detachShader(WebGLProgram? program, WebGLShader? shader);
</del><ins>+    void detachShader(WebGLProgram program, WebGLShader shader);
</ins><span class="cx">     void disable(GLenum cap);
</span><span class="cx">     void disableVertexAttribArray(GLuint index);
</span><span class="cx">     void drawArrays(GLenum mode, GLint first, GLsizei count);
</span><span class="lines">@@ -551,13 +551,13 @@
</span><span class="cx">     void frontFace(GLenum mode);
</span><span class="cx">     void generateMipmap(GLenum target);
</span><span class="cx">     
</span><del>-    WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
-    WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
</del><ins>+    WebGLActiveInfo getActiveAttrib(WebGLProgram program, GLuint index);
+    WebGLActiveInfo getActiveUniform(WebGLProgram program, GLuint index);
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: The spec says this should not take a nullable WebGLProgram.
</span><del>-    sequence<WebGLShader>? getAttachedShaders(WebGLProgram? program);
</del><ins>+    sequence<WebGLShader>? getAttachedShaders(WebGLProgram program);
</ins><span class="cx"> 
</span><del>-    GLint getAttribLocation(WebGLProgram? program, DOMString name);
</del><ins>+    GLint getAttribLocation(WebGLProgram program, DOMString name);
</ins><span class="cx"> 
</span><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getBufferParameter(GLenum target, GLenum pname);
</span><span class="cx"> 
</span><span class="lines">@@ -570,22 +570,22 @@
</span><span class="cx"> 
</span><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
</span><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getParameter(GLenum pname);
</span><del>-    [OverrideIDLType=IDLWebGLAny] any getProgramParameter(WebGLProgram? program, GLenum pname);
-    DOMString? getProgramInfoLog(WebGLProgram? program);
</del><ins>+    [OverrideIDLType=IDLWebGLAny] any getProgramParameter(WebGLProgram program, GLenum pname);
+    DOMString? getProgramInfoLog(WebGLProgram program);
</ins><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getRenderbufferParameter(GLenum target, GLenum pname);
</span><del>-    [OverrideIDLType=IDLWebGLAny] any getShaderParameter(WebGLShader? shader, GLenum pname);
</del><ins>+    [OverrideIDLType=IDLWebGLAny] any getShaderParameter(WebGLShader shader, GLenum pname);
</ins><span class="cx"> 
</span><del>-    DOMString? getShaderInfoLog(WebGLShader? shader);
</del><ins>+    DOMString? getShaderInfoLog(WebGLShader shader);
</ins><span class="cx"> 
</span><span class="cx">     WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
</span><span class="cx"> 
</span><del>-    DOMString? getShaderSource(WebGLShader? shader);
</del><ins>+    DOMString? getShaderSource(WebGLShader shader);
</ins><span class="cx"> 
</span><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getTexParameter(GLenum target, GLenum pname);
</span><span class="cx"> 
</span><del>-    [OverrideIDLType=IDLWebGLAny] any getUniform(WebGLProgram? program, WebGLUniformLocation? location);
</del><ins>+    [OverrideIDLType=IDLWebGLAny] any getUniform(WebGLProgram program, WebGLUniformLocation location);
</ins><span class="cx"> 
</span><del>-    WebGLUniformLocation getUniformLocation(WebGLProgram? program, DOMString name);
</del><ins>+    WebGLUniformLocation getUniformLocation(WebGLProgram program, DOMString name);
</ins><span class="cx"> 
</span><span class="cx">     [OverrideIDLType=IDLWebGLAny] any getVertexAttrib(GLuint index, GLenum pname);
</span><span class="cx"> 
</span><span class="lines">@@ -601,7 +601,7 @@
</span><span class="cx">     GLboolean isShader(WebGLShader? shader);
</span><span class="cx">     GLboolean isTexture(WebGLTexture? texture);
</span><span class="cx">     void lineWidth(GLfloat width);
</span><del>-    void linkProgram(WebGLProgram? program);
</del><ins>+    void linkProgram(WebGLProgram program);
</ins><span class="cx"> 
</span><span class="cx">     [NewObject, Conditional=WEBXR] Promise<void> makeXRCompatible();
</span><span class="cx"> 
</span><span class="lines">@@ -613,7 +613,7 @@
</span><span class="cx">     void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
</span><span class="cx">     void sampleCoverage(GLclampf value, GLboolean invert);
</span><span class="cx">     void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
</span><del>-    void shaderSource(WebGLShader? shader, DOMString string);
</del><ins>+    void shaderSource(WebGLShader shader, DOMString string);
</ins><span class="cx">     void stencilFunc(GLenum func, GLint ref, GLuint mask);
</span><span class="cx">     void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
</span><span class="cx">     void stencilMask(GLuint mask);
</span><span class="lines">@@ -649,7 +649,7 @@
</span><span class="cx">     void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List array);
</span><span class="cx"> 
</span><span class="cx">     void useProgram(WebGLProgram? program);
</span><del>-    void validateProgram(WebGLProgram? program);
</del><ins>+    void validateProgram(WebGLProgram program);
</ins><span class="cx"> 
</span><span class="cx">     void vertexAttrib1f(GLuint index, GLfloat x);
</span><span class="cx">     void vertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorShaderProgramcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp (265840 => 265841)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp        2020-08-18 23:44:58 UTC (rev 265840)
+++ trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp   2020-08-18 23:49:22 UTC (rev 265841)
</span><span class="lines">@@ -190,8 +190,8 @@
</span><span class="cx">                 if (auto* context = m_canvas.canvasContext()) {
</span><span class="cx">                     if (is<WebGLRenderingContextBase>(context)) {
</span><span class="cx">                         auto& contextWebGLBase = downcast<WebGLRenderingContextBase>(*context);
</span><del>-                        contextWebGLBase.shaderSource(shader, source);
-                        contextWebGLBase.compileShader(shader);
</del><ins>+                        contextWebGLBase.shaderSource(*shader, source);
+                        contextWebGLBase.compileShader(*shader);
</ins><span class="cx">                         if (shader->isValid()) {
</span><span class="cx">                             contextWebGLBase.linkProgramWithoutInvalidatingAttribLocations(&program);
</span><span class="cx">                             return true;
</span></span></pre>
</div>
</div>

</body>
</html>