blob: 8a06a7300c59cf87701d701e1e8b25ae16b09435 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/network/data_remover_util.h"
#include "base/containers/flat_set.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "net/base/does_url_match_filter.h"
#include "services/network/public/mojom/clear_data_filter.mojom.h"
namespace network {
net::UrlFilterType ConvertClearDataFilterType(
mojom::ClearDataFilter_Type filter_type) {
return filter_type == mojom::ClearDataFilter_Type::DELETE_MATCHES
? net::UrlFilterType::kTrueIfMatches
: net::UrlFilterType::kFalseIfMatches;
}
base::RepeatingCallback<bool(const GURL&)> BindDoesUrlMatchFilter(
mojom::ClearDataFilter_Type filter_type,
const std::vector<url::Origin>& origins,
const std::vector<std::string>& domains) {
base::flat_set<url::Origin> origin_set(origins.begin(), origins.end());
base::flat_set<std::string> domain_set(domains.begin(), domains.end());
return base::BindRepeating(&net::DoesUrlMatchFilter,
ConvertClearDataFilterType(filter_type),
std::move(origin_set), std::move(domain_set));
}
} // namespace network