1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef SERVICES_NETWORK_PUBLIC_CPP_CROSS_ORIGIN_EMBEDDER_POLICY_H_
6 #define SERVICES_NETWORK_PUBLIC_CPP_CROSS_ORIGIN_EMBEDDER_POLICY_H_
7 
8 #include <string>
9 
10 #include "base/component_export.h"
11 #include "base/optional.h"
12 #include "services/network/public/mojom/cross_origin_embedder_policy.mojom-shared.h"
13 
14 namespace network {
15 
16 // This corresponds to network::mojom::CrossOriginEmbedderPolicy.
17 // See the comments there.
COMPONENT_EXPORT(NETWORK_CPP_BASE)18 struct COMPONENT_EXPORT(NETWORK_CPP_BASE) CrossOriginEmbedderPolicy final {
19   CrossOriginEmbedderPolicy();
20   ~CrossOriginEmbedderPolicy();
21   CrossOriginEmbedderPolicy(const CrossOriginEmbedderPolicy&);
22   CrossOriginEmbedderPolicy(CrossOriginEmbedderPolicy&&);
23   CrossOriginEmbedderPolicy& operator=(const CrossOriginEmbedderPolicy&);
24   CrossOriginEmbedderPolicy& operator=(CrossOriginEmbedderPolicy&&);
25   bool operator==(const CrossOriginEmbedderPolicy&) const;
26 
27   mojom::CrossOriginEmbedderPolicyValue value =
28       mojom::CrossOriginEmbedderPolicyValue::kNone;
29   base::Optional<std::string> reporting_endpoint;
30   mojom::CrossOriginEmbedderPolicyValue report_only_value =
31       mojom::CrossOriginEmbedderPolicyValue::kNone;
32   base::Optional<std::string> report_only_reporting_endpoint;
33 };
34 
35 }  // namespace network
36 
37 #endif  // SERVICES_NETWORK_PUBLIC_CPP_CROSS_ORIGIN_EMBEDDER_POLICY_H_
38