tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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