gfx/android: Integrate renderer threads with Android Dynamic Performance Framework

Set up a RenderingPipeline for CC in the renderer process to provide
feedback to ADPF.

Bug: 1157620
Change-Id: Ibc517cc34cf6a70b27f0067873dd69fd8cdfb389
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2617507
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Xianzhu Wang <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Jonathan Backer <[email protected]>
Reviewed-by: danakj <[email protected]>
Commit-Queue: Bo <[email protected]>
Cr-Commit-Position: refs/heads/master@{#860451}
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 841c6d6..fdd4c20c 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -79,6 +79,10 @@
 class TaskGraphRunner;
 }
 
+namespace gfx {
+class RenderingPipeline;
+}
+
 namespace gpu {
 class GpuChannelHost;
 }
@@ -203,6 +207,8 @@
   blink::scheduler::WebThreadScheduler* GetWebMainThreadScheduler() override;
   cc::TaskGraphRunner* GetTaskGraphRunner() override;
   std::unique_ptr<cc::UkmRecorderFactory> CreateUkmRecorderFactory() override;
+  gfx::RenderingPipeline* GetMainThreadPipeline() override;
+  gfx::RenderingPipeline* GetCompositorThreadPipeline() override;
 
   bool IsLcdTextEnabled();
   bool IsElasticOverscrollEnabled();
@@ -520,6 +526,9 @@
   // Thread for running multimedia operations (e.g., video decoding).
   std::unique_ptr<base::Thread> media_thread_;
 
+  std::unique_ptr<gfx::RenderingPipeline> main_thread_pipeline_;
+  std::unique_ptr<gfx::RenderingPipeline> compositor_thread_pipeline_;
+
   // Will point to appropriate task runner after initialization,
   // regardless of whether |compositor_thread_| is overriden.
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;