OLD | NEW |
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 "content/browser/geolocation/network_location_request.h" | 5 #include "content/browser/geolocation/network_location_request.h" |
6 | 6 |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 // Parse the response, ignoring comments. | 304 // Parse the response, ignoring comments. |
305 std::string error_msg; | 305 std::string error_msg; |
306 scoped_ptr<Value> response_value(base::JSONReader::ReadAndReturnError( | 306 scoped_ptr<Value> response_value(base::JSONReader::ReadAndReturnError( |
307 response_body, false, NULL, &error_msg)); | 307 response_body, false, NULL, &error_msg)); |
308 if (response_value == NULL) { | 308 if (response_value == NULL) { |
309 LOG(WARNING) << "ParseServerResponse() : JSONReader failed : " | 309 LOG(WARNING) << "ParseServerResponse() : JSONReader failed : " |
310 << error_msg; | 310 << error_msg; |
311 return false; | 311 return false; |
312 } | 312 } |
313 | 313 |
314 if (!response_value->IsType(Value::TYPE_DICTIONARY)) { | 314 if (!response_value->IsDictionary()) { |
315 VLOG(1) << "ParseServerResponse() : Unexpected resopnse type " | 315 VLOG(1) << "ParseServerResponse() : Unexpected resopnse type " |
316 << response_value->GetType(); | 316 << response_value->GetType(); |
317 return false; | 317 return false; |
318 } | 318 } |
319 const DictionaryValue* response_object = | 319 const DictionaryValue* response_object = |
320 static_cast<DictionaryValue*>(response_value.get()); | 320 static_cast<DictionaryValue*>(response_value.get()); |
321 | 321 |
322 // Get the access token, if any. | 322 // Get the access token, if any. |
323 response_object->GetString(kAccessTokenString, access_token); | 323 response_object->GetString(kAccessTokenString, access_token); |
324 | 324 |
325 // Get the location | 325 // Get the location |
326 Value* location_value = NULL; | 326 Value* location_value = NULL; |
327 if (!response_object->Get(kLocationString, &location_value)) { | 327 if (!response_object->Get(kLocationString, &location_value)) { |
328 VLOG(1) << "ParseServerResponse() : Missing location attribute."; | 328 VLOG(1) << "ParseServerResponse() : Missing location attribute."; |
329 // GLS returns a response with no location property to represent | 329 // GLS returns a response with no location property to represent |
330 // no fix available; return true to indicate successful parse. | 330 // no fix available; return true to indicate successful parse. |
331 return true; | 331 return true; |
332 } | 332 } |
333 DCHECK(location_value); | 333 DCHECK(location_value); |
334 | 334 |
335 if (!location_value->IsType(Value::TYPE_DICTIONARY)) { | 335 if (!location_value->IsDictionary()) { |
336 if (!location_value->IsType(Value::TYPE_NULL)) { | 336 if (!location_value->IsNull()) { |
337 VLOG(1) << "ParseServerResponse() : Unexpected location type " | 337 VLOG(1) << "ParseServerResponse() : Unexpected location type " |
338 << location_value->GetType(); | 338 << location_value->GetType(); |
339 // If the network provider was unable to provide a position fix, it should | 339 // If the network provider was unable to provide a position fix, it should |
340 // return a HTTP 200, with "location" : null. Otherwise it's an error. | 340 // return a HTTP 200, with "location" : null. Otherwise it's an error. |
341 return false; | 341 return false; |
342 } | 342 } |
343 return true; // Successfully parsed response containing no fix. | 343 return true; // Successfully parsed response containing no fix. |
344 } | 344 } |
345 DictionaryValue* location_object = | 345 DictionaryValue* location_object = |
346 static_cast<DictionaryValue*>(location_value); | 346 static_cast<DictionaryValue*>(location_value); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 gateway_data.router_data.begin(); | 444 gateway_data.router_data.begin(); |
445 iter != gateway_data.router_data.end(); | 445 iter != gateway_data.router_data.end(); |
446 iter++) { | 446 iter++) { |
447 DictionaryValue* gateway = new DictionaryValue; | 447 DictionaryValue* gateway = new DictionaryValue; |
448 AddString("mac_address", iter->mac_address, gateway); | 448 AddString("mac_address", iter->mac_address, gateway); |
449 gateways->Append(gateway); | 449 gateways->Append(gateway); |
450 } | 450 } |
451 body_object->Set("gateways", gateways); | 451 body_object->Set("gateways", gateways); |
452 } | 452 } |
453 } // namespace | 453 } // namespace |
OLD | NEW |