Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Unified Diff: net/base/network_change_notifier.cc

Issue 7737034: Revert 99677 (didn't help) - Revert 99666 (sync tests started failing on mac10.6: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/base/network_change_notifier.h ('k') | net/base/network_change_notifier_linux.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/network_change_notifier.cc
===================================================================
--- net/base/network_change_notifier.cc (revision 99692)
+++ net/base/network_change_notifier.cc (working copy)
@@ -90,6 +90,13 @@
}
}
+void NetworkChangeNotifier::AddDNSObserver(DNSObserver* observer) {
+ if (g_network_change_notifier) {
+ g_network_change_notifier->resolver_state_observer_list_->AddObserver(
+ observer);
+ }
+}
+
void NetworkChangeNotifier::RemoveIPAddressObserver(
IPAddressObserver* observer) {
if (g_network_change_notifier) {
@@ -106,13 +113,23 @@
}
}
+void NetworkChangeNotifier::RemoveDNSObserver(DNSObserver* observer) {
+ if (g_network_change_notifier) {
+ g_network_change_notifier->resolver_state_observer_list_->RemoveObserver(
+ observer);
+ }
+}
+
NetworkChangeNotifier::NetworkChangeNotifier()
: ip_address_observer_list_(
new ObserverListThreadSafe<IPAddressObserver>(
ObserverListBase<IPAddressObserver>::NOTIFY_EXISTING_ONLY)),
online_state_observer_list_(
new ObserverListThreadSafe<OnlineStateObserver>(
- ObserverListBase<OnlineStateObserver>::NOTIFY_EXISTING_ONLY)) {
+ ObserverListBase<OnlineStateObserver>::NOTIFY_EXISTING_ONLY)),
+ resolver_state_observer_list_(
+ new ObserverListThreadSafe<DNSObserver>(
+ ObserverListBase<DNSObserver>::NOTIFY_EXISTING_ONLY)) {
DCHECK(!g_network_change_notifier);
g_network_change_notifier = this;
}
@@ -124,6 +141,13 @@
}
}
+void NetworkChangeNotifier::NotifyObserversOfDNSChange() {
+ if (g_network_change_notifier) {
+ g_network_change_notifier->resolver_state_observer_list_->Notify(
+ &DNSObserver::OnDNSChanged);
+ }
+}
+
void NetworkChangeNotifier::NotifyObserversOfOnlineStateChange() {
if (g_network_change_notifier) {
g_network_change_notifier->online_state_observer_list_->Notify(
« no previous file with comments | « net/base/network_change_notifier.h ('k') | net/base/network_change_notifier_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698