blob: 50ea4ddfa29705e81b1bba2a263812884900feb5 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SERVICES_STORAGE_ORIGIN_CONTEXT_IMPL_H_
#define COMPONENTS_SERVICES_STORAGE_ORIGIN_CONTEXT_IMPL_H_
#include "base/memory/raw_ptr.h"
#include "components/services/storage/public/mojom/origin_context.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "url/origin.h"
namespace storage {
class PartitionImpl;
class OriginContextImpl : public mojom::OriginContext {
public:
OriginContextImpl(PartitionImpl* partition, const url::Origin& origin);
OriginContextImpl(const OriginContextImpl&) = delete;
OriginContextImpl& operator=(const OriginContextImpl&) = delete;
~OriginContextImpl() override;
const mojo::ReceiverSet<mojom::OriginContext>& receivers() const {
return receivers_;
}
void BindReceiver(mojo::PendingReceiver<mojom::OriginContext> receiver);
private:
void OnDisconnect();
const raw_ptr<PartitionImpl> partition_;
const url::Origin origin_;
mojo::ReceiverSet<mojom::OriginContext> receivers_;
};
} // namespace storage
#endif // COMPONENTS_SERVICES_STORAGE_ORIGIN_CONTEXT_IMPL_H_