Home | History | Annotate | Download | only in cros
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/chromeos/cros/network_property_ui_data.h"
      6 
      7 #include "base/values.h"
      8 
      9 namespace chromeos {
     10 
     11 NetworkPropertyUIData::NetworkPropertyUIData()
     12     : onc_source_(onc::ONC_SOURCE_NONE) {
     13 }
     14 
     15 NetworkPropertyUIData::NetworkPropertyUIData(onc::ONCSource onc_source)
     16     : onc_source_(onc_source) {
     17 }
     18 
     19 NetworkPropertyUIData::~NetworkPropertyUIData() {
     20 }
     21 
     22 void NetworkPropertyUIData::ParseOncProperty(onc::ONCSource onc_source,
     23                                              const base::DictionaryValue* onc,
     24                                              const std::string& property_key) {
     25   default_value_.reset();
     26   onc_source_ = onc_source;
     27 
     28   if (!onc || !IsManaged())
     29     return;
     30 
     31   size_t pos = property_key.find_last_of('.');
     32   std::string recommended_property_key;
     33   std::string property_basename(property_key);
     34   if (pos != std::string::npos) {
     35     recommended_property_key = property_key.substr(0, pos + 1);
     36     property_basename = property_key.substr(pos + 1);
     37   }
     38   recommended_property_key += "Recommended";
     39 
     40   const base::ListValue* recommended_keys = NULL;
     41   if (onc->GetList(recommended_property_key, &recommended_keys)) {
     42     base::StringValue basename_value(property_basename);
     43     if (recommended_keys->Find(basename_value) != recommended_keys->end()) {
     44       onc_source_ = onc::ONC_SOURCE_NONE;
     45       const base::Value* default_value = NULL;
     46       if (onc->Get(property_key, &default_value))
     47         default_value_.reset(default_value->DeepCopy());
     48     }
     49   }
     50 }
     51 
     52 }  // namespace chromeos
     53