Enable shader validation with WebGL compatibility extension.

The change configures shaders to be of a compatible spec upon creation.

BUG=angleproject:1523

Change-Id: Id345d0b8f0abad8ed3c4fb3117d0fdfeab9fea53
Reviewed-on: https://chromium-review.googlesource.com/405778
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Compiler.cpp b/src/libANGLE/Compiler.cpp
index b745888..bc57042 100644
--- a/src/libANGLE/Compiler.cpp
+++ b/src/libANGLE/Compiler.cpp
@@ -23,27 +23,29 @@
 // ShFinalize.
 size_t activeCompilerHandles = 0;
 
-ShShaderSpec SelectShaderSpec(GLint majorVersion, GLint minorVersion)
+ShShaderSpec SelectShaderSpec(GLint majorVersion, GLint minorVersion, bool isWebGL)
 {
     if (majorVersion >= 3)
     {
         if (minorVersion == 1)
         {
-            return SH_GLES3_1_SPEC;
+            return isWebGL ? SH_WEBGL3_SPEC : SH_GLES3_1_SPEC;
         }
         else
         {
-            return SH_GLES3_SPEC;
+            return isWebGL ? SH_WEBGL2_SPEC : SH_GLES3_SPEC;
         }
     }
-    return SH_GLES2_SPEC;
+    return isWebGL ? SH_WEBGL_SPEC : SH_GLES2_SPEC;
 }
 
 }  // anonymous namespace
 
 Compiler::Compiler(rx::GLImplFactory *implFactory, const ContextState &state)
     : mImplementation(implFactory->createCompiler()),
-      mSpec(SelectShaderSpec(state.getClientMajorVersion(), state.getClientMinorVersion())),
+      mSpec(SelectShaderSpec(state.getClientMajorVersion(),
+                             state.getClientMinorVersion(),
+                             state.getExtensions().webglCompatibility)),
       mOutputType(mImplementation->getTranslatorOutputType()),
       mResources(),
       mFragmentCompiler(nullptr),