910e62b5创建于 1月15日历史提交
// Copyright 2022 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_TEST_CLIENT_SECURITY_STATE_BUILDER_H_
#define SERVICES_NETWORK_TEST_CLIENT_SECURITY_STATE_BUILDER_H_

#include "services/network/public/mojom/client_security_state.mojom.h"

namespace network {

namespace mojom {
enum class PrivateNetworkRequestPolicy;
enum class IPAddressSpace;
}  // namespace mojom

struct CrossOriginEmbedderPolicy;

class ClientSecurityStateBuilder {
 public:
  ClientSecurityStateBuilder() = default;
  ~ClientSecurityStateBuilder() = default;

  ClientSecurityStateBuilder& WithPrivateNetworkRequestPolicy(
      network::mojom::PrivateNetworkRequestPolicy policy);

  ClientSecurityStateBuilder& WithIPAddressSpace(
      network::mojom::IPAddressSpace space);

  ClientSecurityStateBuilder& WithIsSecureContext(bool is_secure_context);

  ClientSecurityStateBuilder& WithCrossOriginEmbedderPolicy(
      network::CrossOriginEmbedderPolicy policy);

  network::mojom::ClientSecurityStatePtr Build() const;

 private:
  network::mojom::ClientSecurityState state_;
};
}  // namespace network

#endif  // SERVICES_NETWORK_TEST_CLIENT_SECURITY_STATE_BUILDER_H_