|
|
Add/remove surface references via MojoCompositorFrameSink.
Both adding/removing surface references and submitting compositor frames
happen via IPC. There needs to be synchronization so that a reference is
added before a CompositorFrame is submitted that embeds the Surface.
Likewise, a reference should only be removed after a new CompositorFrame
is submitted that doesn't embed the Surfacee.
Having add/remove references on the same Mojo interface as submitting
CompositorFrames is the simplest way to achieve this synchronization.
Remove the old IPCs from mojom::DisplayCompositor and add new IPCs to
mojom::MojoCompositorFrameSink.
Also add OnDisplayCompositorCreated() to mojom::DisplayCompositorClient.
This is sent as the first message to the DisplayCompositorClient and it
contains the top level root surface id. This allows the privileged
process to add references to the display roots. This also makes it
impossible for non-privileged clients to add references from the top
level root, since the SurfaceId is unguessable.
BUG= 659227
TBR=junov@chromium.org
Committed: https://crrev.com/2255ff5852f6d1ab187601fc18231f97409d3031
Cr-Commit-Position: refs/heads/master@{#436705}
Total comments: 2
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+244 lines, -174 lines) |
Patch |
 |
M |
cc/ipc/display_compositor.mojom
|
View
|
1
2
|
2 chunks |
+5 lines, -9 lines |
0 comments
|
Download
|
 |
M |
cc/ipc/mojo_compositor_frame_sink.mojom
|
View
|
1
2
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.h
|
View
|
1
2
3
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc
|
View
|
1
2
3
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
services/ui/surfaces/display_compositor.h
|
View
|
1
2
3
|
2 chunks |
+20 lines, -14 lines |
0 comments
|
Download
|
 |
M |
services/ui/surfaces/display_compositor.cc
|
View
|
1
2
|
3 chunks |
+57 lines, -51 lines |
0 comments
|
Download
|
 |
M |
services/ui/surfaces/display_compositor_unittest.cc
|
View
|
1
2
|
7 chunks |
+22 lines, -4 lines |
0 comments
|
Download
|
 |
M |
services/ui/surfaces/gpu_compositor_frame_sink.h
|
View
|
1
2
3
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
services/ui/surfaces/gpu_compositor_frame_sink.cc
|
View
|
1
2
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/frame_generator.h
|
View
|
1
2
3
|
5 chunks |
+14 lines, -19 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/frame_generator.cc
|
View
|
1
2
3
|
8 chunks |
+56 lines, -69 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/server_window_delegate.h
|
View
|
1
2
3
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/test_server_window_delegate.h
|
View
|
1
2
3
|
3 chunks |
+4 lines, -3 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/test_server_window_delegate.cc
|
View
|
|
2 chunks |
+7 lines, -5 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/window_server.h
|
View
|
1
2
|
3 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
 |
M |
services/ui/ws/window_server.cc
|
View
|
1
2
3
|
2 chunks |
+10 lines, -0 lines |
0 comments
|
Download
|
Total messages: 25 (15 generated)
|