| Index: chromeos/network/network_state_handler.h
|
| diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h
|
| index 2d2914b2a91ba8454ae1192d395ced6419b5a217..a4f16f5cdf5320f5563ad034afa0d8cab0e59b40 100644
|
| --- a/chromeos/network/network_state_handler.h
|
| +++ b/chromeos/network/network_state_handler.h
|
| @@ -136,7 +136,7 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| // Like ConnectedNetworkByType() but returns any matching visible network or
|
| // NULL. Mostly useful for mobile networks where there is generally only one
|
| // network. Note: O(N).
|
| - const NetworkState* FirstNetworkByType(const NetworkTypePattern& type) const;
|
| + const NetworkState* FirstNetworkByType(const NetworkTypePattern& type);
|
|
|
| // Returns the aa:bb formatted hardware (MAC) address for the first connected
|
| // network matching |type|, or an empty string if none is connected.
|
| @@ -145,10 +145,10 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
|
|
| // Convenience method to call GetNetworkListByType(visible=true).
|
| void GetVisibleNetworkListByType(const NetworkTypePattern& type,
|
| - NetworkStateList* list) const;
|
| + NetworkStateList* list);
|
|
|
| // Convenience method for GetVisibleNetworkListByType(Default).
|
| - void GetVisibleNetworkList(NetworkStateList* list) const;
|
| + void GetVisibleNetworkList(NetworkStateList* list);
|
|
|
| // Sets |list| to contain the list of networks with matching |type| and the
|
| // following properties:
|
| @@ -157,12 +157,14 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| // |limit| - if > 0 limits the number of results.
|
| // The returned list contains a copy of NetworkState pointers which should not
|
| // be stored or used beyond the scope of the calling function (i.e. they may
|
| - // later become invalid, but only on the UI thread).
|
| + // later become invalid, but only on the UI thread). SortNetworkList() will be
|
| + // called if necessary to provide the states in a convenient order (see
|
| + // SortNetworkList for details).
|
| void GetNetworkListByType(const NetworkTypePattern& type,
|
| bool configured_only,
|
| bool visible_only,
|
| int limit,
|
| - NetworkStateList* list) const;
|
| + NetworkStateList* list);
|
|
|
| // Finds and returns the NetworkState associated with |service_path| or NULL
|
| // if not found. If |configured_only| is true, only returns saved entries
|
| @@ -220,7 +222,7 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| // EAP parameters used by the ethernet with |service_path|. If |service_path|
|
| // doesn't refer to an ethernet service or if the ethernet service is not
|
| // connected using EAP, returns NULL.
|
| - const NetworkState* GetEAPForEthernet(const std::string& service_path) const;
|
| + const NetworkState* GetEAPForEthernet(const std::string& service_path);
|
|
|
| const std::string& default_network_path() const {
|
| return default_network_path_;
|
| @@ -244,11 +246,6 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| virtual void UpdateManagedList(ManagedState::ManagedType type,
|
| const base::ListValue& entries) OVERRIDE;
|
|
|
| - // Updates the visibility of entries in |network_list_|. This should not
|
| - // contain entries that are not in |network_list_|. Any such entries will be
|
| - // ignored with an error message.
|
| - virtual void UpdateVisibleNetworks(const base::ListValue& entries) OVERRIDE;
|
| -
|
| // The list of profiles changed (i.e. a user has logged in). Re-request
|
| // properties for all services since they may have changed.
|
| virtual void ProfileListChanged() OVERRIDE;
|
| @@ -290,8 +287,7 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
|
|
| // Called by |shill_property_handler_| when the service or device list has
|
| // changed and all entries have been updated. This updates the list and
|
| - // notifies observers. If |type| == TYPE_NETWORK this also calls
|
| - // CheckDefaultNetworkChanged().
|
| + // notifies observers.
|
| virtual void ManagedStateListChanged(
|
| ManagedState::ManagedType type) OVERRIDE;
|
|
|
| @@ -311,6 +307,18 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| friend class NetworkStateHandlerTest;
|
| FRIEND_TEST_ALL_PREFIXES(NetworkStateHandlerTest, NetworkStateHandlerStub);
|
|
|
| + // Sorts the network list. Called when all network updates have been received,
|
| + // or when the network list is requested but the list is in an unsorted state.
|
| + // Networks are sorted as follows, maintaining the existing relative ordering:
|
| + // * Connected or connecting networks (should be listed first by Shill)
|
| + // * Visible non-wifi networks
|
| + // * Visible wifi networks
|
| + // * Hidden (wifi) networks
|
| + void SortNetworkList();
|
| +
|
| + // Updates UMA stats. Called once after all requested networks are updated.
|
| + void UpdateNetworkStats();
|
| +
|
| // NetworkState specific method for UpdateManagedStateProperties which
|
| // notifies observers.
|
| void UpdateNetworkStateProperties(NetworkState* network,
|
| @@ -363,6 +371,10 @@ class CHROMEOS_EXPORT NetworkStateHandler
|
| // 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_;
|
| +
|
| // List of managed device states
|
| ManagedStateList device_list_;
|
|
|
|
|