Index: chrome/browser/chromeos/proxy_config_service_impl.cc |
diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc |
index 97b6aefc4dfdb2bf27747e79959187d507a5020a..bd37a469d14e14f44078f0a87a5890237c48c584 100644 |
--- a/chrome/browser/chromeos/proxy_config_service_impl.cc |
+++ b/chrome/browser/chromeos/proxy_config_service_impl.cc |
@@ -526,17 +526,23 @@ void ProxyConfigServiceImpl::OnProxyConfigChanged( |
void ProxyConfigServiceImpl::OnSettingsOpCompleted( |
SignedSettings::ReturnCode code, |
- std::string value) { |
+ const base::Value* value) { |
+ // We assume ownership here to make sure this gets deleted no matter where |
+ // this function ends. |
+ scoped_ptr<const base::Value> own_value(value); |
+ |
retrieve_property_op_ = NULL; |
if (code != SignedSettings::SUCCESS) { |
LOG(WARNING) << this << ": Error retrieving proxy setting from device"; |
device_config_.clear(); |
return; |
} |
- VLOG(1) << this << ": Retrieved proxy setting from device, value=[" |
- << value << "]"; |
+ std::string policy_value; |
+ value->GetAsString(&policy_value); |
+ VLOG(1) << "Retrieved proxy setting from device, value=[" |
+ << policy_value << "]"; |
ProxyConfig device_config; |
- if (!device_config.DeserializeForDevice(value) || |
+ if (!device_config.DeserializeForDevice(policy_value) || |
!device_config.SerializeForNetwork(&device_config_)) { |
LOG(WARNING) << "Can't deserialize device setting or serialize for network"; |
device_config_.clear(); |