Implemented tab-switching based GPU switching for Mac

This change makes backgrounded WebGL contexts release use of the
high-performance GPU. In particular, the context notifies the
DualGPUState object that it no longer needs a discrete pixelformat
object to ensure that the discrete GPU is active.

Bug: 681341
Change-Id: Ic7978841161a72a2dbc9c3cb01cbe763acb950ab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1794263
Reviewed-by: Zhenyao Mo <[email protected]>
Reviewed-by: Kenneth Russell <[email protected]>
Commit-Queue: Daksh Idnani <[email protected]>
Cr-Commit-Position: refs/heads/master@{#696144}
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h
index ceb3f8c..3394321 100644
--- a/gpu/GLES2/gl2chromium_autogen.h
+++ b/gpu/GLES2/gl2chromium_autogen.h
@@ -380,6 +380,8 @@
   GLES2_GET_FUN(BindFragmentInputLocationCHROMIUM)
 #define glProgramPathFragmentInputGenCHROMIUM \
   GLES2_GET_FUN(ProgramPathFragmentInputGenCHROMIUM)
+#define glContextVisibilityHintCHROMIUM \
+  GLES2_GET_FUN(ContextVisibilityHintCHROMIUM)
 #define glCoverageModulationCHROMIUM GLES2_GET_FUN(CoverageModulationCHROMIUM)
 #define glGetGraphicsResetStatusKHR GLES2_GET_FUN(GetGraphicsResetStatusKHR)
 #define glBlendBarrierKHR GLES2_GET_FUN(BlendBarrierKHR)