| Index: cc/ipc/display_compositor.mojom
|
| diff --git a/cc/ipc/display_compositor.mojom b/cc/ipc/display_compositor.mojom
|
| index c3ae783e6def4e62ec85589f59d0fd022b7503e4..d8fab7a6763bd5a70fb02084d7af69a7310269b0 100644
|
| --- a/cc/ipc/display_compositor.mojom
|
| +++ b/cc/ipc/display_compositor.mojom
|
| @@ -4,9 +4,42 @@
|
|
|
| module cc.mojom;
|
|
|
| +import "cc/ipc/frame_sink_id.mojom";
|
| +import "cc/ipc/mojo_compositor_frame_sink.mojom";
|
| import "cc/ipc/surface_id.mojom";
|
| +import "cc/ipc/surface_sequence.mojom";
|
| +import "gpu/ipc/common/surface_handle.mojom";
|
| import "ui/gfx/geometry/mojo/geometry.mojom";
|
|
|
| +// The DisplayCompositor interface is a privileged interface that allows
|
| +// the display compositor host (browser or window server) to create
|
| +// CompositorFrameSinks. Clients acquire a CompositorFrameSink connection
|
| +// through the display compositor host. Clients request a
|
| +// MojoCompositorFrameSink interface, and implement a
|
| +// MojoCompositorFrameSinkClient interface. The display compositor host
|
| +// holds one or more root CompositorFrameSinks that are tied to a valid
|
| +// |surface_handle|. All other CompositorFrameSinks are offscreen. FrameSinkIds
|
| +// are fixed for a given client and are determined ahead of time. Thus, a client
|
| +// will typically simply request a CompositorFrameSink from the display
|
| +// compositor host which will forward the request to the display compositor.
|
| +interface DisplayCompositor {
|
| + CreateCompositorFrameSink(
|
| + cc.mojom.FrameSinkId frame_sink_id,
|
| + gpu.mojom.SurfaceHandle widget,
|
| + cc.mojom.MojoCompositorFrameSink& compositor_frame_sink,
|
| + cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private,
|
| + cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client);
|
| +
|
| + // TODO(fsamuel): This surface reference API is temporary. Surface references
|
| + // should be bundled with CompositorFrames.
|
| + AddRootSurfaceReference(cc.mojom.SurfaceId child_id);
|
| + AddSurfaceReference(cc.mojom.SurfaceId parent_id,
|
| + cc.mojom.SurfaceId child_id);
|
| + RemoveRootSurfaceReference(cc.mojom.SurfaceId child_id);
|
| + RemoveSurfaceReference(cc.mojom.SurfaceId parent_id,
|
| + cc.mojom.SurfaceId child_id);
|
| +};
|
| +
|
| // The DisplayCompositorClient interface is implemented by the Display
|
| // Compositor Host, a stable, and privileged peer service to the display
|
| // compositor. The display compositor host is either the browser process in
|
|
|