Commit 3c023b91 authored by Steven Bennetts's avatar Steven Bennetts Committed by Commit Bot

Network config: cr-network-select: Ensure connected network is default

Bug: 792865
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I403b8d512bb6d7c8d0e4c6947a8704544ef0f27a
Reviewed-on: https://chromium-review.googlesource.com/956312Reviewed-by: default avatarAlexander Alekseev <alemate@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541940}
parent 848ef69a
......@@ -153,28 +153,32 @@ Polymer({
this.ensureCellularNetwork_(networkStates);
this.networkStateList_ = networkStates;
var defaultNetwork;
if (networkStates.length > 0) {
// Handle an edge case where Ethernet is connecting.
if (networkStates.length > 1 &&
networkStates[0].ConnectionState ==
CrOnc.ConnectionState.CONNECTING &&
networkStates[1].ConnectionState == CrOnc.ConnectionState.CONNECTED) {
defaultNetwork = networkStates[1];
} else {
defaultNetwork = networkStates[0];
for (var i = 0; i < networkStates.length; ++i) {
var state = networkStates[i];
if (state.ConnectionState == CrOnc.ConnectionState.CONNECTED) {
defaultNetwork = state;
break;
}
if (state.ConnectionState == CrOnc.ConnectionState.CONNECTING &&
!defaultNetwork) {
defaultNetwork = state;
// Do not break here in case a non WiFi network is connecting but a
// WiFi network is connected.
} else if (state.Type == CrOnc.Type.WI_FI) {
break; // Non connecting or connected WiFI networks are always last.
}
} else if (!this.defaultNetworkState_) {
return; // No change
}
if (defaultNetwork && this.defaultNetworkState_ &&
defaultNetwork.GUID == this.defaultNetworkState_.GUID &&
defaultNetwork.ConnectionState ==
this.defaultNetworkState_.ConnectionState) {
if ((!defaultNetwork && !this.defaultNetworkState_) ||
(defaultNetwork && this.defaultNetworkState_ &&
defaultNetwork.GUID == this.defaultNetworkState_.GUID &&
defaultNetwork.ConnectionState ==
this.defaultNetworkState_.ConnectionState)) {
return; // No change to network or ConnectionState
}
this.defaultNetworkState_ =
this.defaultNetworkState_ = defaultNetwork ?
/** @type {!CrOnc.NetworkStateProperties|undefined} */ (
Object.assign({}, defaultNetwork));
Object.assign({}, defaultNetwork)) :
undefined;
this.fire('default-network-changed', defaultNetwork);
},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment