Refactor ANGLE Extensions Context Calls

Refactors ANGLE extensions context calls into a common format for future
autogeneration. Any work that occurred in the entry point has been moved into
its own context member function.

Bug:angleproject:2263
Change-Id: I91cb3aca6a8c135ed3ae80a723d6cf16b54aeda6
Reviewed-on: https://chromium-review.googlesource.com/990809
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 268384f..a239260 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -625,7 +625,7 @@
     return mState.mRenderbuffers->createRenderbuffer();
 }
 
-GLuint Context::createPaths(GLsizei range)
+GLuint Context::genPaths(GLsizei range)
 {
     auto resultOrError = mState.mPaths->createPaths(mImplementation.get(), range);
     if (resultOrError.isError())
@@ -728,7 +728,7 @@
     mState.mPaths->deletePaths(first, range);
 }
 
-bool Context::hasPathData(GLuint path) const
+bool Context::isPath(GLuint path) const
 {
     const auto *pathObj = mState.mPaths->getPath(path);
     if (pathObj == nullptr)
@@ -737,17 +737,17 @@
     return pathObj->hasPathData();
 }
 
-bool Context::hasPath(GLuint path) const
+bool Context::isPathGenerated(GLuint path) const
 {
     return mState.mPaths->hasPath(path);
 }
 
-void Context::setPathCommands(GLuint path,
-                              GLsizei numCommands,
-                              const GLubyte *commands,
-                              GLsizei numCoords,
-                              GLenum coordType,
-                              const void *coords)
+void Context::pathCommands(GLuint path,
+                           GLsizei numCommands,
+                           const GLubyte *commands,
+                           GLsizei numCoords,
+                           GLenum coordType,
+                           const void *coords)
 {
     auto *pathObject = mState.mPaths->getPath(path);
 
@@ -822,7 +822,7 @@
         *value = static_cast<GLint>(val);
 }
 
-void Context::setPathStencilFunc(GLenum func, GLint ref, GLuint mask)
+void Context::pathStencilFunc(GLenum func, GLint ref, GLuint mask)
 {
     mGLState.setPathStencilFunc(func, ref, mask);
 }
@@ -1131,26 +1131,71 @@
     }
 }
 
+void Context::getQueryivRobust(GLenum target,
+                               GLenum pname,
+                               GLsizei bufSize,
+                               GLsizei *length,
+                               GLint *params)
+{
+    getQueryiv(target, pname, params);
+}
+
 void Context::getQueryObjectiv(GLuint id, GLenum pname, GLint *params)
 {
     handleError(GetQueryObjectParameter(getQuery(id), pname, params));
 }
 
+void Context::getQueryObjectivRobust(GLuint id,
+                                     GLenum pname,
+                                     GLsizei bufSize,
+                                     GLsizei *length,
+                                     GLint *params)
+{
+    getQueryObjectiv(id, pname, params);
+}
+
 void Context::getQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)
 {
     handleError(GetQueryObjectParameter(getQuery(id), pname, params));
 }
 
+void Context::getQueryObjectuivRobust(GLuint id,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLuint *params)
+{
+    getQueryObjectuiv(id, pname, params);
+}
+
 void Context::getQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params)
 {
     handleError(GetQueryObjectParameter(getQuery(id), pname, params));
 }
 
+void Context::getQueryObjecti64vRobust(GLuint id,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       GLsizei *length,
+                                       GLint64 *params)
+{
+    getQueryObjecti64v(id, pname, params);
+}
+
 void Context::getQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params)
 {
     handleError(GetQueryObjectParameter(getQuery(id), pname, params));
 }
 
+void Context::getQueryObjectui64vRobust(GLuint id,
+                                        GLenum pname,
+                                        GLsizei bufSize,
+                                        GLsizei *length,
+                                        GLuint64 *params)
+{
+    getQueryObjectui64v(id, pname, params);
+}
+
 Framebuffer *Context::getFramebuffer(GLuint handle) const
 {
     return mState.mFramebuffers->getFramebuffer(handle);
@@ -1681,6 +1726,15 @@
     }
 }
 
+void Context::getIntegeri_vRobust(GLenum target,
+                                  GLuint index,
+                                  GLsizei bufSize,
+                                  GLsizei *length,
+                                  GLint *data)
+{
+    getIntegeri_v(target, index, data);
+}
+
 void Context::getInteger64i_v(GLenum target, GLuint index, GLint64 *data)
 {
     // Queries about context capabilities and maximums are answered by Context.
@@ -1701,6 +1755,15 @@
     }
 }
 
+void Context::getInteger64i_vRobust(GLenum target,
+                                    GLuint index,
+                                    GLsizei bufSize,
+                                    GLsizei *length,
+                                    GLint64 *data)
+{
+    getInteger64i_v(target, index, data);
+}
+
 void Context::getBooleani_v(GLenum target, GLuint index, GLboolean *data)
 {
     // Queries about context capabilities and maximums are answered by Context.
@@ -1721,12 +1784,30 @@
     }
 }
 
+void Context::getBooleani_vRobust(GLenum target,
+                                  GLuint index,
+                                  GLsizei bufSize,
+                                  GLsizei *length,
+                                  GLboolean *data)
+{
+    getBooleani_v(target, index, data);
+}
+
 void Context::getBufferParameteriv(BufferBinding target, GLenum pname, GLint *params)
 {
     Buffer *buffer = mGLState.getTargetBuffer(target);
     QueryBufferParameteriv(buffer, pname, params);
 }
 
+void Context::getBufferParameterivRobust(BufferBinding target,
+                                         GLenum pname,
+                                         GLsizei bufSize,
+                                         GLsizei *length,
+                                         GLint *params)
+{
+    getBufferParameteriv(target, pname, params);
+}
+
 void Context::getFramebufferAttachmentParameteriv(GLenum target,
                                                   GLenum attachment,
                                                   GLenum pname,
@@ -1736,24 +1817,61 @@
     QueryFramebufferAttachmentParameteriv(this, framebuffer, attachment, pname, params);
 }
 
