Index: chrome/browser/ui/webui/options/core_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/core_options_handler.cc b/chrome/browser/ui/webui/options/core_options_handler.cc |
index c7098cabd8c335b5010e0c99474886e748193a41..ec45725bbe2fe3946627a53cff091848dc74272f 100644 |
--- a/chrome/browser/ui/webui/options/core_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/core_options_handler.cc |
@@ -12,6 +12,7 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/json/json_reader.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/user_metrics.h" |
#include "base/strings/string16.h" |
#include "base/strings/string_number_conversions.h" |
@@ -252,7 +253,8 @@ void CoreOptionsHandler::OnFinishedLoading(const base::ListValue* args) { |
handlers_host_->OnFinishedLoading(); |
} |
-base::Value* CoreOptionsHandler::FetchPref(const std::string& pref_name) { |
+std::unique_ptr<base::Value> CoreOptionsHandler::FetchPref( |
+ const std::string& pref_name) { |
return CreateValueForPref(pref_name, std::string()); |
} |
@@ -364,7 +366,7 @@ void CoreOptionsHandler::DispatchPrefChangeNotification( |
} |
} |
-base::Value* CoreOptionsHandler::CreateValueForPref( |
+std::unique_ptr<base::Value> CoreOptionsHandler::CreateValueForPref( |
const std::string& pref_name, |
const std::string& controlling_pref_name) { |
const PrefService* pref_service = FindServiceForPref(pref_name); |
@@ -372,15 +374,15 @@ base::Value* CoreOptionsHandler::CreateValueForPref( |
pref_service->FindPreference(pref_name); |
if (!pref) { |
NOTREACHED(); |
- return new base::Value(); |
+ return base::MakeUnique<base::Value>(); |
} |
const PrefService::Preference* controlling_pref = |
pref_service->FindPreference(controlling_pref_name); |
if (!controlling_pref) |
controlling_pref = pref; |
- base::DictionaryValue* dict = new base::DictionaryValue; |
- dict->Set("value", pref->GetValue()->DeepCopy()); |
+ auto dict = base::MakeUnique<base::DictionaryValue>(); |
+ dict->Set("value", base::MakeUnique<base::Value>(*pref->GetValue())); |
if (controlling_pref->IsManaged()) { |
dict->SetString("controlledBy", "policy"); |
} else if (controlling_pref->IsExtensionControlled() && |
@@ -397,8 +399,7 @@ base::Value* CoreOptionsHandler::CreateValueForPref( |
extension_id, extensions::ExtensionRegistry::EVERYTHING); |
if (extension) { |
dict->SetString("controlledBy", "extension"); |
- dict->Set("extension", |
- extensions::util::GetExtensionInfo(extension).release()); |
+ dict->Set("extension", extensions::util::GetExtensionInfo(extension)); |
} |
} else if (controlling_pref->IsRecommended()) { |
dict->SetString("controlledBy", "recommended"); |
@@ -407,9 +408,10 @@ base::Value* CoreOptionsHandler::CreateValueForPref( |
const base::Value* recommended_value = |
controlling_pref->GetRecommendedValue(); |
if (recommended_value) |
- dict->Set("recommendedValue", recommended_value->DeepCopy()); |
+ dict->Set("recommendedValue", |
+ base::MakeUnique<base::Value>(*recommended_value)); |
dict->SetBoolean("disabled", !controlling_pref->IsUserModifiable()); |
- return dict; |
+ return std::move(dict); |
} |
PrefService* CoreOptionsHandler::FindServiceForPref( |