Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(940)

Unified Diff: cc/ipc/display_compositor.mojom

Issue 2481263002: Introduce Display Compositor mojo interface. Use InProcessContextProvider. (Closed)
Patch Set: Speculative fix for android build issue Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698