+void Context::getFramebufferAttachmentParameterivRobust(GLenum target,
+                                                        GLenum attachment,
+                                                        GLenum pname,
+                                                        GLsizei bufSize,
+                                                        GLsizei *length,
+                                                        GLint *params)
+{
+    getFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
 void Context::getRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
 {
     Renderbuffer *renderbuffer = mGLState.getCurrentRenderbuffer();
     QueryRenderbufferiv(this, renderbuffer, pname, params);
 }
 
+void Context::getRenderbufferParameterivRobust(GLenum target,
+                                               GLenum pname,
+                                               GLsizei bufSize,
+                                               GLsizei *length,
+                                               GLint *params)
+{
+    getRenderbufferParameteriv(target, pname, params);
+}
+
 void Context::getTexParameterfv(TextureType target, GLenum pname, GLfloat *params)
 {
     Texture *texture = getTargetTexture(target);
     QueryTexParameterfv(texture, pname, params);
 }
 
+void Context::getTexParameterfvRobust(TextureType target,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLfloat *params)
+{
+    getTexParameterfv(target, pname, params);
+}
+
 void Context::getTexParameteriv(TextureType target, GLenum pname, GLint *params)
 {
     Texture *texture = getTargetTexture(target);
     QueryTexParameteriv(texture, pname, params);
 }
 
+void Context::getTexParameterivRobust(TextureType target,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLint *params)
+{
+    getTexParameteriv(target, pname, params);
+}
+
 void Context::getTexLevelParameteriv(TextureTarget target, GLint level, GLenum pname, GLint *params)
 {
     Texture *texture = getTargetTexture(TextureTargetToType(target));
@@ -1783,6 +1901,14 @@
     onTextureChange(texture);
 }
 
+void Context::texParameterfvRobust(TextureType target,
+                                   GLenum pname,
+                                   GLsizei bufSize,
+                                   const GLfloat *params)
+{
+    texParameterfv(target, pname, params);
+}
+
 void Context::texParameteri(TextureType target, GLenum pname, GLint param)
 {
     Texture *texture = getTargetTexture(target);
@@ -1797,6 +1923,14 @@
     onTextureChange(texture);
 }
 
+void Context::texParameterivRobust(TextureType target,
+                                   GLenum pname,
+                                   GLsizei bufSize,
+                                   const GLint *params)
+{
+    texParameteriv(target, pname, params);
+}
+
 void Context::drawArrays(GLenum mode, GLint first, GLsizei count)
 {
     // No-op if zero count
@@ -1930,17 +2064,17 @@
     programObject->bindUniformLocation(location, name);
 }
 
-void Context::setCoverageModulation(GLenum components)
+void Context::coverageModulation(GLenum components)
 {
     mGLState.setCoverageModulation(components);
 }
 
-void Context::loadPathRenderingMatrix(GLenum matrixMode, const GLfloat *matrix)
+void Context::matrixLoadf(GLenum matrixMode, const GLfloat *matrix)
 {
     mGLState.loadPathRenderingMatrix(matrixMode, matrix);
 }
 
-void Context::loadPathRenderingIdentityMatrix(GLenum matrixMode)
+void Context::matrixLoadIdentity(GLenum matrixMode)
 {
     GLfloat I[16];
     angle::Matrix<GLfloat>::setToIdentity(I);
@@ -2466,6 +2600,14 @@
     mGLState.setObjectDirty(GL_SAMPLER);
 }
 
+void Context::samplerParameterivRobust(GLuint sampler,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       const GLint *param)
+{
+    samplerParameteriv(sampler, pname, param);
+}
+
 void Context::samplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
 {
     Sampler *samplerObject =
@@ -2482,6 +2624,14 @@
     mGLState.setObjectDirty(GL_SAMPLER);
 }
 
+void Context::samplerParameterfvRobust(GLuint sampler,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       const GLfloat *param)
+{
+    samplerParameterfv(sampler, pname, param);
+}
+
 void Context::getSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)
 {
     const Sampler *samplerObject =
@@ -2490,6 +2640,15 @@
     mGLState.setObjectDirty(GL_SAMPLER);
 }
 
+void Context::getSamplerParameterivRobust(GLuint sampler,
+                                          GLenum pname,
+                                          GLsizei bufSize,
+                                          GLsizei *length,
+                                          GLint *params)
+{
+    getSamplerParameteriv(sampler, pname, params);
+}
+
 void Context::getSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params)
 {
     const Sampler *samplerObject =
@@ -2498,6 +2657,15 @@
     mGLState.setObjectDirty(GL_SAMPLER);
 }
 
+void Context::getSamplerParameterfvRobust(GLuint sampler,
+                                          GLenum pname,
+                                          GLsizei bufSize,
+                                          GLsizei *length,
+                                          GLfloat *params)
+{
+    getSamplerParameterfv(sampler, pname, params);
+}
+
 void Context::programParameteri(GLuint program, GLenum pname, GLint value)
 {
     gl::Program *programObject = getProgram(program);
@@ -3088,6 +3256,36 @@
     handleError(readFBO->readPixels(this, area, format, type, pixels));
 }
 
+void Context::readPixelsRobust(GLint x,
+                               GLint y,
+                               GLsizei width,
+                               GLsizei height,
+                               GLenum format,
+                               GLenum type,
+                               GLsizei bufSize,
+                               GLsizei *length,
+                               GLsizei *columns,
+                               GLsizei *rows,
+                               void *pixels)
+{
+    readPixels(x, y, width, height, format, type, pixels);
+}
+
+void Context::readnPixelsRobust(GLint x,
+                                GLint y,
+                                GLsizei width,
+                                GLsizei height,
+                                GLenum format,
+                                GLenum type,
+                                GLsizei bufSize,
+                                GLsizei *length,
+                                GLsizei *columns,
+                                GLsizei *rows,
+                                void *data)
+{
+    readPixels(x, y, width, height, format, type, data);
+}
+
 void Context::copyTexImage2D(TextureTarget target,
                              GLint level,
                              GLenum internalformat,
@@ -3261,12 +3459,12 @@
     mGLState.setObjectDirty(target);
 }
 
-void Context::framebufferTextureMultiviewLayeredANGLE(GLenum target,
-                                                      GLenum attachment,
-                                                      GLuint texture,
-                                                      GLint level,
-                                                      GLint baseViewIndex,
-                                                      GLsizei numViews)
+void Context::framebufferTextureMultiviewLayered(GLenum target,
+                                                 GLenum attachment,
+                                                 GLuint texture,
+                                                 GLint level,
+                                                 GLint baseViewIndex,
+                                                 GLsizei numViews)
 {
     Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
     ASSERT(framebuffer);
@@ -3287,12 +3485,12 @@
     mGLState.setObjectDirty(target);
 }
 
-void Context::framebufferTextureMultiviewSideBySideANGLE(GLenum target,
-                                                         GLenum attachment,
-                                                         GLuint texture,
-                                                         GLint level,
-                                                         GLsizei numViews,
-                                                         const GLint *viewportOffsets)
+void Context::framebufferTextureMultiviewSideBySide(GLenum target,
+                                                    GLenum attachment,
+                                                    GLuint texture,
+                                                    GLint level,
+                                                    GLsizei numViews,
+                                                    const GLint *viewportOffsets)
 {
     Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
     ASSERT(framebuffer);
@@ -3404,6 +3602,20 @@
                                   size, format, type, reinterpret_cast<const uint8_t *>(pixels)));
 }
 
+void Context::texImage2DRobust(TextureTarget target,
+                               GLint level,
+                               GLint internalformat,
+                               GLsizei width,
+                               GLsizei height,
+                               GLint border,
+                               GLenum format,
+                               GLenum type,
+                               GLsizei bufSize,
+                               const void *pixels)
+{
+    texImage2D(target, level, internalformat, width, height, border, format, type, pixels);
+}
+
 void Context::texImage3D(TextureType target,
                          GLint level,
                          GLint internalformat,
@@ -3424,6 +3636,21 @@
                                   format, type, reinterpret_cast<const uint8_t *>(pixels)));
 }
 
+void Context::texImage3DRobust(TextureType target,
+                               GLint level,
+                               GLint internalformat,
+                               GLsizei width,
+                               GLsizei height,
+                               GLsizei depth,
+                               GLint border,
+                               GLenum format,
+                               GLenum type,
+                               GLsizei bufSize,
+                               const void *pixels)
+{
+    texImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
 void Context::texSubImage2D(TextureTarget target,
                             GLint level,
                             GLint xoffset,
@@ -3448,6 +3675,20 @@
                                      type, reinterpret_cast<const uint8_t *>(pixels)));
 }
 
+void Context::texSubImage2DRobust(TextureTarget target,
+                                  GLint level,
+                                  GLint xoffset,
+                                  GLint yoffset,
+                                  GLsizei width,
+                                  GLsizei height,
+                                  GLenum format,
+                                  GLenum type,
+                                  GLsizei bufSize,
+                                  const void *pixels)
+{
+    texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
+}
+
 void Context::texSubImage3D(TextureType target,
                             GLint level,
                             GLint xoffset,
@@ -3475,6 +3716,23 @@
                                      reinterpret_cast<const uint8_t *>(pixels)));
 }
 
+void Context::texSubImage3DRobust(TextureType target,
+                                  GLint level,
+                                  GLint xoffset,
+                                  GLint yoffset,
+                                  GLint zoffset,
+                                  GLsizei width,
+                                  GLsizei height,
+                                  GLsizei depth,
+                                  GLenum format,
+                                  GLenum type,
+                                  GLsizei bufSize,
+                                  const void *pixels)
+{
+    texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type,
+                  pixels);
+}
+
 void Context::compressedTexImage2D(TextureTarget target,
                                    GLint level,
                                    GLenum internalformat,
@@ -3493,6 +3751,19 @@
                                             reinterpret_cast<const uint8_t *>(data)));
 }
 
