Commit 1825ebee authored by bajones@chromium.org's avatar bajones@chromium.org

Got WebGLRenderingContextBase to work with the "implements" syntax

BUG=348033
R=arv@chromium.org, ch.dumez@samsung.com

Review URL: https://codereview.chromium.org/205243013

git-svn-id: svn://svn.chromium.org/blink/trunk@170000 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bf461607
......@@ -7,7 +7,7 @@ PASS shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == s
PASS getError was expected value: NO_ERROR :
PASS gl.getAttachedShaders(null) is null
PASS getError was expected value: INVALID_VALUE :
PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContextBase': The 1st argument provided is either null, or an invalid WebGLProgram object..
PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContext': The 1st argument provided is either null, or an invalid WebGLProgram object..
PASS getError was expected value: NO_ERROR :
PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
......
......@@ -14,10 +14,10 @@ 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.
PASS context.bindBuffer(context.ARRAY_BUFFER, 0) threw exception TypeError: Failed to execute 'bindBuffer' on 'WebGLRenderingContextBase': parameter 2 is not of type 'WebGLBuffer'..
PASS context.bindFramebuffer(context.FRAMEBUFFER, 0) threw exception TypeError: Failed to execute 'bindFramebuffer' on 'WebGLRenderingContextBase': parameter 2 is not of type 'WebGLFramebuffer'..
PASS context.bindRenderbuffer(context.RENDERBUFFER, 0) threw exception TypeError: Failed to execute 'bindRenderbuffer' on 'WebGLRenderingContextBase': parameter 2 is not of type 'WebGLRenderbuffer'..
PASS context.bindTexture(context.TEXTURE_2D, 0) threw exception TypeError: Failed to execute 'bindTexture' on 'WebGLRenderingContextBase': parameter 2 is not of type 'WebGLTexture'..
PASS context.bindBuffer(context.ARRAY_BUFFER, 0) threw exception TypeError: Failed to execute 'bindBuffer' on 'WebGLRenderingContext': parameter 2 is not of type 'WebGLBuffer'..
PASS context.bindFramebuffer(context.FRAMEBUFFER, 0) threw exception TypeError: Failed to execute 'bindFramebuffer' on 'WebGLRenderingContext': parameter 2 is not of type 'WebGLFramebuffer'..
PASS context.bindRenderbuffer(context.RENDERBUFFER, 0) threw exception TypeError: Failed to execute 'bindRenderbuffer' on 'WebGLRenderingContext': parameter 2 is not of type 'WebGLRenderbuffer'..
PASS context.bindTexture(context.TEXTURE_2D, 0) threw exception TypeError: Failed to execute 'bindTexture' on 'WebGLRenderingContext': parameter 2 is not of type 'WebGLTexture'..
PASS context.bindBuffer(context.ARRAY_BUFFER, null) was expected value: NO_ERROR.
PASS context.bindFramebuffer(context.FRAMEBUFFER, null) was expected value: NO_ERROR.
PASS context.bindRenderbuffer(context.RENDERBUFFER, null) was expected value: NO_ERROR.
......
......@@ -2,9 +2,9 @@ Test of texImage2d and texSubImage2d
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS context.texImage2D(context.TEXTURE_2D) threw exception TypeError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': 6 arguments required, but only 1 present..
PASS context.texImage2D(context.TEXTURE_2D) threw exception TypeError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': 6 arguments required, but only 1 present..
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 64, 64, 0, context.RGBA, context.UNSIGNED_BYTE, null) is undefined.
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, context.RGBA, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': No function was found that matched the signature provided..
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, context.RGBA, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': No function was found that matched the signature provided..
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 2, 2, 0, context.RGBA, context.UNSIGNED_BYTE, array) is undefined.
PASS context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, true) is undefined.
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, context.RGBA, context.UNSIGNED_BYTE, imageData) is undefined.
......@@ -13,10 +13,10 @@ PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, context.RGBA, conte
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, context.RGBA, context.UNSIGNED_BYTE, canvas2d) is undefined.
PASS context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, true) is undefined.
PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, context.RGBA, context.UNSIGNED_BYTE, video) is undefined.
PASS context.texSubImage2D(context.TEXTURE_2D) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContextBase': 7 arguments required, but only 1 present..
PASS context.texSubImage2D(context.TEXTURE_2D) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContext': 7 arguments required, but only 1 present..
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, 0, context.RGBA, context.UNSIGNED_BYTE, null) is undefined.
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, 0, context.RGBA, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContextBase': No function was found that matched the signature provided..
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContextBase': No function was found that matched the signature provided..
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, 0, context.RGBA, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContext': No function was found that matched the signature provided..
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, context.UNSIGNED_BYTE, 0) threw exception TypeError: Failed to execute 'texSubImage2D' on 'WebGLRenderingContext': No function was found that matched the signature provided..
PASS context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, false) is undefined.
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, context.RGBA, context.UNSIGNED_BYTE, imageData) is undefined.
PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, context.RGBA, context.UNSIGNED_BYTE, image) is undefined.
......
PASS gl.getBufferParameter() threw exception TypeError: Failed to execute 'getBufferParameter' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getRenderbufferParameter() threw exception TypeError: Failed to execute 'getRenderbufferParameter' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getTexParameter() threw exception TypeError: Failed to execute 'getTexParameter' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getVertexAttrib() threw exception TypeError: Failed to execute 'getVertexAttrib' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getAttachedShaders() threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContextBase': 1 argument required, but only 0 present..
PASS gl.getExtension() threw exception TypeError: Failed to execute 'getExtension' on 'WebGLRenderingContextBase': 1 argument required, but only 0 present..
PASS gl.getFramebufferAttachmentParameter() threw exception TypeError: Failed to execute 'getFramebufferAttachmentParameter' on 'WebGLRenderingContextBase': 3 arguments required, but only 0 present..
PASS gl.getParameter() threw exception TypeError: Failed to execute 'getParameter' on 'WebGLRenderingContextBase': 1 argument required, but only 0 present..
PASS gl.getProgramParameter() threw exception TypeError: Failed to execute 'getProgramParameter' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getShaderParameter() threw exception TypeError: Failed to execute 'getShaderParameter' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.getUniform() threw exception TypeError: Failed to execute 'getUniform' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.uniform1iv() threw exception TypeError: Failed to execute 'uniform1iv' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.uniformMatrix2fv() threw exception TypeError: Failed to execute 'uniformMatrix2fv' on 'WebGLRenderingContextBase': 3 arguments required, but only 0 present..
PASS gl.uniform1fv() threw exception TypeError: Failed to execute 'uniform1fv' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.vertexAttrib1fv() threw exception TypeError: Failed to execute 'vertexAttrib1fv' on 'WebGLRenderingContextBase': 2 arguments required, but only 0 present..
PASS gl.uniformMatrix4fv(1, 1) threw exception TypeError: Failed to execute 'uniformMatrix4fv' on 'WebGLRenderingContextBase': 3 arguments required, but only 2 present..
PASS gl.getBufferParameter() threw exception TypeError: Failed to execute 'getBufferParameter' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getRenderbufferParameter() threw exception TypeError: Failed to execute 'getRenderbufferParameter' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getTexParameter() threw exception TypeError: Failed to execute 'getTexParameter' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getVertexAttrib() threw exception TypeError: Failed to execute 'getVertexAttrib' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getAttachedShaders() threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContext': 1 argument required, but only 0 present..
PASS gl.getExtension() threw exception TypeError: Failed to execute 'getExtension' on 'WebGLRenderingContext': 1 argument required, but only 0 present..
PASS gl.getFramebufferAttachmentParameter() threw exception TypeError: Failed to execute 'getFramebufferAttachmentParameter' on 'WebGLRenderingContext': 3 arguments required, but only 0 present..
PASS gl.getParameter() threw exception TypeError: Failed to execute 'getParameter' on 'WebGLRenderingContext': 1 argument required, but only 0 present..
PASS gl.getProgramParameter() threw exception TypeError: Failed to execute 'getProgramParameter' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getShaderParameter() threw exception TypeError: Failed to execute 'getShaderParameter' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.getUniform() threw exception TypeError: Failed to execute 'getUniform' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.uniform1iv() threw exception TypeError: Failed to execute 'uniform1iv' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.uniformMatrix2fv() threw exception TypeError: Failed to execute 'uniformMatrix2fv' on 'WebGLRenderingContext': 3 arguments required, but only 0 present..
PASS gl.uniform1fv() threw exception TypeError: Failed to execute 'uniform1fv' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.vertexAttrib1fv() threw exception TypeError: Failed to execute 'vertexAttrib1fv' on 'WebGLRenderingContext': 2 arguments required, but only 0 present..
PASS gl.uniformMatrix4fv(1, 1) threw exception TypeError: Failed to execute 'uniformMatrix4fv' on 'WebGLRenderingContext': 3 arguments required, but only 2 present..
PASS successfullyParsed is true
TEST COMPLETE
......
......@@ -5,10 +5,10 @@ PASS: Calling readPixels() from an untainted canvas was allowed.
PASS: Calling toDataURL() on an untainted canvas was allowed.
Tainted canvas:
PASS: Calling texImage2D() with a tainted image was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': The cross-origin image at http://localhost:8000/security/resources/abe-allow-star.php may not be loaded..
PASS: Calling texImage2D() with a tainted image was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at http://localhost:8000/security/resources/abe-allow-star.php may not be loaded..
PASS: Calling readPixels() on a canvas where tainting was attempted by a remote image was allowed.
PASS: Calling toDataURL() on a canvas where tainting was attempted by a remote image was allowed.
PASS: Calling texImage2D() with a tainted canvas was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': Tainted canvases may not be loaded..
PASS: Calling texImage2D() with a tainted canvas was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': Tainted canvases may not be loaded..
PASS: Calling readPixels() on a canvas where tainting was attempted by a tainted canvas was allowed.
PASS: Calling toDataURL() on a canvas where tainting was attempted by a tainted canvas was allowed.
......@@ -18,10 +18,10 @@ PASS: Calling readPixels() from an untainted canvas was allowed.
PASS: Calling toDataURL() on an untainted canvas was allowed.
Tainted canvas:
PASS: Calling texImage2D() with a tainted video was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': The video element contains cross-origin data, and may not be loaded..
PASS: Calling texImage2D() with a tainted video was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The video element contains cross-origin data, and may not be loaded..
PASS: Calling readPixels() on a canvas where tainting was attempted by a remote video was allowed.
PASS: Calling toDataURL() on a canvas where tainting was attempted by a remote video was allowed.
PASS: Calling texImage2D() with a tainted canvas was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContextBase': Tainted canvases may not be loaded..
PASS: Calling texImage2D() with a tainted canvas was not allowed: Threw error: SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': Tainted canvases may not be loaded..
PASS: Calling readPixels() on a canvas where tainting was attempted by a tainted canvas was allowed.
PASS: Calling toDataURL() on a canvas where tainting was attempted by a tainted canvas was allowed.
DONE
......
......@@ -7,7 +7,7 @@ PASS shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == s
PASS getError was expected value: NO_ERROR :
PASS gl.getAttachedShaders(null) is null
PASS getError was expected value: INVALID_VALUE :
PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContextBase': The 1st argument provided is either null, or an invalid WebGLProgram object..
PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Failed to execute 'getAttachedShaders' on 'WebGLRenderingContext': The 1st argument provided is either null, or an invalid WebGLProgram object..
PASS getError was expected value: NO_ERROR :
PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
......
......@@ -228,7 +228,7 @@
'v8/custom/V8Uint32ArrayCustom.h',
'v8/custom/V8Uint8ArrayCustom.h',
'v8/custom/V8Uint8ClampedArrayCustom.h',
'v8/custom/V8WebGLRenderingContextBaseCustom.cpp',
'v8/custom/V8WebGLRenderingContextCustom.cpp',
'v8/custom/V8WebKitPointCustom.cpp',
'v8/custom/V8WindowCustom.cpp',
'v8/custom/V8WorkerGlobalScopeCustom.cpp',
......
......@@ -246,7 +246,6 @@
'html/canvas/WebGLProgram.idl',
'html/canvas/WebGLRenderbuffer.idl',
'html/canvas/WebGLRenderingContext.idl',
'html/canvas/WebGLRenderingContextBase.idl',
'html/canvas/WebGLShader.idl',
'html/canvas/WebGLShaderPrecisionFormat.idl',
'html/canvas/WebGLTexture.idl',
......@@ -465,6 +464,7 @@
'frame/WindowEventHandlers.idl',
'frame/WindowTimers.idl',
'html/canvas/CanvasPathMethods.idl',
'html/canvas/WebGLRenderingContextBase.idl',
'page/WindowPagePopup.idl',
'svg/SVGDocument.idl',
'svg/SVGFilterPrimitiveStandardAttributes.idl',
......
......@@ -26,11 +26,12 @@
#ifndef WebGLRenderingContext_h
#define WebGLRenderingContext_h
#include "bindings/v8/ScriptWrappable.h"
#include "core/html/canvas/WebGLRenderingContextBase.h"
namespace WebCore {
class WebGLRenderingContext FINAL : public WebGLRenderingContextBase {
class WebGLRenderingContext FINAL : public ScriptWrappable, public WebGLRenderingContextBase {
public:
static PassOwnPtr<WebGLRenderingContext> create(HTMLCanvasElement*, WebGLContextAttributes*);
virtual ~WebGLRenderingContext();
......
......@@ -23,5 +23,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
interface WebGLRenderingContext : WebGLRenderingContextBase {
};
[
DoNotCheckConstants,
StrictTypeChecking,
] interface WebGLRenderingContext { };
WebGLRenderingContext implements WebGLRenderingContextBase;
......@@ -516,7 +516,6 @@ WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCa
, m_onePlusMaxNonDefaultTextureUnit(0)
{
ASSERT(m_context);
ScriptWrappable::init(this);
m_contextGroup = WebGLContextGroup::create();
m_contextGroup->addContext(this);
......
......@@ -26,7 +26,6 @@
#ifndef WebGLRenderingContextBase_h
#define WebGLRenderingContextBase_h
#include "bindings/v8/ScriptWrappable.h"
#include "core/dom/ActiveDOMObject.h"
#include "core/html/canvas/CanvasRenderingContext.h"
#include "core/html/canvas/WebGLExtensionName.h"
......@@ -95,7 +94,7 @@ class WebGLVertexArrayObjectOES;
class WebGLRenderingContextLostCallback;
class WebGLRenderingContextErrorMessageCallback;
class WebGLRenderingContextBase: public ScriptWrappable, public CanvasRenderingContext, public ActiveDOMObject, private Page::MultisamplingChangedObserver {
class WebGLRenderingContextBase: public CanvasRenderingContext, public ActiveDOMObject, private Page::MultisamplingChangedObserver {
public:
virtual ~WebGLRenderingContextBase();
......
......@@ -40,8 +40,9 @@ typedef /*unrestricted*/ float GLclampf;
[
DoNotCheckConstants,
ImplementedInBaseClass,
NoInterfaceObject,
StrictTypeChecking,
NoInterfaceObject
] interface WebGLRenderingContextBase {
readonly attribute HTMLCanvasElement canvas;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment