chromium/services/network/trust_tokens/trust_token_request_helper_factory.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_REQUEST_HELPER_FACTORY_H_
#define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_FACTORY_H_

#include <memory>

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "net/http/http_request_headers.h"
#include "net/log/net_log_with_source.h"
#include "services/network/public/cpp/features.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_key_commitment_getter.h"
#include "services/network/trust_tokens/trust_token_request_helper.h"
#include "services/network/trust_tokens/trust_token_request_issuance_helper.h"

namespace network {

namespace internal {

// These are the possible results of constructing a Trust Tokens request helper;
// exposed in the header file for use in tests. Please do not use them directly
// outside of the class's implementation.
//
// Additionally, since this enum is used in histograms:
// 1. please do not reorder or delete values;
// 2. the values must be kept in sync with the enum of the same name in
// enums.xml.
enum class TrustTokenRequestHelperFactoryOutcome {};

}  // namespace internal

class TrustTokenStatusOrRequestHelper;

// TrustTokenRequestHelperFactory dispatches a helper capable for executing a
// Trust Tokens (https://github.com/wicg/trust-token-api) operation against a
// single request.
class TrustTokenRequestHelperFactory {};

class TrustTokenStatusOrRequestHelper {};

}  // namespace network

#endif  // SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_FACTORY_H_