+void Context::compressedTexImage2DRobust(TextureTarget target,
+                                         GLint level,
+                                         GLenum internalformat,
+                                         GLsizei width,
+                                         GLsizei height,
+                                         GLint border,
+                                         GLsizei imageSize,
+                                         GLsizei dataSize,
+                                         const GLvoid *data)
+{
+    compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
+}
+
 void Context::compressedTexImage3D(TextureType target,
                                    GLint level,
                                    GLenum internalformat,
@@ -3512,6 +3783,21 @@
         size, imageSize, reinterpret_cast<const uint8_t *>(data)));
 }
 
+void Context::compressedTexImage3DRobust(TextureType target,
+                                         GLint level,
+                                         GLenum internalformat,
+                                         GLsizei width,
+                                         GLsizei height,
+                                         GLsizei depth,
+                                         GLint border,
+                                         GLsizei imageSize,
+                                         GLsizei dataSize,
+                                         const GLvoid *data)
+{
+    compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize,
+                         data);
+}
+
 void Context::compressedTexSubImage2D(TextureTarget target,
                                       GLint level,
                                       GLint xoffset,
@@ -3531,6 +3817,21 @@
                                                reinterpret_cast<const uint8_t *>(data)));
 }
 
+void Context::compressedTexSubImage2DRobust(TextureTarget target,
+                                            GLint level,
+                                            GLint xoffset,
+                                            GLint yoffset,
+                                            GLsizei width,
+                                            GLsizei height,
+                                            GLenum format,
+                                            GLsizei imageSize,
+                                            GLsizei dataSize,
+                                            const GLvoid *data)
+{
+    compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize,
+                            data);
+}
+
 void Context::compressedTexSubImage3D(TextureType target,
                                       GLint level,
                                       GLint xoffset,
@@ -3558,6 +3859,23 @@
         imageSize, reinterpret_cast<const uint8_t *>(data)));
 }
 
+void Context::compressedTexSubImage3DRobust(TextureType target,
+                                            GLint level,
+                                            GLint xoffset,
+                                            GLint yoffset,
+                                            GLint zoffset,
+                                            GLsizei width,
+                                            GLsizei height,
+                                            GLsizei depth,
+                                            GLenum format,
+                                            GLsizei imageSize,
+                                            GLsizei dataSize,
+                                            const GLvoid *data)
+{
+    compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format,
+                            imageSize, data);
+}
+
 void Context::generateMipmap(TextureType target)
 {
     Texture *texture = getTargetTexture(target);
@@ -3635,6 +3953,15 @@
     QueryBufferPointerv(buffer, pname, params);
 }
 
+void Context::getBufferPointervRobust(BufferBinding target,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      void **params)
+{
+    getBufferPointerv(target, pname, params);
+}
+
 void *Context::mapBuffer(BufferBinding target, GLenum access)
 {
     Buffer *buffer = mGLState.getTargetBuffer(target);
@@ -4083,6 +4410,15 @@
                         currentValues, pname, params);
 }
 
+void Context::getVertexAttribivRobust(GLuint index,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLint *params)
+{
+    getVertexAttribiv(index, pname, params);
+}
+
 void Context::getVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
 {
     const VertexAttribCurrentValueData &currentValues =
@@ -4092,6 +4428,15 @@
                         currentValues, pname, params);
 }
 
+void Context::getVertexAttribfvRobust(GLuint index,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLfloat *params)
+{
+    getVertexAttribfv(index, pname, params);
+}
+
 void Context::getVertexAttribIiv(GLuint index, GLenum pname, GLint *params)
 {
     const VertexAttribCurrentValueData &currentValues =
@@ -4101,6 +4446,15 @@
                          currentValues, pname, params);
 }
 
+void Context::getVertexAttribIivRobust(GLuint index,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       GLsizei *length,
+                                       GLint *params)
+{
+    getVertexAttribIiv(index, pname, params);
+}
+
 void Context::getVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params)
 {
     const VertexAttribCurrentValueData &currentValues =
@@ -4110,12 +4464,30 @@
                           currentValues, pname, params);
 }
 
+void Context::getVertexAttribIuivRobust(GLuint index,
+                                        GLenum pname,
+                                        GLsizei bufSize,
+                                        GLsizei *length,
+                                        GLuint *params)
+{
+    getVertexAttribIuiv(index, pname, params);
+}
+
 void Context::getVertexAttribPointerv(GLuint index, GLenum pname, void **pointer)
 {
     const VertexAttribute &attrib = getGLState().getVertexArray()->getVertexAttribute(index);
     QueryVertexAttribPointerv(attrib, pname, pointer);
 }
 
+void Context::getVertexAttribPointervRobust(GLuint index,
+                                            GLenum pname,
+                                            GLsizei bufSize,
+                                            GLsizei *length,
+                                            void **pointer)
+{
+    getVertexAttribPointerv(index, pname, pointer);
+}
+
 void Context::debugMessageControl(GLenum source,
                                   GLenum type,
                                   GLenum severity,
@@ -4592,6 +4964,11 @@
     }
 }
 
+void Context::getBooleanvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *params)
+{
+    getBooleanv(pname, params);
+}
+
 void Context::getFloatv(GLenum pname, GLfloat *params)
 {
     GLenum nativeType;
@@ -4608,6 +4985,11 @@
     }
 }
 
+void Context::getFloatvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params)
+{
+    getFloatv(pname, params);
+}
+
 void Context::getIntegerv(GLenum pname, GLint *params)
 {
     GLenum nativeType;
@@ -4624,6 +5006,11 @@
     }
 }
 
+void Context::getIntegervRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data)
+{
+    getIntegerv(pname, data);
+}
+
 void Context::getProgramiv(GLuint program, GLenum pname, GLint *params)
 {
     Program *programObject = getProgram(program);
@@ -4631,6 +5018,15 @@
     QueryProgramiv(this, programObject, pname, params);
 }
 
+void Context::getProgramivRobust(GLuint program,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLint *params)
+{
+    getProgramiv(program, pname, params);
+}
+
 void Context::getProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
 {
     UNIMPLEMENTED();
@@ -4658,6 +5054,15 @@
     QueryShaderiv(this, shaderObject, pname, params);
 }
 
+void Context::getShaderivRobust(GLuint shader,
+                                GLenum pname,
+                                GLsizei bufSize,
+                                GLsizei *length,
+                                GLint *params)
+{
+    getShaderiv(shader, pname, params);
+}
+
 void Context::getShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog)
 {
     Shader *shaderObject = getShader(shader);
@@ -4752,6 +5157,15 @@
     programObject->getUniformfv(this, location, params);
 }
 
+void Context::getUniformfvRobust(GLuint program,
+                                 GLint location,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLfloat *params)
+{
+    getUniformfv(program, location, params);
+}
+
 void Context::getUniformiv(GLuint program, GLint location, GLint *params)
 {
     Program *programObject = getProgram(program);
@@ -4759,6 +5173,15 @@
     programObject->getUniformiv(this, location, params);
 }
 
+void Context::getUniformivRobust(GLuint program,
+                                 GLint location,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLint *params)
+{
+    getUniformiv(program, location, params);
+}
+
 GLint Context::getUniformLocation(GLuint program, const GLchar *name)
 {
     Program *programObject = getProgram(program);
@@ -5321,6 +5744,15 @@
     programObject->getUniformuiv(this, location, params);
 }
 
