mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 22:32:46 +00:00
01ad68bec6
Differential Revision: https://phabricator.services.mozilla.com/D138405
60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
include protocol PBackground;
|
|
|
|
include PBackgroundLSSharedTypes;
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
/**
|
|
* Response to a `LSSimpleRequestPreloadedParams` request indicating whether the
|
|
* origin was preloaded.
|
|
*/
|
|
struct LSSimpleRequestPreloadedResponse
|
|
{
|
|
bool preloaded;
|
|
};
|
|
|
|
struct LSSimpleRequestGetStateResponse
|
|
{
|
|
LSItemInfo[] itemInfos;
|
|
};
|
|
|
|
/**
|
|
* Discriminated union which can contain an error code (`nsresult`) or
|
|
* particular simple request response.
|
|
*/
|
|
union LSSimpleRequestResponse
|
|
{
|
|
nsresult;
|
|
LSSimpleRequestPreloadedResponse;
|
|
LSSimpleRequestGetStateResponse;
|
|
};
|
|
|
|
/**
|
|
* Simple requests are async-only from both a protocol perspective and the
|
|
* manner in which they're used. In comparison, PBackgroundLSRequests are
|
|
* async only from a protocol perspective; they are used synchronously from the
|
|
* main thread via LSObject's RequestHelper mechanism. (With the caveat that
|
|
* nsILocalStorageManager does expose LSRequests asynchronously.)
|
|
*
|
|
* These requests use the common idiom where the arguments to the request are
|
|
* sent in the constructor and the result is sent in the __delete__ response.
|
|
* Request types are indicated by the Params variant used and those live in
|
|
* `PBackgroundLSSharedTypes.ipdlh`.
|
|
*/
|
|
[ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
|
|
protocol PBackgroundLSSimpleRequest
|
|
{
|
|
manager PBackground;
|
|
|
|
child:
|
|
async __delete__(LSSimpleRequestResponse response);
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|