Make cc::SurfaceId unguessable

This CL makes surface IDs unguessable.

With this patch, surface ID consists of three components.

1. Namespace ID is a display compositor allocated 32-bit
   ID.

2. Nonce is a cryptographically secure random, unguessable
   64-bit integer generated by the client.

3. Local ID is a 32-bit sequentially increasing integer
   generated by the client.

With this CL, once a surface ID is allocated, its
components cannot be modified.

BUG=613300
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1996783002
Cr-Commit-Position: refs/heads/master@{#395926}
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h
index 375b308d..f0b115c 100644
--- a/content/renderer/render_frame_proxy.h
+++ b/content/renderer/render_frame_proxy.h
@@ -24,7 +24,7 @@
 }
 
 namespace cc {
-struct SurfaceId;
+class SurfaceId;
 struct SurfaceSequence;
 }