+void Context::getUniformuivRobust(GLuint program,
+                                  GLint location,
+                                  GLsizei bufSize,
+                                  GLsizei *length,
+                                  GLuint *params)
+{
+    getUniformuiv(program, location, params);
+}
+
 GLint Context::getFragDataLocation(GLuint program, const GLchar *name)
 {
     const Program *programObject = getProgram(program);
@@ -5378,6 +5810,16 @@
     QueryActiveUniformBlockiv(programObject, uniformBlockIndex, pname, params);
 }
 
+void Context::getActiveUniformBlockivRobust(GLuint program,
+                                            GLuint uniformBlockIndex,
+                                            GLenum pname,
+                                            GLsizei bufSize,
+                                            GLsizei *length,
+                                            GLint *params)
+{
+    getActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
 void Context::getActiveUniformBlockName(GLuint program,
                                         GLuint uniformBlockIndex,
                                         GLsizei bufSize,
@@ -5449,12 +5891,26 @@
     }
 }
 
+void Context::getInteger64vRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data)
+{
+    getInteger64v(pname, data);
+}
+
 void Context::getBufferParameteri64v(BufferBinding target, GLenum pname, GLint64 *params)
 {
     Buffer *buffer = mGLState.getTargetBuffer(target);
     QueryBufferParameteri64v(buffer, pname, params);
 }
 
+void Context::getBufferParameteri64vRobust(BufferBinding target,
+                                           GLenum pname,
+                                           GLsizei bufSize,
+                                           GLsizei *length,
+                                           GLint64 *params)
+{
+    getBufferParameteri64v(target, pname, params);
+}
+
 void Context::genSamplers(GLsizei count, GLuint *samplers)
 {
     for (int i = 0; i < count; i++)
@@ -5488,6 +5944,16 @@
     QueryInternalFormativ(formatCaps, pname, bufSize, params);
 }
 
+void Context::getInternalformativRobust(GLenum target,
+                                        GLenum internalformat,
+                                        GLenum pname,
+                                        GLsizei bufSize,
+                                        GLsizei *length,
+                                        GLint *params)
+{
+    getInternalformativ(target, internalformat, pname, bufSize, params);
+}
+
 void Context::programUniform1i(GLuint program, GLint location, GLint v0)
 {
     programUniform1iv(program, location, 1, &v0);
diff --git a/src/libANGLE/Context.h b/src/libANGLE/Context.h
index 97799ba..2129ad2 100644
--- a/src/libANGLE/Context.h
+++ b/src/libANGLE/Context.h
@@ -86,7 +86,7 @@
     GLuint createProgram();
     GLuint createTexture();
     GLuint createRenderbuffer();
-    GLuint createPaths(GLsizei range);
+    GLuint genPaths(GLsizei range);
     GLuint createProgramPipeline();
     GLuint createShaderProgramv(ShaderType type, GLsizei count, const GLchar *const *strings);
 
@@ -99,19 +99,19 @@
     void deleteProgramPipeline(GLuint pipeline);
 
     // CHROMIUM_path_rendering
-    bool hasPathData(GLuint path) const;
-    bool hasPath(GLuint path) const;
-    void setPathCommands(GLuint path,
-                         GLsizei numCommands,
-                         const GLubyte *commands,
-                         GLsizei numCoords,
-                         GLenum coordType,
-                         const void *coords);
+    bool isPath(GLuint path) const;
+    bool isPathGenerated(GLuint path) const;
+    void pathCommands(GLuint path,
+                      GLsizei numCommands,
+                      const GLubyte *commands,
+                      GLsizei numCoords,
+                      GLenum coordType,
+                      const void *coords);
     void pathParameterf(GLuint path, GLenum pname, GLfloat value);
     void pathParameteri(GLuint path, GLenum pname, GLint value);
     void getPathParameterfv(GLuint path, GLenum pname, GLfloat *value);
     void getPathParameteriv(GLuint path, GLenum pname, GLint *value);
-    void setPathStencilFunc(GLenum func, GLint ref, GLuint mask);
+    void pathStencilFunc(GLenum func, GLint ref, GLuint mask);
 
     // Framebuffers are owned by the Context, so these methods do not pass through
     GLuint createFramebuffer();
@@ -155,37 +155,116 @@
     void endQuery(GLenum target);
     void queryCounter(GLuint id, GLenum target);
     void getQueryiv(GLenum target, GLenum pname, GLint *params);
+    void getQueryivRobust(GLenum target,
+                          GLenum pname,
+                          GLsizei bufSize,
+                          GLsizei *length,
+                          GLint *params);
+
     void getQueryObjectiv(GLuint id, GLenum pname, GLint *params);
+    void getQueryObjectivRobust(GLuint id,
+                                GLenum pname,
+                                GLsizei bufSize,
+                                GLsizei *length,
+                                GLint *params);
     void getQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
+    void getQueryObjectuivRobust(GLuint id,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLuint *params);
     void getQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
+    void getQueryObjecti64vRobust(GLuint id,
+                                  GLenum pname,
+                                  GLsizei bufSize,
+                                  GLsizei *length,
+                                  GLint64 *params);
     void getQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
+    void getQueryObjectui64vRobust(GLuint id,
+                                   GLenum pname,
+                                   GLsizei bufSize,
+                                   GLsizei *length,
+                                   GLuint64 *params);
 
     void vertexAttribDivisor(GLuint index, GLuint divisor);
     void vertexBindingDivisor(GLuint bindingIndex, GLuint divisor);
 
     void getBufferParameteriv(BufferBinding target, GLenum pname, GLint *params);
+    void getBufferParameterivRobust(BufferBinding target,
+                                    GLenum pname,
+                                    GLsizei bufSize,
+                                    GLsizei *length,
+                                    GLint *params);
+
     void getFramebufferAttachmentParameteriv(GLenum target,
                                              GLenum attachment,
                                              GLenum pname,
                                              GLint *params);
+    void getFramebufferAttachmentParameterivRobust(GLenum target,
+                                                   GLenum attachment,
+                                                   GLenum pname,
+                                                   GLsizei bufSize,
+                                                   GLsizei *length,
+                                                   GLint *params);
     void getRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
+    void getRenderbufferParameterivRobust(GLenum target,
+                                          GLenum pname,
+                                          GLsizei bufSize,
+                                          GLsizei *length,
+                                          GLint *params);
 
     void getTexParameterfv(TextureType target, GLenum pname, GLfloat *params);
+    void getTexParameterfvRobust(TextureType target,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLfloat *params);
     void getTexParameteriv(TextureType target, GLenum pname, GLint *params);
+    void getTexParameterivRobust(TextureType target,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLint *params);
+
     void getTexLevelParameteriv(TextureTarget target, GLint level, GLenum pname, GLint *params);
     void getTexLevelParameterfv(TextureTarget target, GLint level, GLenum pname, GLfloat *params);
     void texParameterf(TextureType target, GLenum pname, GLfloat param);
     void texParameterfv(TextureType target, GLenum pname, const GLfloat *params);
+    void texParameterfvRobust(TextureType target,
+                              GLenum pname,
+                              GLsizei bufSize,
+                              const GLfloat *params);
     void texParameteri(TextureType target, GLenum pname, GLint param);
     void texParameteriv(TextureType target, GLenum pname, const GLint *params);
-
+    void texParameterivRobust(TextureType target,
+                              GLenum pname,
+                              GLsizei bufSize,
+                              const GLint *params);
     void samplerParameteri(GLuint sampler, GLenum pname, GLint param);
     void samplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
+    void samplerParameterivRobust(GLuint sampler,
+                                  GLenum pname,
+                                  GLsizei bufSize,
+                                  const GLint *param);
     void samplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
     void samplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
+    void samplerParameterfvRobust(GLuint sampler,
+                                  GLenum pname,
+                                  GLsizei bufSize,
+                                  const GLfloat *param);
 
     void getSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
+    void getSamplerParameterivRobust(GLuint sampler,
+                                     GLenum pname,
+                                     GLsizei bufSize,
+                                     GLsizei *length,
+                                     GLint *params);
     void getSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
+    void getSamplerParameterfvRobust(GLuint sampler,
+                                     GLenum pname,
+                                     GLsizei bufSize,
+                                     GLsizei *length,
+                                     GLfloat *params);
 
     void programParameteri(GLuint program, GLenum pname, GLint value);
 
@@ -244,16 +323,34 @@
     bool isTransformFeedbackGenerated(GLuint vertexArray);
 
     void getBooleanv(GLenum pname, GLboolean *params);
+    void getBooleanvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *params);
     void getBooleanvImpl(GLenum pname, GLboolean *params);
     void getFloatv(GLenum pname, GLfloat *params);
