Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: chromeos/network/network_state.cc

Issue 21046008: Convert all connect code to use NetworkHandler instead of NetworkLibrary (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restore check VPN PassphraseRequred Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_state.h" 5 #include "chromeos/network/network_state.h"
6 6
7 #include "base/i18n/icu_encoding_detection.h" 7 #include "base/i18n/icu_encoding_detection.h"
8 #include "base/i18n/icu_string_conversions.h" 8 #include "base/i18n/icu_string_conversions.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
13 #include "base/strings/utf_string_conversion_utils.h" 13 #include "base/strings/utf_string_conversion_utils.h"
14 #include "chromeos/network/network_event_log.h" 14 #include "chromeos/network/network_event_log.h"
15 #include "chromeos/network/network_profile_handler.h" 15 #include "chromeos/network/network_profile_handler.h"
16 #include "chromeos/network/network_ui_data.h"
17 #include "chromeos/network/network_util.h" 16 #include "chromeos/network/network_util.h"
18 #include "chromeos/network/onc/onc_utils.h" 17 #include "chromeos/network/onc/onc_utils.h"
19 #include "third_party/cros_system_api/dbus/service_constants.h" 18 #include "third_party/cros_system_api/dbus/service_constants.h"
20 19
21 namespace { 20 namespace {
22 21
23 bool ConvertListValueToStringVector(const base::ListValue& string_list, 22 bool ConvertListValueToStringVector(const base::ListValue& string_list,
24 std::vector<std::string>* result) { 23 std::vector<std::string>* result) {
25 for (size_t i = 0; i < string_list.GetSize(); ++i) { 24 for (size_t i = 0; i < string_list.GetSize(); ++i) {
26 std::string str; 25 std::string str;
(...skipping 17 matching lines...) Expand all
44 } else { 43 } else {
45 const uint32 kReplacementChar = 0xFFFD; 44 const uint32 kReplacementChar = 0xFFFD;
46 // Puts kReplacementChar if character is a control character [0,0x20) 45 // Puts kReplacementChar if character is a control character [0,0x20)
47 // or is not readable UTF8. 46 // or is not readable UTF8.
48 base::WriteUnicodeCharacter(kReplacementChar, &result); 47 base::WriteUnicodeCharacter(kReplacementChar, &result);
49 } 48 }
50 } 49 }
51 return result; 50 return result;
52 } 51 }
53 52
54 // Returns a new NetworkUIData* if |ui_data_value| is a valid NetworkUIData
55 // dictionary string, otherwise returns NULL.
56 chromeos::NetworkUIData* CreateUIDataFromValue(
57 const base::Value& ui_data_value) {
58 std::string ui_data_str;
59 if (!ui_data_value.GetAsString(&ui_data_str))
60 return NULL;
61 if (ui_data_str.empty())
62 return new chromeos::NetworkUIData();
63
64 scoped_ptr<base::DictionaryValue> ui_data_dict(
65 chromeos::onc::ReadDictionaryFromJson(ui_data_str));
66 if (!ui_data_dict)
67 return NULL;
68 return new chromeos::NetworkUIData(*ui_data_dict);
69 }
70
71 } // namespace 53 } // namespace
72 54
73 namespace chromeos { 55 namespace chromeos {
74 56
75 NetworkState::NetworkState(const std::string& path) 57 NetworkState::NetworkState(const std::string& path)
76 : ManagedState(MANAGED_TYPE_NETWORK, path), 58 : ManagedState(MANAGED_TYPE_NETWORK, path),
77 auto_connect_(false), 59 auto_connect_(false),
78 favorite_(false), 60 favorite_(false),
79 priority_(0), 61 priority_(0),
80 onc_source_(onc::ONC_SOURCE_NONE),
81 prefix_length_(0), 62 prefix_length_(0),
82 signal_strength_(0), 63 signal_strength_(0),
83 connectable_(false), 64 connectable_(false),
84 activate_over_non_cellular_networks_(false), 65 activate_over_non_cellular_networks_(false),
85 cellular_out_of_credits_(false) { 66 cellular_out_of_credits_(false) {
86 } 67 }
87 68
88 NetworkState::~NetworkState() { 69 NetworkState::~NetworkState() {
89 } 70 }
90 71
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // Warning: The DictionaryValue returned from 126 // Warning: The DictionaryValue returned from
146 // ReadDictionaryFromJson/JSONParser is an optimized derived class that 127 // ReadDictionaryFromJson/JSONParser is an optimized derived class that
147 // doesn't allow releasing ownership of nested values. A Swap in the wrong 128 // doesn't allow releasing ownership of nested values. A Swap in the wrong
148 // order leads to memory access errors. 129 // order leads to memory access errors.
149 proxy_config_.MergeDictionary(proxy_config_dict.get()); 130 proxy_config_.MergeDictionary(proxy_config_dict.get());
150 } else { 131 } else {
151 NET_LOG_ERROR("Failed to parse " + key, path()); 132 NET_LOG_ERROR("Failed to parse " + key, path());
152 } 133 }
153 return true; 134 return true;
154 } else if (key == flimflam::kUIDataProperty) { 135 } else if (key == flimflam::kUIDataProperty) {
155 if (!GetOncSource(value, &onc_source_)) { 136 if (!GetUIDataFromValue(value, &ui_data_)) {
156 NET_LOG_ERROR("Failed to parse " + key, path()); 137 NET_LOG_ERROR("Failed to parse " + key, path());
157 return false; 138 return false;
158 } 139 }
159 return true; 140 return true;
160 } else if (key == flimflam::kNetworkTechnologyProperty) { 141 } else if (key == flimflam::kNetworkTechnologyProperty) {
161 return GetStringValue(key, value, &network_technology_); 142 return GetStringValue(key, value, &network_technology_);
162 } else if (key == flimflam::kDeviceProperty) { 143 } else if (key == flimflam::kDeviceProperty) {
163 return GetStringValue(key, value, &device_path_); 144 return GetStringValue(key, value, &device_path_);
164 } else if (key == flimflam::kGuidProperty) { 145 } else if (key == flimflam::kGuidProperty) {
165 return GetStringValue(key, value, &guid_); 146 return GetStringValue(key, value, &guid_);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 253
273 bool NetworkState::IsConnectedState() const { 254 bool NetworkState::IsConnectedState() const {
274 return StateIsConnected(connection_state_); 255 return StateIsConnected(connection_state_);
275 } 256 }
276 257
277 bool NetworkState::IsConnectingState() const { 258 bool NetworkState::IsConnectingState() const {
278 return StateIsConnecting(connection_state_); 259 return StateIsConnecting(connection_state_);
279 } 260 }
280 261
281 bool NetworkState::IsManaged() const { 262 bool NetworkState::IsManaged() const {
282 return onc_source_ == onc::ONC_SOURCE_DEVICE_POLICY || 263 return ui_data_.onc_source() == onc::ONC_SOURCE_DEVICE_POLICY ||
283 onc_source_ == onc::ONC_SOURCE_USER_POLICY; 264 ui_data_.onc_source() == onc::ONC_SOURCE_USER_POLICY;
284 } 265 }
285 266
286 bool NetworkState::IsPrivate() const { 267 bool NetworkState::IsPrivate() const {
287 return !profile_path_.empty() && 268 return !profile_path_.empty() &&
288 profile_path_ != NetworkProfileHandler::kSharedProfilePath; 269 profile_path_ != NetworkProfileHandler::kSharedProfilePath;
289 } 270 }
290 271
291 std::string NetworkState::GetDnsServersAsString() const { 272 std::string NetworkState::GetDnsServersAsString() const {
292 std::string result; 273 std::string result;
293 for (size_t i = 0; i < dns_servers_.size(); ++i) { 274 for (size_t i = 0; i < dns_servers_.size(); ++i) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 connection_state == flimflam::kStateConfiguration || 369 connection_state == flimflam::kStateConfiguration ||
389 connection_state == flimflam::kStateCarrier); 370 connection_state == flimflam::kStateCarrier);
390 } 371 }
391 372
392 // static 373 // static
393 std::string NetworkState::IPConfigProperty(const char* key) { 374 std::string NetworkState::IPConfigProperty(const char* key) {
394 return base::StringPrintf("%s.%s", shill::kIPConfigProperty, key); 375 return base::StringPrintf("%s.%s", shill::kIPConfigProperty, key);
395 } 376 }
396 377
397 // static 378 // static
398 bool NetworkState::GetOncSource(const base::Value& ui_data_value, 379 bool NetworkState::GetUIDataFromValue(const base::Value& ui_data_value,
399 onc::ONCSource* out) { 380 NetworkUIData* out) {
400 scoped_ptr<NetworkUIData> ui_data(CreateUIDataFromValue(ui_data_value)); 381 std::string ui_data_str;
401 if (!ui_data) 382 if (!ui_data_value.GetAsString(&ui_data_str))
402 return false; 383 return false;
403 *out = ui_data->onc_source(); 384 if (ui_data_str.empty()) {
385 *out = NetworkUIData();
386 return true;
387 }
388 scoped_ptr<base::DictionaryValue> ui_data_dict(
389 chromeos::onc::ReadDictionaryFromJson(ui_data_str));
390 if (!ui_data_dict)
391 return false;
392 *out = NetworkUIData(*ui_data_dict);
404 return true; 393 return true;
405 } 394 }
406 395
407 } // namespace chromeos 396 } // namespace chromeos
OLDNEW
« chromeos/network/network_connection_handler.cc ('K') | « chromeos/network/network_state.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698