1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 // A stashed client object. This contains the serialized bytes and handles,
8 // stored in |data| and |handles|, respectively, of a mojo struct of the
9 // serialized representation of the client object.
10 struct StashedObject {
11 // A client identifier for this stashed object. This is to allow the client to
12 // reconstitute the correct serialization struct from this StashedObject.
15 // The serialized data of the serialization struct.
18 // The handles contained within the serialization struct.
19 array<handle> stashed_handles;
21 // Whether to monitor |stashed_handles| and relaunch the client when a handle
23 bool monitor_handles = false;
26 interface StashService {
27 // Adds |stashed_objects| to the stash. StashedObjects are stored in memory in
28 // the browser process for as long as the extension that owns them remains
29 // enabled and the browser process runs.
30 AddToStash(array<StashedObject> stashed_objects);
32 // Returns all stashed objects.
33 RetrieveStash() => (array<StashedObject> stash);