+    void getFloatvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
     void getFloatvImpl(GLenum pname, GLfloat *params);
     void getIntegerv(GLenum pname, GLint *params);
+    void getIntegervRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data);
     void getIntegervImpl(GLenum pname, GLint *params);
     void getInteger64vImpl(GLenum pname, GLint64 *params);
     void getPointerv(GLenum pname, void **params) const;
     void getBooleani_v(GLenum target, GLuint index, GLboolean *data);
+    void getBooleani_vRobust(GLenum target,
+                             GLuint index,
+                             GLsizei bufSize,
+                             GLsizei *length,
+                             GLboolean *data);
     void getIntegeri_v(GLenum target, GLuint index, GLint *data);
+    void getIntegeri_vRobust(GLenum target,
+                             GLuint index,
+                             GLsizei bufSize,
+                             GLsizei *length,
+                             GLint *data);
     void getInteger64i_v(GLenum target, GLuint index, GLint64 *data);
+    void getInteger64i_vRobust(GLenum target,
+                               GLuint index,
+                               GLsizei bufSize,
+                               GLsizei *length,
+                               GLint64 *data);
 
     void activeShaderProgram(GLuint pipeline, GLuint program);
     void activeTexture(GLenum texture);
@@ -318,10 +415,35 @@
     void vertexAttribI4iv(GLuint index, const GLint *v);
     void vertexAttribI4uiv(GLuint index, const GLuint *v);
     void getVertexAttribiv(GLuint index, GLenum pname, GLint *params);
+    void getVertexAttribivRobust(GLuint index,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLint *params);
     void getVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
+    void getVertexAttribfvRobust(GLuint index,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 GLfloat *params);
     void getVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
+    void getVertexAttribIivRobust(GLuint index,
+                                  GLenum pname,
+                                  GLsizei bufSize,
+                                  GLsizei *length,
+                                  GLint *params);
     void getVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
+    void getVertexAttribIuivRobust(GLuint index,
+                                   GLenum pname,
+                                   GLsizei bufSize,
+                                   GLsizei *length,
+                                   GLuint *params);
     void getVertexAttribPointerv(GLuint index, GLenum pname, void **pointer);
+    void getVertexAttribPointervRobust(GLuint index,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       GLsizei *length,
+                                       void **pointer);
 
     void debugMessageControl(GLenum source,
                              GLenum type,
@@ -389,6 +511,28 @@
                     GLenum format,
                     GLenum type,
                     void *pixels);
+    void readPixelsRobust(GLint x,
+                          GLint y,
+                          GLsizei width,
+                          GLsizei height,
+                          GLenum format,
+                          GLenum type,
+                          GLsizei bufSize,
+                          GLsizei *length,
+                          GLsizei *columns,
+                          GLsizei *rows,
+                          void *pixels);
+    void readnPixelsRobust(GLint x,
+                           GLint y,
+                           GLsizei width,
+                           GLsizei height,
+                           GLenum format,
+                           GLenum type,
+                           GLsizei bufSize,
+                           GLsizei *length,
+                           GLsizei *columns,
+                           GLsizei *rows,
+                           void *data);
 
     void copyTexImage2D(TextureTarget target,
                         GLint level,
@@ -434,18 +578,18 @@
                                  GLuint texture,
                                  GLint level,
                                  GLint layer);
-    void framebufferTextureMultiviewLayeredANGLE(GLenum target,
-                                                 GLenum attachment,
-                                                 GLuint texture,
-                                                 GLint level,
-                                                 GLint baseViewIndex,
-                                                 GLsizei numViews);
-    void framebufferTextureMultiviewSideBySideANGLE(GLenum target,
-                                                    GLenum attachment,
-                                                    GLuint texture,
-                                                    GLint level,
-                                                    GLsizei numViews,
-                                                    const GLint *viewportOffsets);
+    void framebufferTextureMultiviewLayered(GLenum target,
+                                            GLenum attachment,
+                                            GLuint texture,
+                                            GLint level,
+                                            GLint baseViewIndex,
+                                            GLsizei numViews);
+    void framebufferTextureMultiviewSideBySide(GLenum target,
+                                               GLenum attachment,
+                                               GLuint texture,
+                                               GLint level,
+                                               GLsizei numViews,
+                                               const GLint *viewportOffsets);
 
     void drawBuffers(GLsizei n, const GLenum *bufs);
     void readBuffer(GLenum mode);
@@ -469,6 +613,16 @@
                     GLenum format,
                     GLenum type,
                     const void *pixels);
+    void texImage2DRobust(TextureTarget target,
+                          GLint level,
+                          GLint internalformat,
+                          GLsizei width,
+                          GLsizei height,
+                          GLint border,
+                          GLenum format,
+                          GLenum type,
+                          GLsizei bufSize,
+                          const void *pixels);
     void texImage3D(TextureType target,
                     GLint level,
                     GLint internalformat,
@@ -479,6 +633,17 @@
                     GLenum format,
                     GLenum type,
                     const void *pixels);
+    void texImage3DRobust(TextureType target,
+                          GLint level,
+                          GLint internalformat,
+                          GLsizei width,
+                          GLsizei height,
+                          GLsizei depth,
+                          GLint border,
+                          GLenum format,
+                          GLenum type,
+                          GLsizei bufSize,
+                          const void *pixels);
     void texSubImage2D(TextureTarget target,
                        GLint level,
                        GLint xoffset,
@@ -488,6 +653,16 @@
                        GLenum format,
                        GLenum type,
                        const void *pixels);
+    void texSubImage2DRobust(TextureTarget target,
+                             GLint level,
+                             GLint xoffset,
+                             GLint yoffset,
+                             GLsizei width,
+                             GLsizei height,
+                             GLenum format,
+                             GLenum type,
+                             GLsizei bufSize,
+                             const void *pixels);
     void texSubImage3D(TextureType target,
                        GLint level,
                        GLint xoffset,
@@ -499,6 +674,18 @@
                        GLenum format,
                        GLenum type,
                        const void *pixels);
+    void texSubImage3DRobust(TextureType target,
+                             GLint level,
+                             GLint xoffset,
+                             GLint yoffset,
+                             GLint zoffset,
+                             GLsizei width,
+                             GLsizei height,
+                             GLsizei depth,
+                             GLenum format,
+                             GLenum type,
+                             GLsizei bufSize,
+                             const void *pixels);
     void compressedTexImage2D(TextureTarget target,
                               GLint level,
                               GLenum internalformat,
@@ -507,6 +694,15 @@
                               GLint border,
                               GLsizei imageSize,
                               const void *data);
+    void compressedTexImage2DRobust(TextureTarget target,
+                                    GLint level,
+                                    GLenum internalformat,
+                                    GLsizei width,
+                                    GLsizei height,
+                                    GLint border,
+                                    GLsizei imageSize,
+                                    GLsizei dataSize,
+                                    const GLvoid *data);
     void compressedTexImage3D(TextureType target,
                               GLint level,
                               GLenum internalformat,
@@ -516,6 +712,16 @@
                               GLint border,
                               GLsizei imageSize,
                               const void *data);
