MLSTransactionParent.h (5897B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim:set ts=2 sw=2 sts=2 et cindent: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef mozilla_dom_MLSTransactionParent_h 8 #define mozilla_dom_MLSTransactionParent_h 9 10 #include "mozilla/dom/PMLSTransaction.h" 11 #include "mozilla/dom/PMLSTransactionParent.h" 12 #include "nsIPrincipal.h" 13 14 namespace mozilla::dom { 15 16 class MLSTransactionParent final : public PMLSTransactionParent { 17 public: 18 NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MLSTransactionParent, override); 19 20 explicit MLSTransactionParent(const nsACString& aDatabasePath) 21 : mDatabasePath(aDatabasePath) {}; 22 23 static nsresult CreateDirectoryIfNotExists(nsIFile* aDir); 24 25 static nsresult ConstructDatabasePrefixPath(nsCOMPtr<nsIFile>& aFile); 26 27 static nsresult ConstructDatabaseFullPath(nsCOMPtr<nsIFile>& aFile, 28 nsIPrincipal* aPrincipal, 29 nsCString& aDatabasePath); 30 31 void ActorDestroy(ActorDestroyReason) override; 32 33 mozilla::ipc::IPCResult RecvRequestStateDelete( 34 RequestStateDeleteResolver&& aResolver); 35 36 mozilla::ipc::IPCResult RecvRequestGroupStateDelete( 37 const nsTArray<uint8_t>& aGroupIdentifier, 38 const nsTArray<uint8_t>& aIdentifier, 39 RequestGroupStateDeleteResolver&& aResolver); 40 41 mozilla::ipc::IPCResult RecvRequestGenerateIdentityKeypair( 42 RequestGenerateIdentityKeypairResolver&& aResolver); 43 44 mozilla::ipc::IPCResult RecvRequestGenerateCredentialBasic( 45 const nsTArray<uint8_t>& aCredContent, 46 RequestGenerateCredentialBasicResolver&& aResolver); 47 48 mozilla::ipc::IPCResult RecvRequestGenerateKeyPackage( 49 const nsTArray<uint8_t>& aIdentifier, 50 const nsTArray<uint8_t>& aCredential, 51 RequestGenerateKeyPackageResolver&& aResolver); 52 53 mozilla::ipc::IPCResult RecvRequestGroupCreate( 54 const nsTArray<uint8_t>& aIdentifier, 55 const nsTArray<uint8_t>& aCredential, 56 const nsTArray<uint8_t>& aInOptGroupIdentifier, 57 RequestGroupCreateResolver&& aResolver); 58 59 mozilla::ipc::IPCResult RecvRequestGroupJoin( 60 const nsTArray<uint8_t>& aIdentifier, const nsTArray<uint8_t>& aWelcome, 61 RequestGroupJoinResolver&& aResolver); 62 63 mozilla::ipc::IPCResult RecvRequestGroupAdd( 64 const nsTArray<uint8_t>& aGroupIdentifier, 65 const nsTArray<uint8_t>& aIdentifier, 66 const nsTArray<uint8_t>& aKeyPackage, 67 RequestGroupAddResolver&& aResolver); 68 69 mozilla::ipc::IPCResult RecvRequestGroupProposeAdd( 70 const nsTArray<uint8_t>& aGroupIdentifier, 71 const nsTArray<uint8_t>& aIdentifier, 72 const nsTArray<uint8_t>& aKeyPackage, 73 RequestGroupProposeAddResolver&& aResolver); 74 75 mozilla::ipc::IPCResult RecvRequestGroupRemove( 76 const nsTArray<uint8_t>& aGroupIdentifier, 77 const nsTArray<uint8_t>& aIdentifier, 78 const nsTArray<uint8_t>& aRemIdentifier, 79 RequestGroupRemoveResolver&& aResolver); 80 81 mozilla::ipc::IPCResult RecvRequestGroupProposeRemove( 82 const nsTArray<uint8_t>& aGroupIdentifier, 83 const nsTArray<uint8_t>& aIdentifier, 84 const nsTArray<uint8_t>& aRemIdentifier, 85 RequestGroupProposeRemoveResolver&& aResolver); 86 87 mozilla::ipc::IPCResult RecvRequestGroupClose( 88 const nsTArray<uint8_t>& aGroupIdentifier, 89 const nsTArray<uint8_t>& aIdentifier, 90 RequestGroupCloseResolver&& aResolver); 91 92 mozilla::ipc::IPCResult RecvRequestGroupDetails( 93 const nsTArray<uint8_t>& aGroupIdentifier, 94 const nsTArray<uint8_t>& aIdentifier, 95 RequestGroupDetailsResolver&& aResolver); 96 97 mozilla::ipc::IPCResult RecvRequestSend( 98 const nsTArray<uint8_t>& aGroupIdentifier, 99 const nsTArray<uint8_t>& aIdentifier, const nsTArray<uint8_t>& aMessage, 100 RequestSendResolver&& aResolver); 101 102 mozilla::ipc::IPCResult RecvRequestReceive( 103 const nsTArray<uint8_t>& aClientIdentifier, 104 const nsTArray<uint8_t>& aMessage, RequestReceiveResolver&& aResolver); 105 106 mozilla::ipc::IPCResult RecvRequestHasPendingProposals( 107 const nsTArray<uint8_t>& aGroupIdentifier, 108 const nsTArray<uint8_t>& aClientIdentifier, 109 RequestHasPendingProposalsResolver&& aResolver); 110 111 mozilla::ipc::IPCResult RecvRequestClearPendingProposals( 112 const nsTArray<uint8_t>& aGroupIdentifier, 113 const nsTArray<uint8_t>& aClientIdentifier, 114 RequestClearPendingProposalsResolver&& aResolver); 115 116 mozilla::ipc::IPCResult RecvRequestHasPendingCommit( 117 const nsTArray<uint8_t>& aGroupIdentifier, 118 const nsTArray<uint8_t>& aClientIdentifier, 119 RequestHasPendingCommitResolver&& aResolver); 120 121 mozilla::ipc::IPCResult RecvRequestClearPendingCommit( 122 const nsTArray<uint8_t>& aGroupIdentifier, 123 const nsTArray<uint8_t>& aClientIdentifier, 124 RequestClearPendingCommitResolver&& aResolver); 125 126 mozilla::ipc::IPCResult RecvRequestApplyPendingCommit( 127 const nsTArray<uint8_t>& aGroupIdentifier, 128 const nsTArray<uint8_t>& aClientIdentifier, 129 RequestApplyPendingCommitResolver&& aResolver); 130 131 mozilla::ipc::IPCResult RecvRequestExportSecret( 132 const nsTArray<uint8_t>& aGroupIdentifier, 133 const nsTArray<uint8_t>& aIdentifier, const nsTArray<uint8_t>& aLabel, 134 const nsTArray<uint8_t>& aContext, uint64_t aLen, 135 RequestExportSecretResolver&& aResolver); 136 137 mozilla::ipc::IPCResult RecvRequestGetGroupIdentifier( 138 const nsTArray<uint8_t>& aMessage, 139 RequestGetGroupIdentifierResolver&& aResolver); 140 141 mozilla::ipc::IPCResult RecvRequestGetGroupEpoch( 142 const nsTArray<uint8_t>& aMessage, 143 RequestGetGroupEpochResolver&& aResolver); 144 145 protected: 146 ~MLSTransactionParent() = default; 147 nsCString mDatabasePath; 148 }; 149 150 } // namespace mozilla::dom 151 152 #endif