tor-browser

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

LSInitializationTypes.h (1448B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      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 file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #ifndef DOM_LOCALSTORAGE_INITIALIZATIONTYPES_H_
      8 #define DOM_LOCALSTORAGE_INITIALIZATIONTYPES_H_
      9 
     10 #include <mozilla/dom/quota/FirstInitializationAttempts.h>
     11 
     12 #include "mozilla/TypedEnumBits.h"
     13 #include "nsTHashMap.h"
     14 
     15 namespace mozilla {
     16 struct CreateIfNonExistent;
     17 }
     18 
     19 namespace mozilla::dom {
     20 
     21 enum class LSOriginInitialization {
     22  None = 0,
     23  Datastore = 1 << 0,
     24 };
     25 
     26 MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(LSOriginInitialization)
     27 
     28 using LSOriginInitializationInfo =
     29    quota::FirstInitializationAttempts<LSOriginInitialization, Nothing>;
     30 
     31 class LSInitializationInfo final {
     32  nsTHashMap<nsCStringHashKey, LSOriginInitializationInfo>
     33      mOriginInitializationInfos;
     34 
     35 public:
     36  LSOriginInitializationInfo& MutableOriginInitializationInfoRef(
     37      const nsACString& aOrigin) {
     38    return *mOriginInitializationInfos.Lookup(aOrigin);
     39  }
     40 
     41  LSOriginInitializationInfo& MutableOriginInitializationInfoRef(
     42      const nsACString& aOrigin, const CreateIfNonExistent&) {
     43    return mOriginInitializationInfos.LookupOrInsert(aOrigin);
     44  }
     45 };
     46 
     47 }  // namespace mozilla::dom
     48 
     49 #endif  // DOM_LOCALSTORAGE_INITIALIZATIONTYPES_H_