chromium/services/network/trust_tokens/trust_token_query_answerer.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 SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_QUERY_ANSWERER_H_
#define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_QUERY_ANSWERER_H_

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "services/network/public/mojom/trust_tokens.mojom.h"
#include "services/network/trust_tokens/pending_trust_token_store.h"
#include "services/network/trust_tokens/suitable_trust_token_origin.h"
#include "services/network/trust_tokens/trust_token_store.h"
#include "url/origin.h"

namespace network {

class SynchronousTrustTokenKeyCommitmentGetter;

// TrustTokenQueryAnswerer is a class bound to a top-level origin, able to
// answer queries about whether the user possesses trust tokens and redemption
// records issued by any issuer origin associated with the top-level origin.
//
// When receiving a HasTrustTokens(issuer) or HasRedemptionRecord(issuer) call,
// the answerer attempts to associate |issuer| with the bound top-level origin;
// if this is not possible, it returns an error (see the TrustTokenQueryAnswerer
// Mojo interface's comment for all possible error returns).
class TrustTokenQueryAnswerer : public mojom::TrustTokenQueryAnswerer {};

}  // namespace network

#endif  // SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_QUERY_ANSWERER_H_