NotifyUtils.cpp (2027B)
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 #include "mozilla/dom/quota/NotifyUtils.h" 8 9 #include "mozilla/RefPtr.h" 10 #include "mozilla/StaticPrefs_dom.h" 11 #include "mozilla/dom/quota/NotifyUtilsCommon.h" 12 #include "mozilla/dom/quota/QuotaManager.h" 13 #include "nsError.h" 14 #include "nsSupportsPrimitives.h" 15 16 namespace mozilla::dom::quota { 17 18 void NotifyStoragePressure(QuotaManager& aQuotaManager, uint64_t aUsage) { 19 aQuotaManager.AssertNotCurrentThreadOwnsQuotaMutex(); 20 21 auto subjectGetter = [usage = aUsage]() { 22 auto wrapper = MakeRefPtr<nsSupportsPRUint64>(); 23 24 MOZ_ALWAYS_SUCCEEDS(wrapper->SetData(usage)); 25 26 return wrapper.forget(); 27 }; 28 29 NotifyObserversOnMainThread("QuotaManager::StoragePressure", 30 std::move(subjectGetter)); 31 } 32 33 void NotifyMaintenanceStarted(QuotaManager& aQuotaManager) { 34 aQuotaManager.AssertIsOnOwningThread(); 35 36 if (!StaticPrefs::dom_quotaManager_testing()) { 37 return; 38 } 39 40 NotifyObserversOnMainThread("QuotaManager::MaintenanceStarted"); 41 } 42 43 void NotifyClientDirectoryOpeningStarted(QuotaManager& aQuotaManager) { 44 aQuotaManager.AssertIsOnOwningThread(); 45 46 if (!StaticPrefs::dom_quotaManager_testing()) { 47 return; 48 } 49 50 NotifyObserversOnMainThread("QuotaManager::ClientDirectoryOpeningStarted"); 51 } 52 53 void NotifyGroupInitializationStarted(QuotaManager& aQuotaManager) { 54 if (!StaticPrefs::dom_quotaManager_testing()) { 55 return; 56 } 57 58 NotifyObserversOnMainThread("QuotaManager::GroupInitializationStarted"); 59 } 60 61 void NotifyOriginInitializationStarted(QuotaManager& aQuotaManager) { 62 if (!StaticPrefs::dom_quotaManager_testing()) { 63 return; 64 } 65 66 NotifyObserversOnMainThread("QuotaManager::OriginInitializationStarted"); 67 } 68 69 } // namespace mozilla::dom::quota