[go: nahoru, domu]

Split ResourceProvider into LayerTreeResourceProvider and DisplayResourceProvider

ResourceProvider manages resources shared between producer (render layer tree, browser
layer tree) and consumer (display compositor). The producer writes to resources and
sends it to the consumer, the consumer receives and reads resources. These write/send
and receive/read currently live in a single ResourceProvider. The general idea is to
split the responsibilities in ResourceProvider into two parts: write/send in the
LayerTreeResourceProvider, receive/read in the DisplayResourceProvider.

After investigating the write/read in producer and consumer (list in below table:
https://docs.google.com/spreadsheets/d/1lnyONBganHkiQKw8J-3e3xC7STZkYvSh7dkzxSUFmPw/edit),
most of these Scoped*s are used by both the producer and consumer. So in this patch,
will split send into LayerTreeResourceProvider and receive into DisplayResourceProvider
first.

TODO: split read/write in ResourceProvider into LayerTreeResourceProvider or
DisplayResourceProvider, related bug is 
https://bugs.chromium.org/p/chromium/issues/detail?id=757291

BUG=738190

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ifc686fbd234f325228a8de0c6270500fc1b22fe2
Reviewed-on: https://chromium-review.googlesource.com/599628
Commit-Queue: Xing Xu <xing.xu@intel.com>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496211}
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index ef4042c..07488f3 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -253,6 +253,10 @@
     "raster/tile_task.h",
     "raster/zero_copy_raster_buffer_provider.cc",
     "raster/zero_copy_raster_buffer_provider.h",
+    "resources/display_resource_provider.cc",
+    "resources/display_resource_provider.h",
+    "resources/layer_tree_resource_provider.cc",
+    "resources/layer_tree_resource_provider.h",
     "resources/memory_history.cc",
     "resources/memory_history.h",
     "resources/resource.h",