| Index: chromeos/network/network_state_handler.cc
|
| diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
|
| index 5f4738a6cdfa0335e61aa025d72dfdf589114e36..1d521d9d507835c2bc8d041f96d2f9515a8d4bd9 100644
|
| --- a/chromeos/network/network_state_handler.cc
|
| +++ b/chromeos/network/network_state_handler.cc
|
| @@ -67,15 +67,24 @@ std::string ValueAsString(const base::Value& value) {
|
| const char NetworkStateHandler::kDefaultCheckPortalList[] =
|
| "ethernet,wifi,cellular";
|
|
|
| -NetworkStateHandler::NetworkStateHandler() : network_list_sorted_(false) {
|
| -}
|
| +NetworkStateHandler::NetworkStateHandler() {}
|
|
|
| NetworkStateHandler::~NetworkStateHandler() {
|
| - FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, IsShuttingDown());
|
| + // Normally Shutdown() will get called in ~NetworkHandler, however unit
|
| + // tests do not use that class so this needs to call Shutdown when we
|
| + // destry the class.
|
| + if (!did_shutdown_)
|
| + Shutdown();
|
| STLDeleteContainerPointers(network_list_.begin(), network_list_.end());
|
| STLDeleteContainerPointers(device_list_.begin(), device_list_.end());
|
| }
|
|
|
| +void NetworkStateHandler::Shutdown() {
|
| + DCHECK(!did_shutdown_);
|
| + did_shutdown_ = true;
|
| + FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_, OnShuttingDown());
|
| +}
|
| +
|
| void NetworkStateHandler::InitShillPropertyHandler() {
|
| shill_property_handler_.reset(new internal::ShillPropertyHandler(this));
|
| shill_property_handler_->Init();
|
| @@ -92,20 +101,27 @@ void NetworkStateHandler::AddObserver(
|
| NetworkStateHandlerObserver* observer,
|
| const tracked_objects::Location& from_here) {
|
| observers_.AddObserver(observer);
|
| - device_event_log::AddEntry(from_here.file_name(), from_here.line_number(),
|
| - device_event_log::LOG_TYPE_NETWORK,
|
| - device_event_log::LOG_LEVEL_DEBUG,
|
| - "NetworkStateHandler::AddObserver");
|
| + device_event_log::AddEntry(
|
| + from_here.file_name(), from_here.line_number(),
|
| + device_event_log::LOG_TYPE_NETWORK, device_event_log::LOG_LEVEL_DEBUG,
|
| + base::StringPrintf("NetworkStateHandler::AddObserver: 0x%p", observer));
|
| +
|
| + LOG(ERROR) << "ADD Observer: " << from_here.file_name() << ":"
|
| + << from_here.line_number() << ": " << observer;
|
| }
|
|
|
| void NetworkStateHandler::RemoveObserver(
|
| NetworkStateHandlerObserver* observer,
|
| const tracked_objects::Location& from_here) {
|
| observers_.RemoveObserver(observer);
|
| - device_event_log::AddEntry(from_here.file_name(), from_here.line_number(),
|
| - device_event_log::LOG_TYPE_NETWORK,
|
| - device_event_log::LOG_LEVEL_DEBUG,
|
| - "NetworkStateHandler::RemoveObserver");
|
| + device_event_log::AddEntry(
|
| + from_here.file_name(), from_here.line_number(),
|
| + device_event_log::LOG_TYPE_NETWORK, device_event_log::LOG_LEVEL_DEBUG,
|
| + base::StringPrintf("NetworkStateHandler::RemoveObserver: 0x%p",
|
| + observer));
|
| +
|
| + LOG(ERROR) << "REM Observer: " << from_here.file_name() << ":"
|
| + << from_here.line_number() << ": " << observer;
|
| }
|
|
|
| NetworkStateHandler::TechnologyState NetworkStateHandler::GetTechnologyState(
|
|
|