Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / extensions / common / mojo / stash.mojom
blob5c1e68bd169b62a86e7830c59eeadeb96ab07404
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.
5 module extensions;
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.
13   string id;
15   // The serialized data of the serialization struct.
16   array<uint8> data;
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
22   // becomes readable.
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);