Currently CompositorFrameSinkSupport retains ownership of the latest surface for a given client. This makes frame eviction clumsy. If no client refers to a surface then it becomes a candidate for eviction. If a client wishes to keep some surfaces around for an extra while, it keeps them in |referenced_surfaces|.
We should not transfer ownership of cc::Surfaces from SurfaceManager to
CompositorFrameSinkSupport and back. Instead SurfaceManager should always own all surfaces, and decide when to reclaim them when signaled. This was suggested by samans@. samans@, kylechar@, and I chatted about this today
and we think this is a good refactor and it takes us a step closer
to display compositor managed frame eviction.
Comment 1 by bugdroid1@chromium.org
, Jun 28 2017