diff options
Diffstat (limited to 'content/browser/net/browser_online_state_observer.cc')
-rw-r--r-- | content/browser/net/browser_online_state_observer.cc | 24 |
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)); + } +} |