// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. 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 { // Gets the list of cached BlobIDs and their replication status in the // browser process' BlobCache. The replication status is represented // as a boolean which, when true, indicates that the blob has been // sent to the client. // TODO(kmarshall): Add a delegate receiver to process cache invalidation // events from the browser as they occur. GetCachedBlobIds() => (map cache_state); // Stores the blob |id| in the BlobCache. // 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 data, uint32 size); // Requests that the BlobChannel push the blob |id| over the wire. // The request will be ignored if the BlobChannel knows that // the client already has the data. DeliverBlob(string id); };