Split WebGL compatibility into two extensions.

The mechanism for requesting extensions is now a separate extension.
Added a way to query the extensions that support enabling.

BUG=angleproject:1523

Change-Id: I2efaa9f6d67b12ecae325f455404e34ba04d0e7c
Reviewed-on: https://chromium-review.googlesource.com/414529
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/gl_tests/RendererTest.cpp b/src/tests/gl_tests/RendererTest.cpp
index 3051ff2..b9c745f 100644
--- a/src/tests/gl_tests/RendererTest.cpp
+++ b/src/tests/gl_tests/RendererTest.cpp
@@ -107,18 +107,25 @@
     }
 
     EGLint glesMajorVersion = GetParam().majorVersion;
+    EGLint glesMinorVersion = GetParam().minorVersion;
 
-    // Ensure that the renderer string contains GL ES 3.0, if we requested a GL ES 3.0
-    if (glesMajorVersion == 3)
+    // Ensure that the renderer string contains the requested version number
+    if (glesMajorVersion == 3 && glesMinorVersion == 1)
+    {
+        ASSERT_NE(versionString.find(std::string("es 3.1")), std::string::npos);
+    }
+    else if (glesMajorVersion == 3 && glesMinorVersion == 0)
     {
         ASSERT_NE(versionString.find(std::string("es 3.0")), std::string::npos);
     }
-
-    // Ensure that the version string contains GL ES 2.0, if we requested GL ES 2.0
-    if (glesMajorVersion == 2)
+    else if (glesMajorVersion == 2 && glesMinorVersion == 0)
     {
         ASSERT_NE(versionString.find(std::string("es 2.0")), std::string::npos);
     }
+    else
+    {
+        FAIL() << "Unhandled GL ES client version.";
+    }
 }
 
 // Perform a simple operation (clear and read pixels) to verify the device is working