+    void compressedTexImage3DRobust(TextureType target,
+                                    GLint level,
+                                    GLenum internalformat,
+                                    GLsizei width,
+                                    GLsizei height,
+                                    GLsizei depth,
+                                    GLint border,
+                                    GLsizei imageSize,
+                                    GLsizei dataSize,
+                                    const GLvoid *data);
     void compressedTexSubImage2D(TextureTarget target,
                                  GLint level,
                                  GLint xoffset,
@@ -525,6 +731,16 @@
                                  GLenum format,
                                  GLsizei imageSize,
                                  const void *data);
+    void compressedTexSubImage2DRobust(TextureTarget target,
+                                       GLint level,
+                                       GLint xoffset,
+                                       GLint yoffset,
+                                       GLsizei width,
+                                       GLsizei height,
+                                       GLenum format,
+                                       GLsizei imageSize,
+                                       GLsizei dataSize,
+                                       const GLvoid *data);
     void compressedTexSubImage3D(TextureType target,
                                  GLint level,
                                  GLint xoffset,
@@ -536,6 +752,18 @@
                                  GLenum format,
                                  GLsizei imageSize,
                                  const void *data);
+    void compressedTexSubImage3DRobust(TextureType target,
+                                       GLint level,
+                                       GLint xoffset,
+                                       GLint yoffset,
+                                       GLint zoffset,
+                                       GLsizei width,
+                                       GLsizei height,
+                                       GLsizei depth,
+                                       GLenum format,
+                                       GLsizei imageSize,
+                                       GLsizei dataSize,
+                                       const GLvoid *data);
     void copyTexture(GLuint sourceId,
                      GLint sourceLevel,
                      TextureTarget destTarget,
@@ -568,6 +796,11 @@
     void finish();
 
     void getBufferPointerv(BufferBinding target, GLenum pname, void **params);
+    void getBufferPointervRobust(BufferBinding target,
+                                 GLenum pname,
+                                 GLsizei bufSize,
+                                 GLsizei *length,
+                                 void **params);
     void *mapBuffer(BufferBinding target, GLenum access);
     GLboolean unmapBuffer(BufferBinding target);
     void *mapBufferRange(BufferBinding target,
@@ -595,11 +828,11 @@
     void getSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 
     // CHROMIUM_framebuffer_mixed_samples
-    void setCoverageModulation(GLenum components);
+    void coverageModulation(GLenum components);
 
     // CHROMIUM_path_rendering
-    void loadPathRenderingMatrix(GLenum matrixMode, const GLfloat *matrix);
-    void loadPathRenderingIdentityMatrix(GLenum matrixMode);
+    void matrixLoadf(GLenum matrixMode, const GLfloat *matrix);
+    void matrixLoadIdentity(GLenum matrixMode);
     void stencilFillPath(GLuint path, GLenum fillMode, GLuint mask);
     void stencilStrokePath(GLuint path, GLint reference, GLuint mask);
     void coverFillPath(GLuint path, GLenum coverMode);
@@ -718,6 +951,11 @@
     void getAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders);
     GLint getAttribLocation(GLuint program, const GLchar *name);
     void getProgramiv(GLuint program, GLenum pname, GLint *params);
+    void getProgramivRobust(GLuint program,
+                            GLenum pname,
+                            GLsizei bufSize,
+                            GLsizei *length,
+                            GLint *params);
     void getProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
     void getProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog);
     void getProgramPipelineInfoLog(GLuint pipeline,
@@ -725,6 +963,12 @@
                                    GLsizei *length,
                                    GLchar *infoLog);
     void getShaderiv(GLuint shader, GLenum pname, GLint *params);
+    void getShaderivRobust(GLuint shader,
+                           GLenum pname,
+                           GLsizei bufSize,
+                           GLsizei *length,
+                           GLint *params);
+
     void getShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog);
     void getShaderPrecisionFormat(GLenum shadertype,
                                   GLenum precisiontype,
@@ -732,7 +976,17 @@
                                   GLint *precision);
     void getShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
     void getUniformfv(GLuint program, GLint location, GLfloat *params);
+    void getUniformfvRobust(GLuint program,
+                            GLint location,
+                            GLsizei bufSize,
+                            GLsizei *length,
+                            GLfloat *params);
     void getUniformiv(GLuint program, GLint location, GLint *params);
+    void getUniformivRobust(GLuint program,
+                            GLint location,
+                            GLsizei bufSize,
+                            GLsizei *length,
+                            GLint *params);
     GLint getUniformLocation(GLuint program, const GLchar *name);
     GLboolean isBuffer(GLuint buffer);
     GLboolean isEnabled(GLenum cap);
@@ -846,6 +1100,11 @@
     void programBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
 
     void getUniformuiv(GLuint program, GLint location, GLuint *params);
+    void getUniformuivRobust(GLuint program,
+                             GLint location,
+                             GLsizei bufSize,
+                             GLsizei *length,
+                             GLuint *params);
     GLint getFragDataLocation(GLuint program, const GLchar *name);
     void getUniformIndices(GLuint program,
                            GLsizei uniformCount,
@@ -861,6 +1120,12 @@
                                  GLuint uniformBlockIndex,
                                  GLenum pname,
                                  GLint *params);
+    void getActiveUniformBlockivRobust(GLuint program,
+                                       GLuint uniformBlockIndex,
+                                       GLenum pname,
+                                       GLsizei bufSize,
+                                       GLsizei *length,
+                                       GLint *params);
     void getActiveUniformBlockName(GLuint program,
                                    GLuint uniformBlockIndex,
                                    GLsizei bufSize,
@@ -874,8 +1139,14 @@
     GLenum clientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
     void waitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
     void getInteger64v(GLenum pname, GLint64 *params);
+    void getInteger64vRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data);
 
     void getBufferParameteri64v(BufferBinding target, GLenum pname, GLint64 *params);
+    void getBufferParameteri64vRobust(BufferBinding target,
+                                      GLenum pname,
+                                      GLsizei bufSize,
+                                      GLsizei *length,
+                                      GLint64 *params);
     void genSamplers(GLsizei count, GLuint *samplers);
     void deleteSamplers(GLsizei count, const GLuint *samplers);
     void getInternalformativ(GLenum target,
@@ -883,6 +1154,12 @@
                              GLenum pname,
                              GLsizei bufSize,
                              GLint *params);
+    void getInternalformativRobust(GLenum target,
+                                   GLenum internalformat,
+                                   GLenum pname,
+                                   GLsizei bufSize,
+                                   GLsizei *length,
+                                   GLint *params);
 
     void programUniform1i(GLuint program, GLint location, GLint v0);
     void programUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index b31ffc9..8260719 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -75,7 +75,7 @@
     for (GLsizei i = 0; i < numPaths; ++i)
     {
         const GLuint pathName = array[i] + pathBase;
-        if (context->hasPath(pathName) && !context->hasPathData(pathName))
+        if (context->isPathGenerated(pathName) && !context->isPath(pathName))
         {
             ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
             return false;
@@ -3181,7 +3181,7 @@
         context->handleError(InvalidOperation() << "GL_CHROMIUM_path_rendering is not available.");
         return false;
     }
-    if (!context->hasPath(path))
+    if (!context->isPathGenerated(path))
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
         return false;
@@ -3296,7 +3296,7 @@
         context->handleError(InvalidOperation() << "GL_CHROMIUM_path_rendering is not available.");
         return false;
     }
-    if (!context->hasPath(path))
+    if (!context->isPathGenerated(path))
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
         return false;
@@ -3368,7 +3368,7 @@
         return false;
     }
 
-    if (!context->hasPath(path))
+    if (!context->isPathGenerated(path))
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
         return false;
