Index: cc/ipc/display_compositor.mojom |
diff --git a/cc/ipc/display_compositor.mojom b/cc/ipc/display_compositor.mojom |
index c3ae783e6def4e62ec85589f59d0fd022b7503e4..2e52e761d8cc60773347cdb1c5fe81f397c967fb 100644 |
--- a/cc/ipc/display_compositor.mojom |
+++ b/cc/ipc/display_compositor.mojom |
@@ -4,9 +4,31 @@ |
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. |
+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): Remove these once we switch to surface references. |
+ AddSurfaceReference(cc.mojom.SurfaceId surface_id, |
+ cc.mojom.SurfaceSequence sequence); |
+ ReturnSurfaceReferences(cc.mojom.FrameSinkId frame_sink_id, |
+ array<uint32> sequences); |
+}; |
+ |
// 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 |