Use a cc::Display for layout tests.

This gives a delegating OutputSurface to LayerTreeHost for layout tests,
which delegates to an in-process cc::Display instance. It does so using
the same code we now use for cc pixel tests, which is the
PixelTestDelegatingOutputSurface class.

This makes LayoutTests use the same code paths in the renderer
compositor that we ship to users! Hooray paying down 3-year-old
technical debt. After this, LayerTreeHostImpl will no longer need
to use a DirectRenderer ever (modulo WebView).

I wanted to keep the Display using a separate ContextProvider from cc,
to test texture transport mostly as it exists between the renderer and
the out-of-process Display that we ship to users. So the output surface
must take a ContextProvider from its creator to allow cc pixel tests
to use in-process GL, and layout tests to use out-of-process GL. So
the LayoutTestDependenciesImpl creates a ContextProviderCommandBuffer
for the cc::Display to use, keeping the smallest code footprint
possible inside RenderThreadImpl.

TODO(danakj): Delete GLFrameData, MailboxOutputSurface, mailbox support
in GLRenderer, etc.

R=piman@chromium.org, sievers
BUG=311404

Review-Url: https://codereview.chromium.org/2075343003
Cr-Commit-Position: refs/heads/master@{#402360}
12 files changed