• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <utility>
9 
10 #include "base/types/optional_util.h"
11 #include "net/first_party_sets/first_party_set_entry.h"
12 
13 namespace net {
14 
15 FirstPartySetMetadata::FirstPartySetMetadata() = default;
FirstPartySetMetadata(std::optional<FirstPartySetEntry> frame_entry,std::optional<FirstPartySetEntry> top_frame_entry)16 FirstPartySetMetadata::FirstPartySetMetadata(
17     std::optional<FirstPartySetEntry> frame_entry,
18     std::optional<FirstPartySetEntry> top_frame_entry)
19     : frame_entry_(std::move(frame_entry)),
20       top_frame_entry_(std::move(top_frame_entry)) {}
21 
22 FirstPartySetMetadata::FirstPartySetMetadata(FirstPartySetMetadata&&) = default;
23 FirstPartySetMetadata& FirstPartySetMetadata::operator=(
24     FirstPartySetMetadata&&) = default;
25 
26 FirstPartySetMetadata::~FirstPartySetMetadata() = default;
27 
28 bool FirstPartySetMetadata::operator==(
29     const FirstPartySetMetadata& other) const = default;
30 
31 bool FirstPartySetMetadata::operator!=(
32     const FirstPartySetMetadata& other) const = default;
33 
operator <<(std::ostream & os,const FirstPartySetMetadata & metadata)34 std::ostream& operator<<(std::ostream& os,
35                          const FirstPartySetMetadata& metadata) {
36   os << "{" << base::OptionalToPtr(metadata.frame_entry()) << ", "
37      << base::OptionalToPtr(metadata.top_frame_entry()) << "}";
38   return os;
39 }
40 
AreSitesInSameFirstPartySet() const41 bool FirstPartySetMetadata::AreSitesInSameFirstPartySet() const {
42   if (!frame_entry_ || !top_frame_entry_)
43     return false;
44   return frame_entry_->primary() == top_frame_entry_->primary();
45 }
46 
47 }  // namespace net
48