// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_DNS_PUBLIC_DOH_PROVIDER_ENTRY_H_ #define NET_DNS_PUBLIC_DOH_PROVIDER_ENTRY_H_ #include <optional> #include <set> #include <string> #include <string_view> #include <vector> #include "base/feature_list.h" #include "base/memory/raw_ptr.h" #include "base/memory/raw_ptr_exclusion.h" #include "net/base/ip_address.h" #include "net/base/net_export.h" #include "net/dns/public/dns_over_https_server_config.h" namespace net { // Represents insecure DNS, DoT, and DoH services run by the same provider. // These entries are used to support upgrade from insecure DNS or DoT services // to associated DoH services in automatic mode and to populate the dropdown // menu for secure mode. // // To be eligible for auto-upgrade, an entry must have a non-empty // `dns_over_53_server_ip_strs` or non-empty `dns_over_tls_hostnames`. To be // eligible for the dropdown menu, the entry must have non-empty `ui_name` and // `privacy_policy`. If `display_globally` is true, the entry is eligible to be // displayed globally in the dropdown menu. If `display_globally` is false, // `display_countries` should contain the two-letter ISO 3166-1 country codes, // if any, where the entry is eligible for being displayed in the dropdown menu. // // If `feature` is disabled, the entry is eligible for neither auto-upgrade nor // the dropdown menu. struct NET_EXPORT DohProviderEntry { … }; } // namespace net #endif // NET_DNS_PUBLIC_DOH_PROVIDER_ENTRY_H_