| 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();
|
|
|