1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_NET_SECURE_DNS_UTIL_H_
#define CHROME_BROWSER_NET_SECURE_DNS_UTIL_H_
#include <memory>
#include <vector>
#include "chrome/browser/net/dns_probe_runner.h"
#include "components/country_codes/country_codes.h"
#include "net/dns/public/dns_over_https_config.h"
#include "net/dns/public/doh_provider_entry.h"
#include "services/network/public/cpp/network_context_getter.h"
class PrefRegistrySimple;
class PrefService;
namespace chrome_browser_net::secure_dns {
// Returns the subsequence of `providers` that are marked for use in the
// specified country.
net::DohProviderEntry::List ProvidersForCountry(
const net::DohProviderEntry::List& providers,
country_codes::CountryId country_id);
// Returns the subsequence of `providers` that are enabled, according to their
// `net::DohProviderEntry::feature` members.
net::DohProviderEntry::List SelectEnabledProviders(
const net::DohProviderEntry::List& providers);
void UpdateValidationHistogram(bool valid);
void UpdateProbeHistogram(bool success);
// Returns a DNS prober configured for testing DoH servers
std::unique_ptr<DnsProbeRunner> MakeProbeRunner(
net::DnsOverHttpsConfig doh_config,
const network::NetworkContextGetter& network_context_getter);
// Registers the backup preference required for the DNS probes setting reset.
// TODO(crbug.com/40122991): Remove this once the privacy settings redesign
// is fully launched.
void RegisterProbesSettingBackupPref(PrefRegistrySimple* registry);
// Backs up the unneeded preference controlling DNS and captive portal probes
// once the privacy settings redesign is enabled, or restores the backup
// in case the feature is rolled back.
// TODO(crbug.com/40122991): Remove this once the privacy settings redesign
// is fully launched.
void MigrateProbesSettingToOrFromBackup(PrefService* prefs);
} // namespace chrome_browser_net::secure_dns
#endif // CHROME_BROWSER_NET_SECURE_DNS_UTIL_H_
|