blob: ec9be788e42645b633cd097b9cdad78d60be542b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */
#ifndef mozilla_dom_localstorage_LocalStorageManager2_h
#define mozilla_dom_localstorage_LocalStorageManager2_h
#include <cstdint>
#include "ErrorList.h"
#include "nsIDOMStorageManager.h"
#include "nsILocalStorageManager.h"
#include "nsISupports.h"
namespace mozilla {
namespace dom {
class LSRequestChild;
class LSRequestChildCallback;
class LSRequestParams;
class LSSimpleRequestParams;
class Promise;
/**
* Under LSNG this exposes nsILocalStorageManager::Preload to ContentParent to
* trigger preloading. Otherwise, this is basically just a place for test logic
* that doesn't make sense to put directly on the Storage WebIDL interface.
*
* Previously, the nsIDOMStorageManager XPCOM interface was also used by
* nsGlobalWindowInner to interact with LocalStorage, but in these de-XPCOM
* days, we've moved to just directly reference the relevant concrete classes
* (ex: LSObject) directly.
*
* Note that testing methods are now also directly exposed on the Storage WebIDL
* interface for simplicity/sanity.
*/
class LocalStorageManager2 final : public nsIDOMStorageManager,
public nsILocalStorageManager {
public:
LocalStorageManager2();
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMSTORAGEMANAGER
NS_DECL_NSILOCALSTORAGEMANAGER
/**
* Helper to trigger an LSRequest and resolve/reject the provided promise when
* the result comes in. This routine is notable because the LSRequest
* mechanism is normally used synchronously from content, but here it's
* exposed asynchronously.
*/
LSRequestChild* StartRequest(const LSRequestParams& aParams,
LSRequestChildCallback* aCallback);
private:
~LocalStorageManager2();
/**
* Helper to trigger an LSSimpleRequst and resolve/reject the provided promise
* when the result comes in.
*/
nsresult StartSimpleRequest(Promise* aPromise,
const LSSimpleRequestParams& aParams);
};
} // namespace dom
} // namespace mozilla
#endif // mozilla_dom_localstorage_LocalStorageManager2_h
|