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)16FirstPartySetMetadata::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)34std::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() const41bool 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