chromium/content/browser/quota/quota_context.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_BROWSER_QUOTA_QUOTA_CONTEXT_H_
#define CONTENT_BROWSER_QUOTA_QUOTA_CONTEXT_H_

#include <memory>

#include "base/memory/ref_counted_delete_on_sequence.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
#include "content/browser/quota/quota_change_dispatcher.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "storage/browser/quota/quota_settings.h"
#include "storage/browser/quota/special_storage_policy.h"
#include "third_party/blink/public/mojom/quota/quota_manager_host.mojom-forward.h"

namespace base {
class FilePath;
class SingleThreadTaskRunner;
}  // namespace base

namespace blink {
class StorageKey;
}  // namespace blink

namespace storage {
class QuotaManager;
class SpecialStoragePolicy;
}  // namespace storage

namespace content {

class QuotaManagerHost;

// Owns the Quota sub-system for a StoragePartition.
//
// Each StoragePartition instance owns exactly one instance of QuotaContext.
//
// The reference counting is an unfortunate consequence of the need to interact
// with QuotaManager on the I/O thread, and will probably disappear when
// QuotaManager moves to the Storage Service.
class QuotaContext : public base::RefCountedDeleteOnSequence<QuotaContext> {};

}  // namespace content

#endif  // CONTENT_BROWSER_QUOTA_QUOTA_CONTEXT_H_