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

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

Issue 7753020: Revert recent changes to base::Value (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_parser.h" 5 #include "chrome/browser/chromeos/cros/network_parser.h"
6 6
7 #include "base/json/json_writer.h" // for debug output only. 7 #include "base/json/json_writer.h" // for debug output only.
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 // Needed only for debug output (ConnectionTypeToString). 9 // Needed only for debug output (ConnectionTypeToString).
10 #include "chrome/browser/chromeos/cros/native_network_constants.h" 10 #include "chrome/browser/chromeos/cros/native_network_constants.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 63
64 bool NetworkDeviceParser::UpdateDeviceFromInfo(const DictionaryValue& info, 64 bool NetworkDeviceParser::UpdateDeviceFromInfo(const DictionaryValue& info,
65 NetworkDevice* device) { 65 NetworkDevice* device) {
66 for (DictionaryValue::key_iterator iter = info.begin_keys(); 66 for (DictionaryValue::key_iterator iter = info.begin_keys();
67 iter != info.end_keys(); ++iter) { 67 iter != info.end_keys(); ++iter) {
68 const std::string& key = *iter; 68 const std::string& key = *iter;
69 Value* value; 69 Value* value;
70 bool result = info.GetWithoutPathExpansion(key, &value); 70 bool result = info.GetWithoutPathExpansion(key, &value);
71 DCHECK(result); 71 DCHECK(result);
72 if (result) 72 if (result)
73 UpdateStatus(key, value, device, NULL); 73 UpdateStatus(key, *value, device, NULL);
74 } 74 }
75 if (VLOG_IS_ON(2)) { 75 if (VLOG_IS_ON(2)) {
76 std::string json; 76 std::string json;
77 base::JSONWriter::Write(&info, true, &json); 77 base::JSONWriter::Write(&info, true, &json);
78 VLOG(2) << "Updated device for path " 78 VLOG(2) << "Updated device for path "
79 << device->device_path() << ": " << json; 79 << device->device_path() << ": " << json;
80 } 80 }
81 return true; 81 return true;
82 } 82 }
83 83
84 bool NetworkDeviceParser::UpdateStatus(const std::string& key, 84 bool NetworkDeviceParser::UpdateStatus(const std::string& key,
85 Value* value, 85 const Value& value,
86 NetworkDevice* device, 86 NetworkDevice* device,
87 PropertyIndex* index) { 87 PropertyIndex* index) {
88 PropertyIndex found_index = mapper().Get(key); 88 PropertyIndex found_index = mapper().Get(key);
89 if (index) 89 if (index)
90 *index = found_index; 90 *index = found_index;
91 if (!ParseValue(found_index, value, device)) { 91 if (!ParseValue(found_index, value, device)) {
92 VLOG(1) << "NetworkDeviceParser: Unhandled key: " << key; 92 VLOG(1) << "NetworkDeviceParser: Unhandled key: " << key;
93 return false; 93 return false;
94 } 94 }
95 if (VLOG_IS_ON(2)) { 95 if (VLOG_IS_ON(2)) {
96 std::string value_json; 96 std::string value_json;
97 base::JSONWriter::Write(value, true, &value_json); 97 base::JSONWriter::Write(&value, true, &value_json);
98 VLOG(2) << "Updated value on device: " 98 VLOG(2) << "Updated value on device: "
99 << device->device_path() << "[" << key << "] = " << value_json; 99 << device->device_path() << "[" << key << "] = " << value_json;
100 } 100 }
101 return true; 101 return true;
102 } 102 }
103 103
104 //----------- Network Parser ----------------- 104 //----------- Network Parser -----------------
105 105
106 NetworkParser::NetworkParser(const EnumMapper<PropertyIndex>* mapper) 106 NetworkParser::NetworkParser(const EnumMapper<PropertyIndex>* mapper)
107 : mapper_(mapper) { 107 : mapper_(mapper) {
(...skipping 19 matching lines...) Expand all
127 bool NetworkParser::UpdateNetworkFromInfo(const DictionaryValue& info, 127 bool NetworkParser::UpdateNetworkFromInfo(const DictionaryValue& info,
128 Network* network) { 128 Network* network) {
129 network->set_unique_id(""); 129 network->set_unique_id("");
130 for (DictionaryValue::key_iterator iter = info.begin_keys(); 130 for (DictionaryValue::key_iterator iter = info.begin_keys();
131 iter != info.end_keys(); ++iter) { 131 iter != info.end_keys(); ++iter) {
132 const std::string& key = *iter; 132 const std::string& key = *iter;
133 Value* value; 133 Value* value;
134 bool res = info.GetWithoutPathExpansion(key, &value); 134 bool res = info.GetWithoutPathExpansion(key, &value);
135 DCHECK(res); 135 DCHECK(res);
136 if (res) 136 if (res)
137 network->UpdateStatus(key, value, NULL); 137 network->UpdateStatus(key, *value, NULL);
138 } 138 }
139 if (network->unique_id().empty()) 139 if (network->unique_id().empty())
140 network->CalculateUniqueId(); 140 network->CalculateUniqueId();
141 VLOG(2) << "Updated network '" << network->name() 141 VLOG(2) << "Updated network '" << network->name()
142 << "' Path:" << network->service_path() << " Type:" 142 << "' Path:" << network->service_path() << " Type:"
143 << ConnectionTypeToString(network->type()); 143 << ConnectionTypeToString(network->type());
144 return true; 144 return true;
145 } 145 }
146 146
147 bool NetworkParser::UpdateStatus(const std::string& key, 147 bool NetworkParser::UpdateStatus(const std::string& key,
148 Value* value, 148 const Value& value,
149 Network* network, 149 Network* network,
150 PropertyIndex* index) { 150 PropertyIndex* index) {
151 PropertyIndex found_index = mapper().Get(key); 151 PropertyIndex found_index = mapper().Get(key);
152 if (index) 152 if (index)
153 *index = found_index; 153 *index = found_index;
154 if (!ParseValue(found_index, value, network)) { 154 if (!ParseValue(found_index, value, network)) {
155 VLOG(1) << "Unhandled key '" << key << "' in Network: " << network->name() 155 VLOG(1) << "Unhandled key '" << key << "' in Network: " << network->name()
156 << " ID: " << network->unique_id() 156 << " ID: " << network->unique_id()
157 << " Type: " << ConnectionTypeToString(network->type()); 157 << " Type: " << ConnectionTypeToString(network->type());
158 return false; 158 return false;
159 } 159 }
160 if (VLOG_IS_ON(2)) { 160 if (VLOG_IS_ON(2)) {
161 std::string value_json; 161 std::string value_json;
162 base::JSONWriter::Write(value, true, &value_json); 162 base::JSONWriter::Write(&value, true, &value_json);
163 VLOG(2) << "Updated value on network: " 163 VLOG(2) << "Updated value on network: "
164 << network->unique_id() << "[" << key << "] = " << value_json; 164 << network->unique_id() << "[" << key << "] = " << value_json;
165 } 165 }
166 return true; 166 return true;
167 } 167 }
168 168
169 bool NetworkParser::ParseValue(PropertyIndex index, 169 bool NetworkParser::ParseValue(PropertyIndex index,
170 Value* value, 170 const Value& value,
171 Network* network) { 171 Network* network) {
172 switch (index) { 172 switch (index) {
173 case PROPERTY_INDEX_TYPE: { 173 case PROPERTY_INDEX_TYPE: {
174 std::string type_string; 174 std::string type_string;
175 if (value->GetAsString(&type_string)) { 175 if (value.GetAsString(&type_string)) {
176 ConnectionType type = ParseType(type_string); 176 ConnectionType type = ParseType(type_string);
177 LOG_IF(ERROR, type != network->type()) 177 LOG_IF(ERROR, type != network->type())
178 << "Network with mismatched type: " << network->service_path() 178 << "Network with mismatched type: " << network->service_path()
179 << " " << type << " != " << network->type(); 179 << " " << type << " != " << network->type();
180 return true; 180 return true;
181 } 181 }
182 break; 182 break;
183 } 183 }
184 case PROPERTY_INDEX_DEVICE: { 184 case PROPERTY_INDEX_DEVICE: {
185 std::string device_path; 185 std::string device_path;
186 if (!value->GetAsString(&device_path)) 186 if (!value.GetAsString(&device_path))
187 break; 187 break;
188 network->set_device_path(device_path); 188 network->set_device_path(device_path);
189 return true; 189 return true;
190 } 190 }
191 case PROPERTY_INDEX_NAME: { 191 case PROPERTY_INDEX_NAME: {
192 std::string name; 192 std::string name;
193 if (value->GetAsString(&name)) { 193 if (value.GetAsString(&name)) {
194 network->SetName(name); 194 network->SetName(name);
195 return true; 195 return true;
196 } 196 }
197 break; 197 break;
198 } 198 }
199 case PROPERTY_INDEX_GUID: { 199 case PROPERTY_INDEX_GUID: {
200 std::string unique_id; 200 std::string unique_id;
201 if (!value->GetAsString(&unique_id)) 201 if (!value.GetAsString(&unique_id))
202 break; 202 break;
203 network->set_unique_id(unique_id); 203 network->set_unique_id(unique_id);
204 return true; 204 return true;
205 } 205 }
206 case PROPERTY_INDEX_PROFILE: { 206 case PROPERTY_INDEX_PROFILE: {
207 // Note: currently this is only provided for non remembered networks. 207 // Note: currently this is only provided for non remembered networks.
208 std::string profile_path; 208 std::string profile_path;
209 if (!value->GetAsString(&profile_path)) 209 if (!value.GetAsString(&profile_path))
210 break; 210 break;
211 network->set_profile_path(profile_path); 211 network->set_profile_path(profile_path);
212 return true; 212 return true;
213 } 213 }
214 case PROPERTY_INDEX_STATE: { 214 case PROPERTY_INDEX_STATE: {
215 std::string state_string; 215 std::string state_string;
216 if (value->GetAsString(&state_string)) { 216 if (value.GetAsString(&state_string)) {
217 network->SetState(ParseState(state_string)); 217 network->SetState(ParseState(state_string));
218 return true; 218 return true;
219 } 219 }
220 break; 220 break;
221 } 221 }
222 case PROPERTY_INDEX_MODE: { 222 case PROPERTY_INDEX_MODE: {
223 std::string mode_string; 223 std::string mode_string;
224 if (value->GetAsString(&mode_string)) { 224 if (value.GetAsString(&mode_string)) {
225 network->mode_ = ParseMode(mode_string); 225 network->mode_ = ParseMode(mode_string);
226 return true; 226 return true;
227 } 227 }
228 break; 228 break;
229 } 229 }
230 case PROPERTY_INDEX_ERROR: { 230 case PROPERTY_INDEX_ERROR: {
231 std::string error_string; 231 std::string error_string;
232 if (value->GetAsString(&error_string)) { 232 if (value.GetAsString(&error_string)) {
233 network->error_ = ParseError(error_string); 233 network->error_ = ParseError(error_string);
234 return true; 234 return true;
235 } 235 }
236 break; 236 break;
237 } 237 }
238 case PROPERTY_INDEX_CONNECTABLE: { 238 case PROPERTY_INDEX_CONNECTABLE: {
239 bool connectable; 239 bool connectable;
240 if (!value->GetAsBoolean(&connectable)) 240 if (!value.GetAsBoolean(&connectable))
241 break; 241 break;
242 network->set_connectable(connectable); 242 network->set_connectable(connectable);
243 return true; 243 return true;
244 } 244 }
245 case PROPERTY_INDEX_IS_ACTIVE: { 245 case PROPERTY_INDEX_IS_ACTIVE: {
246 bool is_active; 246 bool is_active;
247 if (!value->GetAsBoolean(&is_active)) 247 if (!value.GetAsBoolean(&is_active))
248 break; 248 break;
249 network->set_is_active(is_active); 249 network->set_is_active(is_active);
250 return true; 250 return true;
251 } 251 }
252 case PROPERTY_INDEX_AUTO_CONNECT: { 252 case PROPERTY_INDEX_AUTO_CONNECT: {
253 bool auto_connect; 253 bool auto_connect;
254 if (!value->GetAsBoolean(&auto_connect)) 254 if (!value.GetAsBoolean(&auto_connect))
255 break; 255 break;
256 network->set_auto_connect(auto_connect); 256 network->set_auto_connect(auto_connect);
257 return true; 257 return true;
258 } 258 }
259 case PROPERTY_INDEX_SAVE_CREDENTIALS: { 259 case PROPERTY_INDEX_SAVE_CREDENTIALS: {
260 bool save_credentials; 260 bool save_credentials;
261 if (!value->GetAsBoolean(&save_credentials)) 261 if (!value.GetAsBoolean(&save_credentials))
262 break; 262 break;
263 network->set_save_credentials(save_credentials); 263 network->set_save_credentials(save_credentials);
264 return true; 264 return true;
265 } 265 }
266 default: 266 default:
267 break; 267 break;
268 } 268 }
269 return false; 269 return false;
270 } 270 }
271 271
272 } // namespace chromeos 272 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/network_parser.h ('k') | chrome/browser/extensions/extension_bookmarks_module.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698