OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 module cc.mojom; | 5 module cc.mojom; |
6 | 6 |
7 import "cc/ipc/frame_sink_id.mojom"; | 7 import "cc/ipc/frame_sink_id.mojom"; |
| 8 import "cc/ipc/local_frame_id.mojom"; |
8 | 9 |
9 // A surface ID is composed of three parts: a client ID, a local ID, and a | 10 // A surface ID is composed of two parts: a FrameSinkID, and a LocalFrameId. |
10 // nonce. The local part and nonce are allocated by the client using any scheme | 11 // The FrameSinkId uniquely identifies the FrameSink associated with the |
11 // that avoids duplicates and makes IDs unguessable respectively. The client ID | 12 // surface. This corresponds to a SurfaceFactory in the display compositor |
12 // is allocated by the service and will be different for each client. | 13 // service. The FrameSinkId is partially allocated by the display compositor |
13 // | 14 // and partially allocated by the frame source. |
14 // The special client_id value 0 is equivalent to the current client. | 15 // The LocalFrameId are allocated by the client using any scheme |
15 // This can be used to create, destroy and submit frames to surfaces before | 16 // that avoids duplicates and makes IDs unguessable respectively. |
16 // learning the client ID and to reference other surfaces owned by the same | |
17 // client. The actual client ID must be used to pass surface ids to other | |
18 // clients for them to reference. | |
19 struct SurfaceId { | 17 struct SurfaceId { |
20 FrameSinkId frame_sink_id; | 18 FrameSinkId frame_sink_id; |
21 | 19 LocalFrameId local_frame_id; |
22 // An identifier allocated by the client uniquely identifying a surface within | |
23 // a client process. | |
24 uint32 local_id; | |
25 | |
26 // A cryptographically secure random int chosen to make the SurfaceId | |
27 // unguessable by other clients. | |
28 uint64 nonce; | |
29 }; | 20 }; |
OLD | NEW |