summaryrefslogtreecommitdiffstats
path: root/content/browser/net/browser_online_state_observer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/net/browser_online_state_observer.cc')
-rw-r--r--content/browser/net/browser_online_state_observer.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/content/browser/net/browser_online_state_observer.cc b/content/browser/net/browser_online_state_observer.cc
new file mode 100644
index 0000000..2b0ccd8
--- /dev/null
+++ b/content/browser/net/browser_online_state_observer.cc
@@ -0,0 +1,24 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/net/browser_online_state_observer.h"
+
+#include "content/browser/renderer_host/render_process_host.h"
+#include "content/common/view_messages.h"
+#include "net/base/network_change_notifier.h"
+
+BrowserOnlineStateObserver::BrowserOnlineStateObserver() {
+ net::NetworkChangeNotifier::AddOnlineStateObserver(this);
+}
+
+BrowserOnlineStateObserver::~BrowserOnlineStateObserver() {
+ net::NetworkChangeNotifier::RemoveOnlineStateObserver(this);
+}
+
+void BrowserOnlineStateObserver::OnOnlineStateChanged(bool online) {
+ for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator());
+ !it.IsAtEnd(); it.Advance()) {
+ it.GetCurrentValue()->Send(new ViewMsg_NetworkStateChanged(online));
+ }
+}