Previously we had layer compositors that were both a child and a parent of other compositors, so they needed to act as service and client. This is no longer true as of the transition to having a display compositor.
We should split the responsibilities in ResourceProvider up. LayerTreeHost gets the client side of it. Display gets the service side of it.
This avoids having this code in a "common" place, where other consumers may want to use it, as the client side of it is specific to LayerTreeHost.
We want some lighter-weight client implementation for other FrameSink clients, such as offscreen canvas. Doing this split should help inform us with what that looks like as well.
Comment 1 by danakj@chromium.org
, Jun 29 2017