CCLayerTreeHost does not need to be refcounted.
Nor does LayerRendererChromium.
CCLayerImpl, I don't know?
RenderSurfaces? Not if we go to a RenderPass abstraction and let the LayerRenderer manage the RenderPass list. Might be less fragile, anyway.
I'm going to take a crack at CCLayerTreeHost/LayerRendererChromium.
https://bugs.webkit.org/show_bug.cgi?id=68121 fixes LayerRendererChromium to not be RefCounted.
CCLayerImpl is a bit tricky since currently the TreeSynchronizer relies on the refcounting. We can probably do this another way but it's not trivial.
RenderSurfaceChromium and CCRenderSurface are single ownership (and need a rewrite anyway).
CCLayerTreeHost is definitely possible, we just need to be careful to clear back pointers since the GraphicsLayers and LayerChromiums can very easily outlive the CCLayerTreeHost. I'll take a crack at this one next.
After that I think we're pretty much done.