[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.16-1409-g5afdf4d
cmarrin at apple.com
cmarrin at apple.com
Thu Dec 3 13:44:12 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit f894cc19b4cac5ac16e71b8b7561de9dbca1a2d0
Author: cmarrin at apple.com <cmarrin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 25 03:13:06 2009 +0000
Do error checking of parameter to createShader
https://bugs.webkit.org/show_bug.cgi?id=31808
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 496d9e5..5849d22 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2009-11-24 Chris Marrin <cmarrin at apple.com>
+
+ Reviewed by Eric Seidel.
+
+ Test for createShader param passing
+ https://bugs.webkit.org/show_bug.cgi?id=31808
+
+ This test will eventually contain more param passing tests as
+ they are implemented.
+
+ * fast/canvas/webgl/invalidPassedParams-expected.txt: Added.
+ * fast/canvas/webgl/invalidPassedParams.html: Added.
+
2009-11-24 Darin Fisher <darin at chromium.org>
Reviewed by Adam Barth.
diff --git a/LayoutTests/fast/canvas/webgl/invalidPassedParams-expected.txt b/LayoutTests/fast/canvas/webgl/invalidPassedParams-expected.txt
new file mode 100644
index 0000000..38d2fd8
--- /dev/null
+++ b/LayoutTests/fast/canvas/webgl/invalidPassedParams-expected.txt
@@ -0,0 +1,14 @@
+Test for invalid passed parameters
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+Test shaders
+PASS shader = context.createShader(context.FRAGMENT_SHADER) is shader
+PASS shader = context.createShader(context.VERTEX_SHADER) is shader
+PASS context.createShader(0) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.createShader(context.TRIANGLES) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/canvas/webgl/invalidPassedParams.html b/LayoutTests/fast/canvas/webgl/invalidPassedParams.html
new file mode 100644
index 0000000..768d2a6
--- /dev/null
+++ b/LayoutTests/fast/canvas/webgl/invalidPassedParams.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css"/>
+<script src="../../js/resources/js-test-pre.js"></script>
+<script src="resources/webgl-test.js"></script>
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+
+<script>
+description("Test for invalid passed parameters");
+
+var context = create3DContext();
+
+debug("Test shaders");
+var shader;
+shouldBe("shader = context.createShader(context.FRAGMENT_SHADER)", "shader");
+shouldBe("shader = context.createShader(context.VERTEX_SHADER)", "shader");
+shouldThrow("context.createShader(0)");
+shouldThrow("context.createShader(context.TRIANGLES)");
+
+debug("")
+successfullyParsed = true;
+</script>
+
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index e4dfce5..df6ea91 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2009-11-24 Chris Marrin <cmarrin at apple.com>
+
+ Reviewed by Eric Seidel.
+
+ Do error checking of parameter to createShader
+ https://bugs.webkit.org/show_bug.cgi?id=31808
+
+ Test: fast/canvas/webgl/invalidPassedParams.html
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::createShader):
+ * html/canvas/WebGLRenderingContext.h:
+ * html/canvas/WebGLRenderingContext.idl:
+
2009-11-24 Kent Tamura <tkent at chromium.org>
Reviewed by Eric Seidel.
diff --git a/WebCore/html/canvas/WebGLRenderingContext.cpp b/WebCore/html/canvas/WebGLRenderingContext.cpp
index 6567a62..6c75947 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.cpp
+++ b/WebCore/html/canvas/WebGLRenderingContext.cpp
@@ -448,9 +448,13 @@ PassRefPtr<WebGLRenderbuffer> WebGLRenderingContext::createRenderbuffer()
return o;
}
-PassRefPtr<WebGLShader> WebGLRenderingContext::createShader(unsigned long type)
+PassRefPtr<WebGLShader> WebGLRenderingContext::createShader(unsigned long type, ExceptionCode& ec)
{
- // FIXME: Need to do param checking and throw exception if an illegal value is passed in
+ if (type != GraphicsContext3D::VERTEX_SHADER && type != GraphicsContext3D::FRAGMENT_SHADER) {
+ ec = SYNTAX_ERR;
+ return 0;
+ }
+
RefPtr<WebGLShader> o = WebGLShader::create(this, static_cast<GraphicsContext3D::WebGLEnumType>(type));
addObject(o.get());
return o;
diff --git a/WebCore/html/canvas/WebGLRenderingContext.h b/WebCore/html/canvas/WebGLRenderingContext.h
index 5fee4cd..62b8899 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/WebCore/html/canvas/WebGLRenderingContext.h
@@ -96,7 +96,7 @@ class WebKitCSSMatrix;
PassRefPtr<WebGLFramebuffer> createFramebuffer();
PassRefPtr<WebGLProgram> createProgram();
PassRefPtr<WebGLRenderbuffer> createRenderbuffer();
- PassRefPtr<WebGLShader> createShader(unsigned long type);
+ PassRefPtr<WebGLShader> createShader(unsigned long type, ExceptionCode&);
PassRefPtr<WebGLTexture> createTexture();
void cullFace(unsigned long mode);
diff --git a/WebCore/html/canvas/WebGLRenderingContext.idl b/WebCore/html/canvas/WebGLRenderingContext.idl
index 8169367..8f3c531 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.idl
+++ b/WebCore/html/canvas/WebGLRenderingContext.idl
@@ -499,7 +499,7 @@ module html {
WebGLFramebuffer createFramebuffer();
WebGLProgram createProgram();
WebGLRenderbuffer createRenderbuffer();
- WebGLShader createShader(in unsigned long type);
+ WebGLShader createShader(in unsigned long type) raises(DOMException);
WebGLTexture createTexture();
void cullFace(in unsigned long mode);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list