| Index: chromeos/network/network_state.cc
|
| diff --git a/chromeos/network/network_state.cc b/chromeos/network/network_state.cc
|
| index bd53eae5d141dd190c160e18d13a9109b7993f55..99332f2ac964e31e81d01de6dc718d2da67291aa 100644
|
| --- a/chromeos/network/network_state.cc
|
| +++ b/chromeos/network/network_state.cc
|
| @@ -165,6 +165,27 @@ bool NetworkState::PropertyChanged(const std::string& key,
|
| NET_LOG(ERROR) << "Failed to parse " << path() << "." << key;
|
| }
|
| return true;
|
| + } else if (key == shill::kProviderProperty) {
|
| + const base::DictionaryValue* dict;
|
| + std::string provider_type;
|
| + if (!value.GetAsDictionary(&dict) ||
|
| + !dict->GetStringWithoutPathExpansion(shill::kTypeProperty,
|
| + &provider_type)) {
|
| + return false;
|
| + }
|
| +
|
| + if (provider_type != shill::kProviderThirdPartyVpn) {
|
| + // If the network uses the built-in OpenVPN and L2TP support, set the
|
| + // provider ID to an empty string.
|
| + vpn_provider_id_.clear();
|
| + return true;
|
| + }
|
| +
|
| + // If the network uses a third-party VPN provider, set the provider ID to
|
| + // the third-party VPN provider's extension ID, which is held in the
|
| + // |shill::kHostProperty|.
|
| + return dict->GetStringWithoutPathExpansion(shill::kHostProperty,
|
| + &vpn_provider_id_);
|
| }
|
| return false;
|
| }
|
|
|