@@ -3442,7 +3442,7 @@
         context->handleError(InvalidOperation() << "GL_CHROMIUM_path_rendering is not available.");
         return false;
     }
-    if (context->hasPath(path) && !context->hasPathData(path))
+    if (context->isPathGenerated(path) && !context->isPath(path))
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
         return false;
@@ -3474,7 +3474,7 @@
         context->handleError(InvalidOperation() << "GL_CHROMIUM_path_rendering is not available.");
         return false;
     }
-    if (context->hasPath(path) && !context->hasPathData(path))
+    if (context->isPathGenerated(path) && !context->isPath(path))
     {
         context->handleError(InvalidOperation() << "No such path or path has no data.");
         return false;
@@ -3500,7 +3500,7 @@
         context->handleError(InvalidOperation() << "GL_CHROMIUM_path_rendering is not available.");
         return false;
     }
-    if (context->hasPath(path) && !context->hasPathData(path))
+    if (context->isPathGenerated(path) && !context->isPath(path))
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoSuchPath);
         return false;
diff --git a/src/libGLESv2/entry_points_gles_2_0_ext.cpp b/src/libGLESv2/entry_points_gles_2_0_ext.cpp
index d67d41d..42ed4a7 100644
--- a/src/libGLESv2/entry_points_gles_2_0_ext.cpp
+++ b/src/libGLESv2/entry_points_gles_2_0_ext.cpp
@@ -64,7 +64,7 @@
         {
             return;
         }
-        context->setCoverageModulation(components);
+        context->coverageModulation(components);
     }
 }
 
@@ -80,7 +80,7 @@
         {
             return;
         }
-        context->loadPathRenderingMatrix(matrixMode, matrix);
+        context->matrixLoadf(matrixMode, matrix);
     }
 }
 
@@ -95,7 +95,7 @@
         {
             return;
         }
-        context->loadPathRenderingIdentityMatrix(matrixMode);
+        context->matrixLoadIdentity(matrixMode);
     }
 }
 
@@ -110,7 +110,7 @@
         {
             return 0;
         }
-        return context->createPaths(range);
+        return context->genPaths(range);
     }
     return 0;
 }
@@ -141,7 +141,7 @@
         {
             return GL_FALSE;
         }
-        return context->hasPathData(path);
+        return context->isPath(path);
     }
     return GL_FALSE;
 }
@@ -167,7 +167,7 @@
         {
             return;
         }
-        context->setPathCommands(path, numCommands, commands, numCoords, coordType, coords);
+        context->pathCommands(path, numCommands, commands, numCoords, coordType, coords);
     }
 }
 
@@ -249,7 +249,7 @@
         {
             return;
         }
-        context->setPathStencilFunc(func, ref, mask);
+        context->pathStencilFunc(func, ref, mask);
     }
 }
 
@@ -711,7 +711,7 @@
             return;
         }
 
-        context->getBooleanv(pname, params);
+        context->getBooleanvRobust(pname, bufSize, length, params);
     }
 }
 
@@ -735,8 +735,7 @@
             return;
         }
 
-        Buffer *buffer = context->getGLState().getTargetBuffer(targetPacked);
-        QueryBufferParameteriv(buffer, pname, params);
+        context->getBufferParameterivRobust(targetPacked, pname, bufSize, length, params);
     }
 }
 
@@ -758,7 +757,7 @@
             return;
         }
 
-        context->getFloatv(pname, params);
+        context->getFloatvRobust(pname, bufSize, length, params);
     }
 }
 
@@ -783,8 +782,8 @@
             return;
         }
 
-        const Framebuffer *framebuffer = context->getGLState().getTargetFramebuffer(target);
-        QueryFramebufferAttachmentParameteriv(context, framebuffer, attachment, pname, params);
+        context->getFramebufferAttachmentParameterivRobust(target, attachment, pname, bufSize,
+                                                           length, params);
     }
 }
 
@@ -806,7 +805,7 @@
             return;
         }
 
-        context->getIntegerv(pname, data);
+        context->getIntegervRobust(pname, bufSize, length, data);
     }
 }
 
@@ -829,8 +828,7 @@
             return;
         }
 
-        Program *programObject = context->getProgram(program);
-        QueryProgramiv(context, programObject, pname, params);
+        context->getProgramivRobust(program, pname, bufSize, length, params);
     }
 }
 
@@ -854,8 +852,7 @@
             return;
         }
 
-        Renderbuffer *renderbuffer = context->getGLState().getCurrentRenderbuffer();
-        QueryRenderbufferiv(context, renderbuffer, pname, params);
+        context->getRenderbufferParameterivRobust(target, pname, bufSize, length, params);
     }
 }
 
@@ -875,8 +872,7 @@
             return;
         }
 
-        Shader *shaderObject = context->getShader(shader);
-        QueryShaderiv(context, shaderObject, pname, params);
+        context->getShaderivRobust(shader, pname, bufSize, length, params);
     }
 }
 
@@ -901,8 +897,7 @@
             return;
         }
 
-        Texture *texture = context->getTargetTexture(targetPacked);
-        QueryTexParameterfv(texture, pname, params);
+        context->getTexParameterfvRobust(targetPacked, pname, bufSize, length, params);
     }
 }
 
@@ -927,8 +922,7 @@
             return;
         }
 
-        Texture *texture = context->getTargetTexture(targetPacked);
-        QueryTexParameteriv(texture, pname, params);
+        context->getTexParameterivRobust(targetPacked, pname, bufSize, length, params);
     }
 }
 
@@ -951,10 +945,7 @@
             return;
         }
 
-        Program *programObject = context->getProgram(program);
-        ASSERT(programObject);
-
-        programObject->getUniformfv(context, location, params);
+        context->getUniformfvRobust(program, location, bufSize, length, params);
     }
 }
 
@@ -977,10 +968,7 @@
             return;
         }
 
-        Program *programObject = context->getProgram(program);
-        ASSERT(programObject);
-
-        programObject->getUniformiv(context, location, params);
+        context->getUniformivRobust(program, location, bufSize, length, params);
     }
 }
 
@@ -1003,7 +991,7 @@
             return;
         }
 
-        context->getVertexAttribfv(index, pname, params);
+        context->getVertexAttribfvRobust(index, pname, bufSize, length, params);
     }
 }
 
@@ -1026,7 +1014,7 @@
             return;
         }
 
-        context->getVertexAttribiv(index, pname, params);
+        context->getVertexAttribivRobust(index, pname, bufSize, length, params);
     }
 }
 
@@ -1050,7 +1038,7 @@
             return;
         }
 
-        context->getVertexAttribPointerv(index, pname, pointer);
+        context->getVertexAttribPointervRobust(index, pname, bufSize, length, pointer);
     }
 }
 
@@ -1081,7 +1069,8 @@
             return;
         }
 
-        context->readPixels(x, y, width, height, format, type, pixels);
+        context->readPixelsRobust(x, y, width, height, format, type, bufSize, length, columns, rows,
+                                  pixels);
     }
 }
 
@@ -1112,8 +1101,8 @@
             return;
         }
 
-        context->texImage2D(targetPacked, level, internalformat, width, height, border, format,
-                            type, pixels);
+        context->texImage2DRobust(targetPacked, level, internalformat, width, height, border,
+                                  format, type, bufSize, pixels);
     }
 }
 
@@ -1136,8 +1125,7 @@
             return;
         }
 
-        Texture *texture = context->getTargetTexture(targetPacked);
-        SetTexParameterfv(context, texture, pname, params);
+        context->texParameterfvRobust(targetPacked, pname, bufSize, params);
     }
 }
 
@@ -1160,8 +1148,7 @@
             return;
         }
 
-        Texture *texture = context->getTargetTexture(targetPacked);
-        SetTexParameteriv(context, texture, pname, params);
+        context->texParameterivRobust(targetPacked, pname, bufSize, params);
     }
 }
 
