| 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 |