In Mus+Ash, ui::Compositor is used by clients. If we wish to use ui::Compositor in clients, then ui::Compositor should not have access to privileged APIs. We should instead provide another mechanism to set privileged APIs.
Privileged APIs in ContextFactory include:
CreateReflector (should be window server)
RemoveReflector (should be window server)
AllocateFrameSinkId (should be window server)
GetSurfaceManager (should be gpu)
SetDisplayVisible (should be gpu)
ResizeDisplay (should be gpu)
SetDisplayColorSpace (should be gpu)
SetAuthoritativeVSyncInterval (should be gpu)
SetDisplayVSyncParameters (should be gpu)
SetOutputIsSecure (should be gpu).
It seems like we can break this class into three classes: client, window server, and gpu responsibilities.
Comment 1 by fsam...@chromium.org
, Dec 9 2016