| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/network/network_util.h" | 5 #include "chromeos/network/network_util.h" |
| 6 | 6 |
| 7 #include "base/strings/string_tokenizer.h" | 7 #include "base/strings/string_tokenizer.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "chromeos/login/login_state.h" | 10 #include "chromeos/login/login_state.h" |
| 11 #include "chromeos/network/device_state.h" |
| 11 #include "chromeos/network/managed_network_configuration_handler.h" | 12 #include "chromeos/network/managed_network_configuration_handler.h" |
| 12 #include "chromeos/network/network_state.h" | 13 #include "chromeos/network/network_state.h" |
| 13 #include "chromeos/network/network_state_handler.h" | 14 #include "chromeos/network/network_state_handler.h" |
| 14 #include "chromeos/network/network_ui_data.h" | 15 #include "chromeos/network/network_ui_data.h" |
| 15 #include "chromeos/network/onc/onc_signature.h" | 16 #include "chromeos/network/onc/onc_signature.h" |
| 16 #include "chromeos/network/onc/onc_translation_tables.h" | 17 #include "chromeos/network/onc/onc_translation_tables.h" |
| 17 #include "chromeos/network/onc/onc_translator.h" | 18 #include "chromeos/network/onc/onc_translator.h" |
| 18 #include "third_party/cros_system_api/dbus/service_constants.h" | 19 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 19 | 20 |
| 20 namespace chromeos { | 21 namespace chromeos { |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 dict->GetStringWithoutPathExpansion(shill::kTechnologyProperty, | 140 dict->GetStringWithoutPathExpansion(shill::kTechnologyProperty, |
| 140 &scan_result.technology); | 141 &scan_result.technology); |
| 141 scan_results->push_back(scan_result); | 142 scan_results->push_back(scan_result); |
| 142 } | 143 } |
| 143 return true; | 144 return true; |
| 144 } | 145 } |
| 145 | 146 |
| 146 scoped_ptr<base::DictionaryValue> TranslateNetworkStateToONC( | 147 scoped_ptr<base::DictionaryValue> TranslateNetworkStateToONC( |
| 147 const NetworkState* network) { | 148 const NetworkState* network) { |
| 148 // Get the properties from the NetworkState. | 149 // Get the properties from the NetworkState. |
| 149 base::DictionaryValue shill_dictionary; | 150 scoped_ptr<base::DictionaryValue> shill_dictionary(new base::DictionaryValue); |
| 150 network->GetStateProperties(&shill_dictionary); | 151 network->GetStateProperties(shill_dictionary.get()); |
| 152 |
| 153 // Get any Device properties required to translate state. |
| 154 if (NetworkTypePattern::Cellular().MatchesType(network->type())) { |
| 155 // We need to set Device[Cellular.ProviderRequiresRoaming] so that |
| 156 // Cellular[RoamingState] can be set correctly for badging network icons. |
| 157 const DeviceState* device = |
| 158 NetworkHandler::Get()->network_state_handler()->GetDeviceState( |
| 159 network->device_path()); |
| 160 if (device) { |
| 161 scoped_ptr<base::DictionaryValue> device_dict(new base::DictionaryValue); |
| 162 device_dict->SetBooleanWithoutPathExpansion( |
| 163 shill::kProviderRequiresRoamingProperty, |
| 164 device->provider_requires_roaming()); |
| 165 shill_dictionary->SetWithoutPathExpansion(shill::kDeviceProperty, |
| 166 device_dict.release()); |
| 167 } |
| 168 } |
| 151 | 169 |
| 152 // NetworkState is always associated with the primary user profile, regardless | 170 // NetworkState is always associated with the primary user profile, regardless |
| 153 // of what profile is associated with the page that calls this method. We do | 171 // of what profile is associated with the page that calls this method. We do |
| 154 // not expose any sensitive properties in the resulting dictionary, it is | 172 // not expose any sensitive properties in the resulting dictionary, it is |
| 155 // only used to show connection state and icons. | 173 // only used to show connection state and icons. |
| 156 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); | 174 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); |
| 157 ::onc::ONCSource onc_source = ::onc::ONC_SOURCE_NONE; | 175 ::onc::ONCSource onc_source = ::onc::ONC_SOURCE_NONE; |
| 158 NetworkHandler::Get() | 176 NetworkHandler::Get() |
| 159 ->managed_network_configuration_handler() | 177 ->managed_network_configuration_handler() |
| 160 ->FindPolicyByGUID(user_id_hash, network->guid(), &onc_source); | 178 ->FindPolicyByGUID(user_id_hash, network->guid(), &onc_source); |
| 161 | 179 |
| 162 scoped_ptr<base::DictionaryValue> onc_dictionary = | 180 scoped_ptr<base::DictionaryValue> onc_dictionary = |
| 163 TranslateShillServiceToONCPart(shill_dictionary, onc_source, | 181 TranslateShillServiceToONCPart(*shill_dictionary, onc_source, |
| 164 &onc::kNetworkWithStateSignature); | 182 &onc::kNetworkWithStateSignature); |
| 165 return onc_dictionary.Pass(); | 183 return onc_dictionary.Pass(); |
| 166 } | 184 } |
| 167 | 185 |
| 168 scoped_ptr<base::ListValue> TranslateNetworkListToONC( | 186 scoped_ptr<base::ListValue> TranslateNetworkListToONC( |
| 169 NetworkTypePattern pattern, | 187 NetworkTypePattern pattern, |
| 170 bool configured_only, | 188 bool configured_only, |
| 171 bool visible_only, | 189 bool visible_only, |
| 172 int limit, | 190 int limit, |
| 173 bool debugging_properties) { | 191 bool debugging_properties) { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 203 std::string TranslateShillTypeToONC(const std::string& shill_type) { | 221 std::string TranslateShillTypeToONC(const std::string& shill_type) { |
| 204 if (shill_type == shill::kTypeEthernet) | 222 if (shill_type == shill::kTypeEthernet) |
| 205 return ::onc::network_type::kEthernet; | 223 return ::onc::network_type::kEthernet; |
| 206 std::string onc_type; | 224 std::string onc_type; |
| 207 onc::TranslateStringToONC(onc::kNetworkTypeTable, shill_type, &onc_type); | 225 onc::TranslateStringToONC(onc::kNetworkTypeTable, shill_type, &onc_type); |
| 208 return onc_type; | 226 return onc_type; |
| 209 } | 227 } |
| 210 | 228 |
| 211 } // namespace network_util | 229 } // namespace network_util |
| 212 } // namespace chromeos | 230 } // namespace chromeos |
| OLD | NEW |