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