| Index: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp | 
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp | 
| index b469fd404e1cc4722b6625d87c81252bd79f791a..d5e7e4564c6d80ded84553fcb7317d1744f22790 100644 | 
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp | 
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp | 
| @@ -1382,11 +1382,6 @@ void WebGL2RenderingContextBase::drawElementsInstanced(GLenum mode, GLsizei coun | 
| return; | 
| } | 
|  | 
| -    if (transformFeedbackActive() && !transformFeedbackPaused()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "drawElementsInstanced", "transform feedback is active and not paused"); | 
| -        return; | 
| -    } | 
| - | 
| ScopedRGBEmulationColorMask emulationColorMask(contextGL(), m_colorMask, m_drawingBuffer.get()); | 
| clearIfComposited(); | 
| contextGL()->DrawElementsInstancedANGLE(mode, count, type, reinterpret_cast<void*>(static_cast<intptr_t>(offset)), instanceCount); | 
| @@ -1403,11 +1398,6 @@ void WebGL2RenderingContextBase::drawRangeElements(GLenum mode, GLuint start, GL | 
| return; | 
| } | 
|  | 
| -    if (transformFeedbackActive() && !transformFeedbackPaused()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "drawRangeElements", "transform feedback is active and not paused"); | 
| -        return; | 
| -    } | 
| - | 
| ScopedRGBEmulationColorMask emulationColorMask(contextGL(), m_colorMask, m_drawingBuffer.get()); | 
| clearIfComposited(); | 
| contextGL()->DrawRangeElements(mode, start, end, count, type, reinterpret_cast<void*>(static_cast<intptr_t>(offset))); | 
| @@ -2007,10 +1997,6 @@ WebGLTransformFeedback* WebGL2RenderingContextBase::createTransformFeedback() | 
|  | 
| void WebGL2RenderingContextBase::deleteTransformFeedback(WebGLTransformFeedback* feedback) | 
| { | 
| -    if (transformFeedbackActive()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "deleteTransformFeedback", "transform feedback is active"); | 
| -        return; | 
| -    } | 
| if (feedback == m_transformFeedbackBinding) | 
| m_transformFeedbackBinding = nullptr; | 
|  | 
| @@ -2043,11 +2029,6 @@ void WebGL2RenderingContextBase::bindTransformFeedback(ScriptState* scriptState, | 
| return; | 
| } | 
|  | 
| -    if (transformFeedbackActive() && !transformFeedbackPaused()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "bindTransformFeedback", "transform feedback is active and not paused"); | 
| -        return; | 
| -    } | 
| - | 
| m_transformFeedbackBinding = feedback; | 
|  | 
| contextGL()->BindTransformFeedback(target, objectOrZero(feedback)); | 
| @@ -2065,19 +2046,8 @@ void WebGL2RenderingContextBase::beginTransformFeedback(GLenum primitiveMode) | 
| if (!validateTransformFeedbackPrimitiveMode("beginTransformFeedback", primitiveMode)) | 
| return; | 
|  | 
| -    if (transformFeedbackActive()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "beginTransformFeedback", "transform feedback is active"); | 
| -        return; | 
| -    } | 
| - | 
| contextGL()->BeginTransformFeedback(primitiveMode); | 
|  | 
| -    // TODO(kbr): there are many more reasons BeginTransformFeedback may fail, the most | 
| -    // problematic being "if any binding point used in transform feedback mode does not | 
| -    // have a buffer object bound", and "if no binding points would be used". | 
| -    // crbug.com/448164 | 
| -    setTransformFeedbackActive(true); | 
| - | 
| if (m_currentProgram) | 
| m_currentProgram->increaseActiveTransformFeedbackCount(); | 
|  | 
| @@ -2090,16 +2060,8 @@ void WebGL2RenderingContextBase::endTransformFeedback() | 
| if (isContextLost()) | 
| return; | 
|  | 
| -    if (!transformFeedbackActive()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "endTransformFeedback", "transform feedback is not active"); | 
| -        return; | 
| -    } | 
| - | 
| contextGL()->EndTransformFeedback(); | 
|  | 
| -    setTransformFeedbackPaused(false); | 
| -    setTransformFeedbackActive(false); | 
| - | 
| if (m_currentProgram) | 
| m_currentProgram->decreaseActiveTransformFeedbackCount(); | 
| } | 
| @@ -2172,14 +2134,7 @@ void WebGL2RenderingContextBase::pauseTransformFeedback() | 
| if (isContextLost()) | 
| return; | 
|  | 
| -    if (!transformFeedbackActive() || transformFeedbackPaused()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "pauseTransformFeedback", "transform feedback is not active or is paused"); | 
| -        return; | 
| -    } | 
| - | 
| contextGL()->PauseTransformFeedback(); | 
| - | 
| -    setTransformFeedbackPaused(true); | 
| } | 
|  | 
| void WebGL2RenderingContextBase::resumeTransformFeedback() | 
| @@ -2187,19 +2142,12 @@ void WebGL2RenderingContextBase::resumeTransformFeedback() | 
| if (isContextLost()) | 
| return; | 
|  | 
| -    if (!transformFeedbackActive() || !transformFeedbackPaused()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "resumeTransformFeedback", "transform feedback is not active or is not paused"); | 
| -        return; | 
| -    } | 
| - | 
| if (m_transformFeedbackBinding && m_transformFeedbackBinding->getProgram() != m_currentProgram) { | 
| synthesizeGLError(GL_INVALID_OPERATION, "resumeTransformFeedback", "the program object is not active"); | 
| return; | 
| } | 
|  | 
| contextGL()->ResumeTransformFeedback(); | 
| - | 
| -    setTransformFeedbackPaused(false); | 
| } | 
|  | 
| bool WebGL2RenderingContextBase::validateTransformFeedbackPrimitiveMode(const char* functionName, GLenum primitiveMode) | 
| @@ -2227,12 +2175,6 @@ void WebGL2RenderingContextBase::bindBufferBase(GLenum target, GLuint index, Web | 
| if (!validateAndUpdateBufferBindBaseTarget("bindBufferBase", target, index, buffer)) | 
| return; | 
|  | 
| -    // ES 3.0.4 spec section 2.15.2 "Transform Feedback Primitive Capture" | 
| -    if (target == GL_TRANSFORM_FEEDBACK_BUFFER && transformFeedbackActive()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "bindBufferBase", "target is TRANSFORM_FEEDBACK_BUFFER and transform feedback is active"); | 
| -        return; | 
| -    } | 
| - | 
| contextGL()->BindBufferBase(target, index, objectOrZero(buffer)); | 
| } | 
|  | 
| @@ -2250,44 +2192,12 @@ void WebGL2RenderingContextBase::bindBufferRange(GLenum target, GLuint index, We | 
| return; | 
| } | 
|  | 
| -    // ES 3.0.4 spec section 2.15.2 "Transform Feedback Primitive Capture" | 
| -    if (target == GL_TRANSFORM_FEEDBACK_BUFFER && transformFeedbackActive()) { | 
| -        synthesizeGLError(GL_INVALID_OPERATION, "bindBufferRange", "target is TRANSFORM_FEEDBACK_BUFFER and transform feedback is active"); | 
| -        return; | 
| -    } | 
| - | 
| if (!validateAndUpdateBufferBindBaseTarget("bindBufferRange", target, index, buffer)) | 
| return; | 
|  | 
| contextGL()->BindBufferRange(target, index, objectOrZero(buffer), static_cast<GLintptr>(offset), static_cast<GLsizeiptr>(size)); | 
| } | 
|  | 
| -bool WebGL2RenderingContextBase::transformFeedbackActive() const | 
| -{ | 
| -    if (m_transformFeedbackBinding) | 
| -        return m_transformFeedbackBinding->isActive(); | 
| -    return false; | 
| -} | 
| - | 
| -bool WebGL2RenderingContextBase::transformFeedbackPaused() const | 
| -{ | 
| -    if (m_transformFeedbackBinding) | 
| -        return m_transformFeedbackBinding->isPaused(); | 
| -    return false; | 
| -} | 
| - | 
| -void WebGL2RenderingContextBase::setTransformFeedbackActive(bool transformFeedbackActive) | 
| -{ | 
| -    if (m_transformFeedbackBinding) | 
| -        m_transformFeedbackBinding->setActive(transformFeedbackActive); | 
| -} | 
| - | 
| -void WebGL2RenderingContextBase::setTransformFeedbackPaused(bool transformFeedbackPaused) | 
| -{ | 
| -    if (m_transformFeedbackBinding) | 
| -        m_transformFeedbackBinding->setPaused(transformFeedbackPaused); | 
| -} | 
| - | 
| ScriptValue WebGL2RenderingContextBase::getIndexedParameter(ScriptState* scriptState, GLenum target, GLuint index) | 
| { | 
| if (isContextLost()) | 
| @@ -2735,13 +2645,13 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* scriptState, G | 
| case GL_TEXTURE_BINDING_3D: | 
| return WebGLAny(scriptState, m_textureUnits[m_activeTextureUnit].m_texture3DBinding.get()); | 
| case GL_TRANSFORM_FEEDBACK_ACTIVE: | 
| -        return WebGLAny(scriptState, transformFeedbackActive()); | 
| +        return getBooleanParameter(scriptState, pname); | 
| case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: | 
| return WebGLAny(scriptState, m_boundTransformFeedbackBuffer.get()); | 
| case GL_TRANSFORM_FEEDBACK_BINDING: | 
| return WebGLAny(scriptState, m_transformFeedbackBinding.get()); | 
| case GL_TRANSFORM_FEEDBACK_PAUSED: | 
| -        return WebGLAny(scriptState, transformFeedbackPaused()); | 
| +        return getBooleanParameter(scriptState, pname); | 
| case GL_UNIFORM_BUFFER_BINDING: | 
| return WebGLAny(scriptState, m_boundUniformBuffer.get()); | 
| case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: | 
|  |