// Copyright 2014 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 extensions; // A stashed client object. This contains the serialized bytes and handles, // stored in |data| and |handles|, respectively, of a mojo struct of the // serialized representation of the client object. struct StashedObject { // A client identifier for this stashed object. This is to allow the client to // reconstitute the correct serialization struct from this StashedObject. string id; // The serialized data of the serialization struct. array data; // The handles contained within the serialization struct. array stashed_handles; // Whether to monitor |stashed_handles| and relaunch the client when a handle // becomes readable. bool monitor_handles = false; }; interface StashService { // Adds |stashed_objects| to the stash. StashedObjects are stored in memory in // the browser process for as long as the extension that owns them remains // enabled and the browser process runs. AddToStash(array stashed_objects); // Returns all stashed objects. RetrieveStash() => (array stash); };