| 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/onc/onc_validator.h" | 5 #include "chromeos/network/onc/onc_validator.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 + "Field name '" + field_name + "' is unknown."; | 171 + "Field name '" + field_name + "' is unknown."; |
| 172 if (error_on_unknown_field_) | 172 if (error_on_unknown_field_) |
| 173 LOG(ERROR) << message; | 173 LOG(ERROR) << message; |
| 174 else | 174 else |
| 175 LOG(WARNING) << message; | 175 LOG(WARNING) << message; |
| 176 } | 176 } |
| 177 | 177 |
| 178 return result.Pass(); | 178 return result.Pass(); |
| 179 } | 179 } |
| 180 | 180 |
| 181 scoped_ptr<base::ListValue> Validator::MapArray( |
| 182 const OncValueSignature& array_signature, |
| 183 const base::ListValue& onc_array, |
| 184 bool* nested_error) { |
| 185 bool nested_error_in_current_array = false; |
| 186 scoped_ptr<base::ListValue> result = Mapper::MapArray( |
| 187 array_signature, onc_array, &nested_error_in_current_array); |
| 188 |
| 189 // Drop individual networks and certificates instead of rejecting all of |
| 190 // the configuration. |
| 191 if (nested_error_in_current_array && |
| 192 &array_signature != &kNetworkConfigurationListSignature && |
| 193 &array_signature != &kCertificateListSignature) { |
| 194 *nested_error = nested_error_in_current_array; |
| 195 } |
| 196 return result.Pass(); |
| 197 } |
| 198 |
| 181 scoped_ptr<base::Value> Validator::MapEntry(int index, | 199 scoped_ptr<base::Value> Validator::MapEntry(int index, |
| 182 const OncValueSignature& signature, | 200 const OncValueSignature& signature, |
| 183 const base::Value& onc_value, | 201 const base::Value& onc_value, |
| 184 bool* error) { | 202 bool* error) { |
| 185 std::string str = base::IntToString(index); | 203 std::string str = base::IntToString(index); |
| 186 path_.push_back(str); | 204 path_.push_back(str); |
| 187 scoped_ptr<base::Value> result = | 205 scoped_ptr<base::Value> result = |
| 188 Mapper::MapEntry(index, signature, onc_value, error); | 206 Mapper::MapEntry(index, signature, onc_value, error); |
| 189 DCHECK_EQ(str, path_.back()); | 207 DCHECK_EQ(str, path_.back()); |
| 190 path_.pop_back(); | 208 path_.pop_back(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 &recommended_value)) { | 241 &recommended_value)) { |
| 224 return true; | 242 return true; |
| 225 } | 243 } |
| 226 base::ListValue* recommended_list; | 244 base::ListValue* recommended_list; |
| 227 recommended_value->GetAsList(&recommended_list); | 245 recommended_value->GetAsList(&recommended_list); |
| 228 CHECK(recommended_list != NULL); | 246 CHECK(recommended_list != NULL); |
| 229 | 247 |
| 230 recommended.reset(recommended_list); | 248 recommended.reset(recommended_list); |
| 231 | 249 |
| 232 if (!managed_onc_) { | 250 if (!managed_onc_) { |
| 251 error_or_warning_found_ = true; |
| 233 LOG(WARNING) << WarningHeader() << "Found the field '" << onc::kRecommended | 252 LOG(WARNING) << WarningHeader() << "Found the field '" << onc::kRecommended |
| 234 << "' in an unmanaged ONC. Removing it."; | 253 << "' in an unmanaged ONC. Removing it."; |
| 235 return true; | 254 return true; |
| 236 } | 255 } |
| 237 | 256 |
| 238 scoped_ptr<base::ListValue> repaired_recommended(new base::ListValue); | 257 scoped_ptr<base::ListValue> repaired_recommended(new base::ListValue); |
| 239 for (base::ListValue::iterator it = recommended->begin(); | 258 for (base::ListValue::iterator it = recommended->begin(); |
| 240 it != recommended->end(); ++it) { | 259 it != recommended->end(); ++it) { |
| 241 std::string field_name; | 260 std::string field_name; |
| 242 if (!(*it)->GetAsString(&field_name)) { | 261 if (!(*it)->GetAsString(&field_name)) { |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 } | 725 } |
| 707 | 726 |
| 708 std::string Validator::MessageHeader(bool is_error) { | 727 std::string Validator::MessageHeader(bool is_error) { |
| 709 std::string path = path_.empty() ? "toplevel" : JoinString(path_, "."); | 728 std::string path = path_.empty() ? "toplevel" : JoinString(path_, "."); |
| 710 std::string message = "At " + path + ": "; | 729 std::string message = "At " + path + ": "; |
| 711 return message; | 730 return message; |
| 712 } | 731 } |
| 713 | 732 |
| 714 } // namespace onc | 733 } // namespace onc |
| 715 } // namespace chromeos | 734 } // namespace chromeos |
| OLD | NEW |