Index: blimp/engine/mojo/blob_channel.mojom |
diff --git a/blimp/engine/mojo/blob_channel.mojom b/blimp/engine/mojo/blob_channel.mojom |
index 0960916fea10655f4e3511b8e2c1684108c08ace..45567d2fee9ef5e45c299dac1654a7f3a9b65780 100644 |
--- a/blimp/engine/mojo/blob_channel.mojom |
+++ b/blimp/engine/mojo/blob_channel.mojom |
@@ -4,11 +4,17 @@ |
module blimp.engine.mojom; |
+// Exposes BlobChannel data producer methods to the renderer processes. |
+// The renderer can use this service to push bulk data such as images to |
+// the client. |
interface BlobChannel { |
// Stores the blob |id| in the BlobCache. |
- // TODO(kmarshall): Use shared memory for more efficient data transfer, see |
- // crbug.com/614564 . |
- PutBlob(string id, string data); |
+ // Because the IPC channel is a shared resource and payloads can be quite |
+ // large, we use shared memory to reduce channel contention and associated |
+ // latency with other components/features. |
+ // |
+ // The buffer is released when the callee discards the handle for |data|. |
+ PutBlob(string id, handle<shared_buffer> data, uint32 size); |
// Requests that the BlobChannel push the blob |id| over the wire. |
// The request will be ignored if the BlobChannel knows that |