| Index: chrome/browser/ui/webui/policy_ui_handler.cc
|
| diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
|
| index c4a9b4a6c0e6c4b12b62da774534071095956ab8..af4a749605698043afe6b4e28ca08d7f2f96b752 100644
|
| --- a/chrome/browser/ui/webui/policy_ui_handler.cc
|
| +++ b/chrome/browser/ui/webui/policy_ui_handler.cc
|
| @@ -650,23 +650,29 @@ void PolicyUIHandler::SendPolicyValues() const {
|
| void PolicyUIHandler::GetPolicyValues(const policy::PolicyMap& map,
|
| policy::PolicyErrorMap* errors,
|
| base::DictionaryValue* values) const {
|
| - for (policy::PolicyMap::const_iterator entry = map.begin();
|
| - entry != map.end(); ++entry) {
|
| - base::DictionaryValue* value = new base::DictionaryValue;
|
| - value->Set("value", CopyAndConvert(entry->second.value).release());
|
| - if (entry->second.scope == policy::POLICY_SCOPE_USER)
|
| - value->SetString("scope", "user");
|
| - else
|
| - value->SetString("scope", "machine");
|
| - if (entry->second.level == policy::POLICY_LEVEL_RECOMMENDED)
|
| - value->SetString("level", "recommended");
|
| - else
|
| - value->SetString("level", "mandatory");
|
| - value->SetString("source", kPolicySources[entry->second.source].key);
|
| - base::string16 error = errors->GetErrors(entry->first);
|
| - if (!error.empty())
|
| - value->SetString("error", error);
|
| - values->Set(entry->first, value);
|
| + for (policy::PolicyMap::const_iterator it = map.begin();
|
| + it != map.end(); map.next_dominant(&it)) {
|
| + policy::PolicyMap::const_iterator tail_it = it;
|
| + map.next_dominant(&tail_it);
|
| + base::ListValue* value_list = new base::ListValue;
|
| + for (; it != tail_it; map.next_all(&it)) {
|
| + base::DictionaryValue* value = new base::DictionaryValue;
|
| + value->Set("value", CopyAndConvert(it->second.value).release());
|
| + if (it->second.scope == policy::POLICY_SCOPE_USER)
|
| + value->SetString("scope", "user");
|
| + else
|
| + value->SetString("scope", "machine");
|
| + if (it->second.level == policy::POLICY_LEVEL_RECOMMENDED)
|
| + value->SetString("level", "recommended");
|
| + else
|
| + value->SetString("level", "mandatory");
|
| + value->SetString("source", kPolicySources[it->second.source].key);
|
| + base::string16 error = errors->GetErrors(it->first.name);
|
| + if (!error.empty())
|
| + value->SetString("error", error);
|
| + value_list->Append(value);
|
| + }
|
| + values->Set(it->first.name, value_list);
|
| }
|
| }
|
|
|
|
|