Files
tubestation/dom/quota/ErrorHandling.h
Jan Varga 9c64c62ec8 Bug 1866217 - Add a dedicated method for getting cached origin usage; r=dom-storage-reviewers,jari
Cached origin usage can be currently obtained by passing fromMemory=true to
nsIQuotaManagerService::GetUsageForPrincipal. However, supporting both ways of
getting origin on one operation is not ideal for sevaral reasons. The return
value is a plain integer in the case of cached origin usage and getting cached
origin usage in theory doesn't have to go the QM IO thread. So it would be
better to have a dedicated method for that called
nsIQuotaManagerService::GetCachedUsageForPrincipal.

Differential Revision: https://phabricator.services.mozilla.com/D195360
2024-08-12 16:36:38 +00:00

41 lines
1.3 KiB
C++

/* -*- 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/. */
#include "ErrorList.h"
#include "mozilla/dom/quota/ForwardDecls.h"
#include "mozilla/ipc/ProtocolUtils.h"
namespace mozilla::dom::quota {
template <typename ResolverType>
class ResolveResponseAndReturn {
public:
explicit ResolveResponseAndReturn(const ResolverType& aResolver)
: mResolver(aResolver) {}
mozilla::ipc::IPCResult operator()(const nsresult rv) {
mResolver(rv);
return IPC_OK();
}
private:
const ResolverType& mResolver;
};
using ResolveBoolResponseAndReturn =
ResolveResponseAndReturn<mozilla::ipc::BoolResponseResolver>;
using ResolveUInt64ResponseAndReturn =
ResolveResponseAndReturn<mozilla::ipc::UInt64ResponseResolver>;
using ResolveNSResultResponseAndReturn =
ResolveResponseAndReturn<mozilla::ipc::NSResultResponseResolver>;
using ResolveOriginUsageMetadataArrayResponseAndReturn =
ResolveResponseAndReturn<OriginUsageMetadataArrayResponseResolver>;
using ResolveUsageInfoResponseAndReturn =
ResolveResponseAndReturn<UsageInfoResponseResolver>;
} // namespace mozilla::dom::quota