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
41 lines
1.3 KiB
C++
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
|