OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 blimp.engine.mojom; | 5 module blimp.engine.mojom; |
6 | 6 |
| 7 // Exposes BlobChannel data producer methods to the renderer processes. |
| 8 // The renderer can use this service to push bulk data such as images to |
| 9 // the client. |
7 interface BlobChannel { | 10 interface BlobChannel { |
8 // Stores the blob |id| in the BlobCache. | 11 // Stores the blob |id| in the BlobCache. |
9 // TODO(kmarshall): Use shared memory for more efficient data transfer, see | 12 // Because the IPC channel is a shared resource and payloads can be quite |
10 // crbug.com/614564 . | 13 // large, we use shared memory to reduce channel contention and associated |
11 PutBlob(string id, string data); | 14 // latency with other components/features. |
| 15 // |
| 16 // The buffer is released when the callee discards the handle for |data|. |
| 17 PutBlob(string id, handle<shared_buffer> data, uint32 size); |
12 | 18 |
13 // Requests that the BlobChannel push the blob |id| over the wire. | 19 // Requests that the BlobChannel push the blob |id| over the wire. |
14 // The request will be ignored if the BlobChannel knows that | 20 // The request will be ignored if the BlobChannel knows that |
15 // the client already has the data. | 21 // the client already has the data. |
16 DeliverBlob(string id); | 22 DeliverBlob(string id); |
17 }; | 23 }; |
18 | 24 |
OLD | NEW |