// 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 NET_DNS_SYSTEM_DNS_CONFIG_CHANGE_NOTIFIER_H_ #define NET_DNS_SYSTEM_DNS_CONFIG_CHANGE_NOTIFIER_H_ #include <memory> #include <optional> #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h" #include "net/base/net_export.h" #include "net/dns/dns_config.h" namespace net { class DnsConfigService; // Notifier that can be subscribed to to listen for changes to system DNS // configuration. Expected to only be used internally to HostResolverManager and // NetworkChangeNotifier. Other classes are expected to subscribe to // NetworkChangeNotifier::AddDNSObserver() to subscribe to listen to both system // config changes and configuration applied on top by Chrome. // // This class is thread and sequence safe except that RemoveObserver() must be // called on the same sequence as the matched AddObserver() call. // // TODO(crbug.com/40630884): Use this class in HostResolverManager. class NET_EXPORT_PRIVATE SystemDnsConfigChangeNotifier { … }; } // namespace net #endif // NET_DNS_SYSTEM_DNS_CONFIG_CHANGE_NOTIFIER_H_