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

Side by Side Diff: chrome/browser/chromeos/cros/network_property_ui_data.cc

Issue 13454006: Moving ManagedNetworkConfigurationHandler to chromeos/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleaned up parsing of NetworkUIData. Created 7 years, 8 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 "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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698