GrShaderCache handles caching compiled shaders for a Skia GrContext. GrShaderCache lives in the GPU process. The GrContext is used for SkiaRenderer and OOP rasterization. GrShaderCache owns an in memory MRU cache along with decisions about disk caching. ShaderDiskCache lives in the browser process and handles caching all shaders to disk. If GrShaderCache decides a shader should be cached to disk the compiled shader is sent over IPC to the browser process to ShaderDiskCache. Likewise, shaders are loaded from disk in the browser process and sent back to the GPU process over IPC.
gpu::gles2::ProgramCache plays a similar role to GrShaderCache for the legacy GLRenderer and (I think) GPU rasterization code.