| 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 "chrome/browser/chromeos/cros/network_ui_data.h" |    5 #include "chrome/browser/chromeos/cros/network_property_ui_data.h" | 
|    6  |    6  | 
|    7 #include "base/logging.h" |    7 #include "base/values.h" | 
|    8 #include "chrome/browser/chromeos/cros/network_library.h" |    8 #include "chromeos/network/network_ui_data.h" | 
|    9  |    9  | 
|   10 namespace chromeos { |   10 namespace chromeos { | 
|   11  |   11  | 
|   12 // Top-level UI data dictionary keys. |  | 
|   13 const char NetworkUIData::kKeyONCSource[] = "onc_source"; |  | 
|   14 const char NetworkUIData::kKeyCertificatePattern[] = "certificate_pattern"; |  | 
|   15 const char NetworkUIData::kKeyCertificateType[] = "certificate_type"; |  | 
|   16  |  | 
|   17 // Property names for per-property data stored under |kKeyProperties|. |  | 
|   18 const EnumMapper<onc::ONCSource>::Pair |  | 
|   19     NetworkUIData::kONCSourceTable[] =  { |  | 
|   20   { "user_import", onc::ONC_SOURCE_USER_IMPORT }, |  | 
|   21   { "device_policy", onc::ONC_SOURCE_DEVICE_POLICY }, |  | 
|   22   { "user_policy", onc::ONC_SOURCE_USER_POLICY }, |  | 
|   23 }; |  | 
|   24  |  | 
|   25 // Property names for per-property data stored under |kKeyProperties|. |  | 
|   26 const EnumMapper<ClientCertType>::Pair |  | 
|   27     NetworkUIData::kClientCertTable[] =  { |  | 
|   28   { "none", CLIENT_CERT_TYPE_NONE }, |  | 
|   29   { "pattern", CLIENT_CERT_TYPE_PATTERN }, |  | 
|   30   { "ref", CLIENT_CERT_TYPE_REF }, |  | 
|   31 }; |  | 
|   32  |  | 
|   33 // Property names for the per-property dictionary. |   12 // Property names for the per-property dictionary. | 
|   34 const char NetworkPropertyUIData::kKeyController[] = "controller"; |   13 const char NetworkPropertyUIData::kKeyController[] = "controller"; | 
|   35 const char NetworkPropertyUIData::kKeyDefaultValue[] = "default_value"; |   14 const char NetworkPropertyUIData::kKeyDefaultValue[] = "default_value"; | 
|   36  |   15  | 
|   37 NetworkUIData::NetworkUIData() |  | 
|   38     : onc_source_(onc::ONC_SOURCE_NONE), |  | 
|   39       certificate_type_(CLIENT_CERT_TYPE_NONE) { |  | 
|   40 } |  | 
|   41  |  | 
|   42 NetworkUIData::NetworkUIData(const DictionaryValue& dict) { |  | 
|   43   std::string source; |  | 
|   44   if (dict.GetString(kKeyONCSource, &source)) { |  | 
|   45     onc_source_ = GetONCSourceMapper().Get(source); |  | 
|   46   } else { |  | 
|   47     onc_source_ = onc::ONC_SOURCE_NONE; |  | 
|   48   } |  | 
|   49   const DictionaryValue* cert_dict = NULL; |  | 
|   50   if (dict.GetDictionary(kKeyCertificatePattern, &cert_dict) && cert_dict) |  | 
|   51     certificate_pattern_.CopyFromDictionary(*cert_dict); |  | 
|   52   std::string type_string; |  | 
|   53   if (dict.GetString(kKeyCertificateType, &type_string)) { |  | 
|   54     certificate_type_ = GetClientCertMapper().Get(type_string); |  | 
|   55   } else { |  | 
|   56     certificate_type_ = CLIENT_CERT_TYPE_NONE; |  | 
|   57   } |  | 
|   58   DCHECK(certificate_type_ != CLIENT_CERT_TYPE_PATTERN || |  | 
|   59          (certificate_type_ == CLIENT_CERT_TYPE_PATTERN && |  | 
|   60           !certificate_pattern_.Empty())); |  | 
|   61 } |  | 
|   62  |  | 
|   63 NetworkUIData::~NetworkUIData() { |  | 
|   64 } |  | 
|   65  |  | 
|   66 void NetworkUIData::FillDictionary(base::DictionaryValue* dict) const { |  | 
|   67   dict->Clear(); |  | 
|   68  |  | 
|   69   std::string source_string(GetONCSourceMapper().GetKey(onc_source_)); |  | 
|   70   if (!source_string.empty()) |  | 
|   71     dict->SetString(kKeyONCSource, source_string); |  | 
|   72   std::string type_string(GetClientCertMapper().GetKey(certificate_type_)); |  | 
|   73   switch (certificate_type_) { |  | 
|   74     case CLIENT_CERT_TYPE_REF: |  | 
|   75       dict->SetString(kKeyCertificateType, "ref"); |  | 
|   76       break; |  | 
|   77     case CLIENT_CERT_TYPE_PATTERN: |  | 
|   78       dict->SetString(kKeyCertificateType, "pattern"); |  | 
|   79       if (!certificate_pattern_.Empty()) { |  | 
|   80         dict->Set(kKeyCertificatePattern, |  | 
|   81                   certificate_pattern_.CreateAsDictionary()); |  | 
|   82       } |  | 
|   83     case CLIENT_CERT_TYPE_NONE: |  | 
|   84     default: |  | 
|   85       break; |  | 
|   86   } |  | 
|   87 } |  | 
|   88  |  | 
|   89 // static |  | 
|   90 EnumMapper<onc::ONCSource>& NetworkUIData::GetONCSourceMapper() { |  | 
|   91   CR_DEFINE_STATIC_LOCAL(EnumMapper<onc::ONCSource>, mapper, |  | 
|   92                          (kONCSourceTable, arraysize(kONCSourceTable), |  | 
|   93                           onc::ONC_SOURCE_NONE)); |  | 
|   94   return mapper; |  | 
|   95 } |  | 
|   96  |  | 
|   97 // static |  | 
|   98 EnumMapper<ClientCertType>& NetworkUIData::GetClientCertMapper() { |  | 
|   99   CR_DEFINE_STATIC_LOCAL(EnumMapper<ClientCertType>, mapper, |  | 
|  100                          (kClientCertTable, arraysize(kClientCertTable), |  | 
|  101                           CLIENT_CERT_TYPE_NONE)); |  | 
|  102   return mapper; |  | 
|  103 } |  | 
|  104  |  | 
|  105 NetworkPropertyUIData::NetworkPropertyUIData() |   16 NetworkPropertyUIData::NetworkPropertyUIData() | 
|  106     : controller_(CONTROLLER_USER) { |   17     : controller_(CONTROLLER_USER) { | 
|  107 } |   18 } | 
|  108  |   19  | 
|  109 NetworkPropertyUIData::~NetworkPropertyUIData() { |   20 NetworkPropertyUIData::~NetworkPropertyUIData() { | 
|  110 } |   21 } | 
|  111  |   22  | 
|  112 NetworkPropertyUIData::NetworkPropertyUIData( |   23 NetworkPropertyUIData::NetworkPropertyUIData( | 
|  113     const NetworkUIData& ui_data) { |   24     const NetworkUIData& ui_data) { | 
|  114   Reset(ui_data); |   25   Reset(ui_data); | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
|  142     if (recommended_keys->Find(basename_value) != recommended_keys->end()) { |   53     if (recommended_keys->Find(basename_value) != recommended_keys->end()) { | 
|  143       controller_ = CONTROLLER_USER; |   54       controller_ = CONTROLLER_USER; | 
|  144       const base::Value* default_value = NULL; |   55       const base::Value* default_value = NULL; | 
|  145       if (onc->Get(property_key, &default_value)) |   56       if (onc->Get(property_key, &default_value)) | 
|  146         default_value_.reset(default_value->DeepCopy()); |   57         default_value_.reset(default_value->DeepCopy()); | 
|  147     } |   58     } | 
|  148   } |   59   } | 
|  149 } |   60 } | 
|  150  |   61  | 
|  151 }  // namespace chromeos |   62 }  // namespace chromeos | 
| OLD | NEW |