In FeatureInfo::Initialize(), we can specify a context type, and in the implementation, we initialize a GLVersionInfo using queried GL strings.
GLVersionInfo contains a is_es3_capable field, but we never do the sanity check, and FeatureInfo::Initialize() always succeed.
This is problematic, mostly on Android devices where ES3 isn't supported.
It seems Chrome does the sanity check for WebGL2 somewhere else, so Chrome never allows WebGL2 if underlying isn't ES3 capable.
However, some of our tests don't perform the sanity check, so they could fail.
One way to fix the problem, is in ContextGroup::Initialize(), right after feature_info_->Initialize(), we check if the context_type_ and GLVersionInfo are compatible. If not, return gpu::ContextResult::kFatalFailure.