blob: 62038e8bbb1a17c8696aff163011722376e76ba4 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/first_party_sets/first_party_sets_context_config.h"
#include "net/first_party_sets/first_party_set_entry_override.h"
namespace net {
FirstPartySetsContextConfig::FirstPartySetsContextConfig() = default;
FirstPartySetsContextConfig::FirstPartySetsContextConfig(
base::flat_map<SchemefulSite, FirstPartySetEntryOverride> customizations)
: customizations_(std::move(customizations)) {}
FirstPartySetsContextConfig::FirstPartySetsContextConfig(
FirstPartySetsContextConfig&& other) = default;
FirstPartySetsContextConfig& FirstPartySetsContextConfig::operator=(
FirstPartySetsContextConfig&& other) = default;
FirstPartySetsContextConfig::~FirstPartySetsContextConfig() = default;
FirstPartySetsContextConfig FirstPartySetsContextConfig::Clone() const {
return FirstPartySetsContextConfig(customizations_);
}
bool FirstPartySetsContextConfig::operator==(
const FirstPartySetsContextConfig& other) const = default;
absl::optional<FirstPartySetEntryOverride>
FirstPartySetsContextConfig::FindOverride(const SchemefulSite& site) const {
if (const auto it = customizations_.find(site); it != customizations_.end()) {
return it->second;
}
return absl::nullopt;
}
bool FirstPartySetsContextConfig::Contains(const SchemefulSite& site) const {
return FindOverride(site).has_value();
}
bool FirstPartySetsContextConfig::ForEachCustomizationEntry(
base::FunctionRef<bool(const SchemefulSite&,
const FirstPartySetEntryOverride&)> f) const {
for (const auto& [site, override] : customizations_) {
if (!f(site, override))
return false;
}
return true;
}
} // namespace net