Use RasterDecoder for CPU raster

Reland of https://crrev.com/c/1258206. Revert of that CL was to defer
until after M71 branchpoint to avoid unnecessary risk. Zero code change
in this reland.

This CL uses RasterDecoder for CPU rasterization (one-copy and
zero-copy) on worker background raster threads in two cases:

(1) in renderers whenever GPU raster is blacklisted or cannot create
    GrContext (similar to
    LayerTreeHostImpl::GetGpuRasterizationCapabilities)

(2) in browser whenever GPU raster is not requested

This CL copies some of the logic in LTHI::GetGpuRasterizationCapabilities
to RenderThreadImpl::SharedCompositorWorkerContextProvider.
I copied it so that if we fail GPU rasterization using GLES2Decoder, we
can fallback to CPU raster using a RasterDecoder.

TBR=piman

Bug: 880911
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I097ede2266c9ddc4c6f6c777b34419399eb21bf8
Reviewed-on: https://chromium-review.googlesource.com/c/1281084
Commit-Queue: Jonathan Backer <[email protected]>
Reviewed-by: Jonathan Backer <[email protected]>
Cr-Commit-Position: refs/heads/master@{#599744}
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 5996745..e366aec 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -396,7 +396,7 @@
   // Returns a worker context provider that will be bound on the compositor
   // thread.
   scoped_refptr<viz::RasterContextProvider>
-  SharedCompositorWorkerContextProvider();
+  SharedCompositorWorkerContextProvider(bool try_gpu_rasterization);
 
   media::GpuVideoAcceleratorFactories* GetGpuFactories();