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)15FirstPartySetMetadata::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)33std::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() const40bool 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