diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-09 20:49:41 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-09 20:49:41 +0000 |
commit | 618b02965630875add673a3fb724fd61af50813c (patch) | |
tree | 92abe928fed7a1dd36aa9a541637cb794a729b02 /chrome/browser/chromeos/net | |
parent | 443190e24253fd6dcbc613c25f740ce3e0c7429d (diff) | |
download | chromium_src-618b02965630875add673a3fb724fd61af50813c.zip chromium_src-618b02965630875add673a3fb724fd61af50813c.tar.gz chromium_src-618b02965630875add673a3fb724fd61af50813c.tar.bz2 |
Split NetworkChangeNotifierChromeos shutdown.
The previous attempt crrev.com/109120 was reverted, as it crashed
BrowserMainTest (sorry about that!). This patch contains a fix for the issue.
Explicitly shutdown the network change notifier before
DBusThreadManager's shutdown.
Like crrev.com/108564, the motivation is to solve a dependency
issue between NetworkChangeNotifierChromeos and DBusThreadManager,
that'll replace CrosLibrary (i.e. NetworkChangeNotifierChromeos
will be using DBusThreadManager internally once sque's change
is checked in).
BUG=chromium-os:22459
TEST=networking on Chrome OS works as before. out/Release/unit_tests --gtest_filter=BrowserMainTest.*
Review URL: http://codereview.chromium.org/8501037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109295 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/net')
-rw-r--r-- | chrome/browser/chromeos/net/network_change_notifier_chromeos.cc | 25 | ||||
-rw-r--r-- | chrome/browser/chromeos/net/network_change_notifier_chromeos.h | 4 |
2 files changed, 18 insertions, 11 deletions
diff --git a/chrome/browser/chromeos/net/network_change_notifier_chromeos.cc b/chrome/browser/chromeos/net/network_change_notifier_chromeos.cc index 44b5604..4536d48 100644 --- a/chrome/browser/chromeos/net/network_change_notifier_chromeos.cc +++ b/chrome/browser/chromeos/net/network_change_notifier_chromeos.cc @@ -73,6 +73,20 @@ NetworkChangeNotifierChromeos::NetworkChangeNotifierChromeos() } NetworkChangeNotifierChromeos::~NetworkChangeNotifierChromeos() { +} + +void NetworkChangeNotifierChromeos::Init() { + chromeos::NetworkLibrary* network_library = + chromeos::CrosLibrary::Get()->GetNetworkLibrary(); + network_library->AddNetworkManagerObserver(this); + + chromeos::CrosLibrary::Get()->GetPowerLibrary() + ->AddObserver(this); + + UpdateNetworkState(network_library); +} + +void NetworkChangeNotifierChromeos::Shutdown() { if (online_notification_task_) { online_notification_task_->Cancel(); online_notification_task_ = NULL; @@ -89,17 +103,6 @@ NetworkChangeNotifierChromeos::~NetworkChangeNotifierChromeos() { power->RemoveObserver(this); } -void NetworkChangeNotifierChromeos::Init() { - chromeos::NetworkLibrary* network_library = - chromeos::CrosLibrary::Get()->GetNetworkLibrary(); - network_library->AddNetworkManagerObserver(this); - - chromeos::CrosLibrary::Get()->GetPowerLibrary() - ->AddObserver(this); - - UpdateNetworkState(network_library); -} - void NetworkChangeNotifierChromeos::PowerChanged( const PowerSupplyStatus& status) { } diff --git a/chrome/browser/chromeos/net/network_change_notifier_chromeos.h b/chrome/browser/chromeos/net/network_change_notifier_chromeos.h index eeedce3..58d3612 100644 --- a/chrome/browser/chromeos/net/network_change_notifier_chromeos.h +++ b/chrome/browser/chromeos/net/network_change_notifier_chromeos.h @@ -30,6 +30,10 @@ class NetworkChangeNotifierChromeos // from the power manager and the network manager. void Init(); + // Shutdowns the network change notifier. Stops observing changes from + // the power manager and the network manager. + void Shutdown(); + private: friend class OnlineStatusReportThreadTask; |