| Index: chromeos/network/network_state_handler.h
|
| diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h
|
| index 2477c1a7a6b71690732674c92fa03f561d367dbc..90b5105a5fbc2716ec78b0f299fb30b10d909488 100644
|
| --- a/chromeos/network/network_state_handler.h
|
| +++ b/chromeos/network/network_state_handler.h
|
| @@ -81,6 +81,10 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
|
|
| ~NetworkStateHandler() override;
|
|
|
| + // Called just before destruction to give observers a chance to remove
|
| + // themselves and disable any networking.
|
| + void Shutdown();
|
| +
|
| // Add/remove observers.
|
| void AddObserver(NetworkStateHandlerObserver* observer,
|
| const tracked_objects::Location& from_here);
|
| @@ -374,14 +378,14 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| scoped_ptr<internal::ShillPropertyHandler> shill_property_handler_;
|
|
|
| // Observer list
|
| - base::ObserverList<NetworkStateHandlerObserver> observers_;
|
| + base::ObserverList<NetworkStateHandlerObserver, true> observers_;
|
|
|
| // List of managed network states
|
| ManagedStateList network_list_;
|
|
|
| // Set to true when the network list is sorted, cleared when network updates
|
| // arrive. Used to trigger sorting when needed.
|
| - bool network_list_sorted_;
|
| + bool network_list_sorted_ = false;
|
|
|
| // List of managed device states
|
| ManagedStateList device_list_;
|
| @@ -396,6 +400,9 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| // NetworkState that is not saved in a profile.
|
| SpecifierGuidMap specifier_guid_map_;
|
|
|
| + // Ensure that Shutdown() gets called exactly once.
|
| + bool did_shutdown_ = false;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NetworkStateHandler);
|
| };
|
|
|
|
|