xref: /aosp_15_r20/external/cronet/net/first_party_sets/first_party_set_metadata.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/first_party_sets/first_party_set_metadata.h"
6 
7 #include <tuple>
8 
9 #include "base/types/optional_util.h"
10 #include "net/first_party_sets/first_party_set_entry.h"
11 
12 namespace net {
13 
14 FirstPartySetMetadata::FirstPartySetMetadata() = default;
FirstPartySetMetadata(const FirstPartySetEntry * frame_entry,const FirstPartySetEntry * top_frame_entry)15 FirstPartySetMetadata::FirstPartySetMetadata(
16     const FirstPartySetEntry* frame_entry,
17     const FirstPartySetEntry* top_frame_entry)
18     : frame_entry_(base::OptionalFromPtr(frame_entry)),
19       top_frame_entry_(base::OptionalFromPtr(top_frame_entry)) {}
20 
21 FirstPartySetMetadata::FirstPartySetMetadata(FirstPartySetMetadata&&) = default;
22 FirstPartySetMetadata& FirstPartySetMetadata::operator=(
23     FirstPartySetMetadata&&) = default;
24 
25 FirstPartySetMetadata::~FirstPartySetMetadata() = default;
26 
27 bool FirstPartySetMetadata::operator==(
28     const FirstPartySetMetadata& other) const = default;
29 
30 bool FirstPartySetMetadata::operator!=(
31     const FirstPartySetMetadata& other) const = default;
32 
operator <<(std::ostream & os,const FirstPartySetMetadata & metadata)33 std::ostream& operator<<(std::ostream& os,
34                          const FirstPartySetMetadata& metadata) {
35   os << "{" << base::OptionalToPtr(metadata.frame_entry()) << ", "
36      << base::OptionalToPtr(metadata.top_frame_entry()) << "}";
37   return os;
38 }
39 
AreSitesInSameFirstPartySet() const40 bool FirstPartySetMetadata::AreSitesInSameFirstPartySet() const {
41   if (!frame_entry_ || !top_frame_entry_)
42     return false;
43   return frame_entry_->primary() == top_frame_entry_->primary();
44 }
45 
46 }  // namespace net
47