[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

cmarrin at apple.com cmarrin at apple.com
Wed Apr 7 23:56:15 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit b983e904f7f3bc23ae72c3a9320a4091af8a1f33
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