| Index: chrome/browser/ui/webui/options2/chromeos/core_chromeos_options_handler.cc
 | 
| diff --git a/chrome/browser/ui/webui/options2/chromeos/core_chromeos_options_handler.cc b/chrome/browser/ui/webui/options2/chromeos/core_chromeos_options_handler.cc
 | 
| index 77961b80096b2ac7d93379e026d9ee9c165e8d4d..50c1c7b381e434318fafd1b7744df7750a28a47d 100644
 | 
| --- a/chrome/browser/ui/webui/options2/chromeos/core_chromeos_options_handler.cc
 | 
| +++ b/chrome/browser/ui/webui/options2/chromeos/core_chromeos_options_handler.cc
 | 
| @@ -44,19 +44,6 @@ bool IsSettingOwnerOnly(const std::string& pref) {
 | 
|    return std::find(kNonOwnerSettings, end, pref) == end;
 | 
|  }
 | 
|  
 | 
| -// Create a settings value with "managed" and "disabled" property.
 | 
| -// "managed" property is true if the setting is managed by administrator.
 | 
| -// "disabled" property is true if the UI for the setting should be disabled.
 | 
| -base::Value* CreateSettingsValue(base::Value *value,
 | 
| -                                 bool managed,
 | 
| -                                 bool disabled) {
 | 
| -  DictionaryValue* dict = new DictionaryValue;
 | 
| -  dict->Set("value", value);
 | 
| -  dict->Set("managed", base::Value::CreateBooleanValue(managed));
 | 
| -  dict->Set("disabled", base::Value::CreateBooleanValue(disabled));
 | 
| -  return dict;
 | 
| -}
 | 
| -
 | 
|  // Returns true if |username| is the logged-in owner.
 | 
|  bool IsLoggedInOwner(const std::string& username) {
 | 
|    UserManager* user_manager = UserManager::Get();
 | 
| @@ -157,20 +144,18 @@ base::Value* CoreChromeOSOptionsHandler::FetchPref(
 | 
|    if (!pref_value)
 | 
|      return base::Value::CreateNullValue();
 | 
|  
 | 
| -  // Lists don't get the standard pref decoration.
 | 
| -  if (pref_value->GetType() == base::Value::TYPE_LIST) {
 | 
| -    if (pref_name == kAccountsPrefUsers)
 | 
| -      return CreateUsersWhitelist(pref_value);
 | 
| -    // Return a copy because the UI will take ownership of this object.
 | 
| -    return pref_value->DeepCopy();
 | 
| -  }
 | 
| -  // All other prefs are decorated the same way.
 | 
| -  bool enabled = (UserManager::Get()->IsCurrentUserOwner() ||
 | 
| -                  !IsSettingOwnerOnly(pref_name));
 | 
| -  return CreateSettingsValue(
 | 
| -      pref_value->DeepCopy(),  // The copy will be owned by the dictionary.
 | 
| -      g_browser_process->browser_policy_connector()->IsEnterpriseManaged(),
 | 
| -      !enabled);
 | 
| +  // Decorate pref value as CoreOptionsHandler::CreateValueForPref() does.
 | 
| +  DictionaryValue* dict = new DictionaryValue;
 | 
| +  if (pref_name == kAccountsPrefUsers)
 | 
| +    dict->Set("value", CreateUsersWhitelist(pref_value));
 | 
| +  else
 | 
| +    dict->Set("value", pref_value->DeepCopy());
 | 
| +  if (g_browser_process->browser_policy_connector()->IsEnterpriseManaged())
 | 
| +    dict->SetString("controlledBy", "policy");
 | 
| +  dict->SetBoolean("disabled",
 | 
| +                   IsSettingOwnerOnly(pref_name) &&
 | 
| +                       !UserManager::Get()->IsCurrentUserOwner());
 | 
| +  return dict;
 | 
|  }
 | 
|  
 | 
|  void CoreChromeOSOptionsHandler::ObservePref(const std::string& pref_name) {
 | 
| 
 |