| Index: chromeos/dbus/fake_shill_service_client.cc
|
| diff --git a/chromeos/dbus/fake_shill_service_client.cc b/chromeos/dbus/fake_shill_service_client.cc
|
| index 8bb234b8b4389d7248201121f41cc4252b169bac..d4e789c3be959eee3930151391cb3459f7106480 100644
|
| --- a/chromeos/dbus/fake_shill_service_client.cc
|
| +++ b/chromeos/dbus/fake_shill_service_client.cc
|
| @@ -432,6 +432,21 @@ bool FakeShillServiceClient::SetServiceProperty(const std::string& service_path,
|
| provider->SetWithoutPathExpansion(key, value.DeepCopy());
|
| new_properties.SetWithoutPathExpansion(shill::kProviderProperty, provider);
|
| changed_property = shill::kProviderProperty;
|
| + } else if (value.GetType() == base::Value::TYPE_DICTIONARY) {
|
| + const base::DictionaryValue* new_dict = NULL;
|
| + value.GetAsDictionary(&new_dict);
|
| + CHECK(new_dict);
|
| + scoped_ptr<base::Value> cur_value;
|
| + base::DictionaryValue* cur_dict;
|
| + if (dict->RemoveWithoutPathExpansion(property, &cur_value) &&
|
| + cur_value->GetAsDictionary(&cur_dict)) {
|
| + cur_dict->Clear();
|
| + cur_dict->MergeDictionary(new_dict);
|
| + new_properties.SetWithoutPathExpansion(property, cur_value.release());
|
| + } else {
|
| + new_properties.SetWithoutPathExpansion(property, value.DeepCopy());
|
| + }
|
| + changed_property = property;
|
| } else {
|
| new_properties.SetWithoutPathExpansion(property, value.DeepCopy());
|
| changed_property = property;
|
|
|