summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/net
diff options
context:
space:
mode:
authorsatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-09 20:49:41 +0000
committersatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-09 20:49:41 +0000
commit618b02965630875add673a3fb724fd61af50813c (patch)
tree92abe928fed7a1dd36aa9a541637cb794a729b02 /chrome/browser/chromeos/net
parent443190e24253fd6dcbc613c25f740ce3e0c7429d (diff)
downloadchromium_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.cc25
-rw-r--r--chrome/browser/chromeos/net/network_change_notifier_chromeos.h4
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;