@@ -1192,8 +1179,8 @@
             return;
         }
 
-        context->texSubImage2D(targetPacked, level, xoffset, yoffset, width, height, format, type,
-                               pixels);
+        context->texSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, height, format,
+                                     type, bufSize, pixels);
     }
 }
 
@@ -1225,8 +1212,8 @@
             return;
         }
 
-        context->texImage3D(targetPacked, level, internalformat, width, height, depth, border,
-                            format, type, pixels);
+        context->texImage3DRobust(targetPacked, level, internalformat, width, height, depth, border,
+                                  format, type, bufSize, pixels);
     }
 }
 
@@ -1262,8 +1249,8 @@
             return;
         }
 
-        context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth,
-                               format, type, pixels);
+        context->texSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset, width, height,
+                                     depth, format, type, bufSize, pixels);
     }
 }
 
@@ -1295,8 +1282,8 @@
             return;
         }
 
-        context->compressedTexImage2D(targetPacked, level, internalformat, width, height, border,
-                                      imageSize, data);
+        context->compressedTexImage2DRobust(targetPacked, level, internalformat, width, height,
+                                            border, imageSize, dataSize, data);
     }
 }
 
@@ -1328,8 +1315,8 @@
             return;
         }
 
-        context->compressedTexSubImage2D(targetPacked, level, xoffset, yoffset, width, height,
-                                         format, imageSize, data);
+        context->compressedTexSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, height,
+                                               format, imageSize, dataSize, data);
     }
 }
 
@@ -1362,8 +1349,8 @@
             return;
         }
 
-        context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth,
-                                      border, imageSize, data);
+        context->compressedTexImage3DRobust(targetPacked, level, internalformat, width, height,
+                                            depth, border, imageSize, dataSize, data);
     }
 }
 
@@ -1400,8 +1387,9 @@
             return;
         }
 
-        context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width,
-                                         height, depth, format, imageSize, data);
+        context->compressedTexSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset,
+                                               width, height, depth, format, imageSize, dataSize,
+                                               data);
     }
 }
 
@@ -1421,7 +1409,7 @@
             return;
         }
 
-        context->getQueryiv(target, pname, params);
+        context->getQueryivRobust(target, pname, bufSize, length, params);
     }
 }
 
@@ -1444,7 +1432,7 @@
             return;
         }
 
-        context->getQueryObjectuiv(id, pname, params);
+        context->getQueryObjectuivRobust(id, pname, bufSize, length, params);
     }
 }
 
@@ -1470,7 +1458,7 @@
             return;
         }
 
-        context->getBufferPointerv(targetPacked, pname, params);
+        context->getBufferPointervRobust(targetPacked, pname, bufSize, length, params);
     }
 }
 
@@ -1490,7 +1478,7 @@
             return;
         }
 
-        context->getIntegeri_v(target, index, data);
+        context->getIntegeri_vRobust(target, index, bufSize, length, data);
     }
 }
 
@@ -1515,8 +1503,7 @@
             return;
         }
 
-        const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat);
-        QueryInternalFormativ(formatCaps, pname, bufSize, params);
+        context->getInternalformativRobust(target, internalformat, pname, bufSize, length, params);
     }
 }
 
@@ -1539,7 +1526,7 @@
             return;
         }
 
-        context->getVertexAttribIiv(index, pname, params);
+        context->getVertexAttribIivRobust(index, pname, bufSize, length, params);
     }
 }
 
@@ -1562,7 +1549,7 @@
             return;
         }
 
-        context->getVertexAttribIuiv(index, pname, params);
+        context->getVertexAttribIuivRobust(index, pname, bufSize, length, params);
     }
 }
 
@@ -1585,10 +1572,7 @@
             return;
         }
 
-        Program *programObject = context->getProgram(program);
-        ASSERT(programObject);
-
-        programObject->getUniformuiv(context, location, params);
+        context->getUniformuivRobust(program, location, bufSize, length, params);
     }
 }
 
@@ -1613,8 +1597,8 @@
             return;
         }
 
-        const Program *programObject = context->getProgram(program);
-        QueryActiveUniformBlockiv(programObject, uniformBlockIndex, pname, params);
+        context->getActiveUniformBlockivRobust(program, uniformBlockIndex, pname, bufSize, length,
+                                               params);
     }
 }
 
@@ -1636,7 +1620,7 @@
             return;
         }
 
-        context->getInteger64v(pname, data);
+        context->getInteger64vRobust(pname, bufSize, length, data);
     }
 }
 
@@ -1659,7 +1643,7 @@
             return;
         }
 
-        context->getInteger64i_v(target, index, data);
+        context->getInteger64i_vRobust(target, index, bufSize, length, data);
     }
 }
 
@@ -1683,8 +1667,7 @@
             return;
         }
 
-        Buffer *buffer = context->getGLState().getTargetBuffer(targetPacked);
-        QueryBufferParameteri64v(buffer, pname, params);
+        context->getBufferParameteri64vRobust(targetPacked, pname, bufSize, length, params);
     }
 }
 
@@ -1706,7 +1689,7 @@
             return;
         }
 
-        context->samplerParameteriv(sampler, pname, param);
+        context->samplerParameterivRobust(sampler, pname, bufSize, param);
     }
 }
 
@@ -1728,7 +1711,7 @@
             return;
         }
 
-        context->samplerParameterfv(sampler, pname, param);
+        context->samplerParameterfvRobust(sampler, pname, bufSize, param);
     }
 }
 
@@ -1752,7 +1735,7 @@
             return;
         }
 
-        context->getSamplerParameteriv(sampler, pname, params);
+        context->getSamplerParameterivRobust(sampler, pname, bufSize, length, params);
     }
 }
 
@@ -1776,7 +1759,7 @@
             return;
         }
 
-        context->getSamplerParameterfv(sampler, pname, params);
+        context->getSamplerParameterfvRobust(sampler, pname, bufSize, length, params);
     }
 }
 
@@ -1825,7 +1808,7 @@
             return;
         }
 
-        context->getBooleani_v(target, index, data);
+        context->getBooleani_vRobust(target, index, bufSize, length, data);
     }
 }
 
@@ -1909,7 +1892,8 @@
             return;
         }
 
-        context->readPixels(x, y, width, height, format, type, data);
+        context->readnPixelsRobust(x, y, width, height, format, type, bufSize, length, columns,
+                                   rows, data);
     }
 }
 
@@ -2071,7 +2055,7 @@
             return;
         }
 
-        context->getQueryObjectiv(id, pname, params);
+        context->getQueryObjectivRobust(id, pname, bufSize, length, params);
     }
 }
 
@@ -2094,7 +2078,7 @@
             return;
         }
 
-        context->getQueryObjecti64v(id, pname, params);
+        context->getQueryObjecti64vRobust(id, pname, bufSize, length, params);
     }
 }
 
@@ -2117,7 +2101,7 @@
             return;
         }
 
-        context->getQueryObjectui64v(id, pname, params);
+        context->getQueryObjectui64vRobust(id, pname, bufSize, length, params);
     }
 }
 
@@ -2141,8 +2125,8 @@
         {
             return;
         }
-        context->framebufferTextureMultiviewLayeredANGLE(target, attachment, texture, level,
-                                                         baseViewIndex, numViews);
+        context->framebufferTextureMultiviewLayered(target, attachment, texture, level,
+                                                    baseViewIndex, numViews);
     }
 }
 
@@ -2166,8 +2150,8 @@
         {
             return;
         }
-        context->framebufferTextureMultiviewSideBySideANGLE(target, attachment, texture, level,
-                                                            numViews, viewportOffsets);
+        context->framebufferTextureMultiviewSideBySide(target, attachment, texture, level, numViews,
+                                                       viewportOffsets);
     }
 }