Bug 1826183 - Remove the pageload essential category from mach-try-perf. r=perftest...
[gecko.git] / dom / localstorage / PBackgroundLSSimpleRequest.ipdl
blob9a6a22d836d2d91e306f66648a339fbdb5804183
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 include protocol PBackground;
7 include PBackgroundLSSharedTypes;
9 namespace mozilla {
10 namespace dom {
12 /**
13  * Response to a `LSSimpleRequestPreloadedParams` request indicating whether the
14  * origin was preloaded.
15  */
16 struct LSSimpleRequestPreloadedResponse
18   bool preloaded;
21 struct LSSimpleRequestGetStateResponse
23   LSItemInfo[] itemInfos;
26 /**
27  * Discriminated union which can contain an error code (`nsresult`) or
28  * particular simple request response.
29  */
30 union LSSimpleRequestResponse
32   nsresult;
33   LSSimpleRequestPreloadedResponse;
34   LSSimpleRequestGetStateResponse;
37 /**
38  * Simple requests are async-only from both a protocol perspective and the
39  * manner in which they're used.  In comparison, PBackgroundLSRequests are
40  * async only from a protocol perspective; they are used synchronously from the
41  * main thread via LSObject's RequestHelper mechanism.  (With the caveat that
42  * nsILocalStorageManager does expose LSRequests asynchronously.)
43  *
44  * These requests use the common idiom where the arguments to the request are
45  * sent in the constructor and the result is sent in the __delete__ response.
46  * Request types are indicated by the Params variant used and those live in
47  * `PBackgroundLSSharedTypes.ipdlh`.
48  */
49 [ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
50 protocol PBackgroundLSSimpleRequest
52   manager PBackground;
54 child:
55   async __delete__(LSSimpleRequestResponse response);
58 } // namespace dom
59 } // namespace mozilla