Remove raw DictionaryValue::Set
This change removes the deprecated raw pointer version of
base::DictionaryValue::Set and replaces it with the unique
pointer version or other convenience functions where appropriate.
BUG=646113, 581865
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win10_chromium_x64_rel_ng;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Review-Url: https://codereview.chromium.org/2911033002
Cr-Commit-Position: refs/heads/master@{#477985}
diff --git a/base/values.cc b/base/values.cc
index 2f293c9..8e2bc88 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -636,10 +636,6 @@
std::move(in_value));
}
-Value* DictionaryValue::Set(StringPiece path, Value* in_value) {
- return Set(path, WrapUnique(in_value));
-}
-
Value* DictionaryValue::SetBoolean(StringPiece path, bool in_value) {
return Set(path, MakeUnique<Value>(in_value));
}
diff --git a/base/values.h b/base/values.h
index 27fcc6d..6e75540 100644
--- a/base/values.h
+++ b/base/values.h
@@ -249,8 +249,6 @@
// to the path in that location. |in_value| must be non-null.
// Returns a pointer to the inserted value.
Value* Set(StringPiece path, std::unique_ptr<Value> in_value);
- // Deprecated version of the above. TODO(estade): remove.
- Value* Set(StringPiece path, Value* in_value);
// Convenience forms of Set(). These methods will replace any existing
// value at that path, even if it has a different type.
diff --git a/chrome/browser/supervised_user/supervised_user_service_unittest.cc b/chrome/browser/supervised_user/supervised_user_service_unittest.cc
index 3f9c49b1..31bbd9a 100644
--- a/chrome/browser/supervised_user/supervised_user_service_unittest.cc
+++ b/chrome/browser/supervised_user/supervised_user_service_unittest.cc
@@ -15,6 +15,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "base/values.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/profiles/profile.h"
@@ -404,7 +405,8 @@
scoped_refptr<extensions::Extension> MakeThemeExtension() {
std::unique_ptr<base::DictionaryValue> source(new base::DictionaryValue());
source->SetString(extensions::manifest_keys::kName, "Theme");
- source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue());
+ source->Set(extensions::manifest_keys::kTheme,
+ base::MakeUnique<base::DictionaryValue>());
source->SetString(extensions::manifest_keys::kVersion, "1.0");
extensions::ExtensionBuilder builder;
scoped_refptr<extensions::Extension> extension =
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
index fd4de8c..8507115 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -1612,7 +1612,7 @@
FileKindToString(tracker.synced_details().file_kind()));
}
- base::DictionaryValue* details = new base::DictionaryValue;
+ auto details = base::MakeUnique<base::DictionaryValue>();
details->SetString("file_id", tracker.file_id());
if (tracker.has_synced_details() &&
tracker.synced_details().file_kind() == FILE_KIND_FILE)
@@ -1620,7 +1620,7 @@
details->SetString("active", tracker.active() ? "true" : "false");
details->SetString("dirty", tracker.dirty() ? "true" : "false");
- file->Set("details", details);
+ file->Set("details", std::move(details));
files->Append(std::move(file));
}
@@ -1656,10 +1656,10 @@
};
std::vector<std::string> key_strings(
trackerKeys, trackerKeys + arraysize(trackerKeys));
- base::ListValue* keys = new base::ListValue;
+ auto keys = base::MakeUnique<base::ListValue>();
keys->AppendStrings(key_strings);
metadata->SetString("title", "Trackers");
- metadata->Set("keys", keys);
+ metadata->Set("keys", std::move(keys));
trackers->Append(std::move(metadata));
// Append tracker data.
@@ -1718,10 +1718,10 @@
};
std::vector<std::string> key_strings(
fileKeys, fileKeys + arraysize(fileKeys));
- base::ListValue* keys = new base::ListValue;
+ auto keys = base::MakeUnique<base::ListValue>();
keys->AppendStrings(key_strings);
metadata->SetString("title", "Metadata");
- metadata->Set("keys", keys);
+ metadata->Set("keys", std::move(keys));
files->Append(std::move(metadata));
// Append metadata data.
diff --git a/chrome/browser/ui/webui/conflicts_handler.cc b/chrome/browser/ui/webui/conflicts_handler.cc
index 75c06bd..b6bb36ec 100644
--- a/chrome/browser/ui/webui/conflicts_handler.cc
+++ b/chrome/browser/ui/webui/conflicts_handler.cc
@@ -41,9 +41,7 @@
void ConflictsHandler::SendModuleList() {
auto* loaded_modules = EnumerateModulesModel::GetInstance();
- base::ListValue* list = loaded_modules->GetModuleList();
- base::DictionaryValue results;
- results.Set("moduleList", list);
+ std::unique_ptr<base::ListValue> list = loaded_modules->GetModuleList();
// Add the section title and the total count for bad modules found.
int confirmed_bad = loaded_modules->confirmed_bad_modules_detected();
@@ -59,6 +57,8 @@
base::IntToString16(list->GetSize()),
base::IntToString16(confirmed_bad), base::IntToString16(suspected_bad));
}
+ base::DictionaryValue results;
+ results.Set("moduleList", std::move(list));
results.SetString("modulesTableTitle", table_title);
web_ui()->CallJavascriptFunctionUnsafe("returnModuleList", results);
diff --git a/chrome/browser/win/enumerate_modules_model.cc b/chrome/browser/win/enumerate_modules_model.cc
index f47f779..d466e28 100644
--- a/chrome/browser/win/enumerate_modules_model.cc
+++ b/chrome/browser/win/enumerate_modules_model.cc
@@ -589,7 +589,7 @@
module_enumerator_->ScanNow(&enumerated_modules_);
}
-base::ListValue* EnumerateModulesModel::GetModuleList() {
+std::unique_ptr<base::ListValue> EnumerateModulesModel::GetModuleList() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
// If a |module_enumerator_| is still around then scanning has not yet
@@ -600,7 +600,7 @@
if (enumerated_modules_.empty())
return nullptr;
- base::ListValue* list = new base::ListValue();
+ auto list = base::MakeUnique<base::ListValue>();
for (ModuleEnumerator::ModulesVector::const_iterator module =
enumerated_modules_.begin();
diff --git a/chrome/browser/win/enumerate_modules_model.h b/chrome/browser/win/enumerate_modules_model.h
index 9a212bd..7be732e 100644
--- a/chrome/browser/win/enumerate_modules_model.h
+++ b/chrome/browser/win/enumerate_modules_model.h
@@ -302,7 +302,7 @@
void ScanNow(bool background_mode);
// Gets the whole module list as a ListValue.
- base::ListValue* GetModuleList();
+ std::unique_ptr<base::ListValue> GetModuleList();
// Returns the site to which the user should be taken when the conflict bubble
// or app menu item is clicked. For now this is simply chrome://conflicts,
diff --git a/chrome/test/chromedriver/performance_logger.cc b/chrome/test/chromedriver/performance_logger.cc
index 23d94e9..8afa658b 100644
--- a/chrome/test/chromedriver/performance_logger.cc
+++ b/chrome/test/chromedriver/performance_logger.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/json/json_writer.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/values.h"
@@ -126,7 +127,7 @@
base::DictionaryValue log_message_dict;
log_message_dict.SetString("webview", webview);
log_message_dict.SetString("message.method", method);
- log_message_dict.Set("message.params", params.DeepCopy());
+ log_message_dict.Set("message.params", base::MakeUnique<base::Value>(params));
std::string log_message_json;
base::JSONWriter::Write(log_message_dict, &log_message_json);
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc
index 6555063..a4d9d5b 100644
--- a/chrome/test/chromedriver/server/http_handler.cc
+++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -771,7 +771,7 @@
base::DictionaryValue body_params;
body_params.SetInteger("status", status.code());
- body_params.Set("value", value.release());
+ body_params.Set("value", std::move(value));
body_params.SetString("sessionId", session_id);
std::string body;
base::JSONWriter::WriteWithOptions(
@@ -848,7 +848,7 @@
} else {
body_params.SetString("sessionId", session_id);
body_params.SetString("status", status.message());
- body_params.Set("value", value.release());
+ body_params.Set("value", std::move(value));
}
std::string body;
diff --git a/chromecast/browser/cast_net_log.cc b/chromecast/browser/cast_net_log.cc
index 927986f..bd065822 100644
--- a/chromecast/browser/cast_net_log.cc
+++ b/chromecast/browser/cast_net_log.cc
@@ -5,11 +5,13 @@
#include "chromecast/browser/cast_net_log.h"
#include <stdio.h>
+
#include <utility>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/scoped_file.h"
+#include "base/memory/ptr_util.h"
#include "base/values.h"
#include "content/public/common/content_switches.h"
#include "net/log/net_log_util.h"
@@ -19,21 +21,21 @@
namespace {
-base::DictionaryValue* GetShellConstants() {
+std::unique_ptr<base::DictionaryValue> GetShellConstants() {
std::unique_ptr<base::DictionaryValue> constants_dict =
net::GetNetConstants();
// Add a dictionary with client information
- base::DictionaryValue* dict = new base::DictionaryValue();
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetString("name", "cast_shell");
dict->SetString(
"command_line",
base::CommandLine::ForCurrentProcess()->GetCommandLineString());
- constants_dict->Set("clientInfo", dict);
+ constants_dict->Set("clientInfo", std::move(dict));
- return constants_dict.release();
+ return constants_dict;
}
} // namespace
diff --git a/chromeos/dbus/fake_shill_service_client.cc b/chromeos/dbus/fake_shill_service_client.cc
index 7075c38..363b1c7a 100644
--- a/chromeos/dbus/fake_shill_service_client.cc
+++ b/chromeos/dbus/fake_shill_service_client.cc
@@ -534,8 +534,8 @@
if (!stub_services_.GetDictionaryWithoutPathExpansion(service_path,
&properties) &&
create_if_missing) {
- properties = new base::DictionaryValue;
- stub_services_.Set(service_path, properties);
+ properties = stub_services_.SetDictionary(
+ service_path, base::MakeUnique<base::DictionaryValue>());
}
return properties;
}
diff --git a/chromeos/network/network_configuration_handler_unittest.cc b/chromeos/network/network_configuration_handler_unittest.cc
index 976da8ee..2549a20 100644
--- a/chromeos/network/network_configuration_handler_unittest.cc
+++ b/chromeos/network/network_configuration_handler_unittest.cc
@@ -340,7 +340,7 @@
std::unique_ptr<base::Value> networkNameValue(new base::Value(networkName));
base::DictionaryValue value;
- value.Set(key, new base::Value(networkName));
+ value.SetString(key, networkName);
dictionary_value_result_ = &value;
EXPECT_CALL(*mock_service_client_,
SetProperty(dbus::ObjectPath(service_path), key,
@@ -404,7 +404,7 @@
std::unique_ptr<base::Value> networkNameValue(new base::Value(networkName));
base::DictionaryValue value;
- value.Set(key, new base::Value(networkName));
+ value.SetString(key, networkName);
dictionary_value_result_ = &value;
EXPECT_CALL(*mock_service_client_, SetProperties(_, _, _, _))
.WillOnce(
@@ -423,7 +423,7 @@
// First set up a value to clear.
base::DictionaryValue value;
- value.Set(key, new base::Value(networkName));
+ value.SetString(key, networkName);
dictionary_value_result_ = &value;
EXPECT_CALL(*mock_service_client_, SetProperties(_, _, _, _))
.WillOnce(
@@ -453,7 +453,7 @@
// First set up a value to clear.
base::DictionaryValue value;
- value.Set(key, new base::Value(networkName));
+ value.SetString(key, networkName);
dictionary_value_result_ = &value;
EXPECT_CALL(*mock_service_client_, SetProperties(_, _, _, _))
.WillOnce(
diff --git a/chromeos/network/onc/onc_validator.cc b/chromeos/network/onc/onc_validator.cc
index 3bb988a5..f0dde18 100644
--- a/chromeos/network/onc/onc_validator.cc
+++ b/chromeos/network/onc/onc_validator.cc
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <algorithm>
+#include <utility>
#include "base/json/json_writer.h"
#include "base/logging.h"
@@ -284,7 +285,7 @@
repaired_recommended->AppendString(field_name);
}
- result->Set(::onc::kRecommended, repaired_recommended.release());
+ result->Set(::onc::kRecommended, std::move(repaired_recommended));
return true;
}
diff --git a/components/cloud_devices/common/description_items_inl.h b/components/cloud_devices/common/description_items_inl.h
index 3c30310..02fc023 100644
--- a/components/cloud_devices/common/description_items_inl.h
+++ b/components/cloud_devices/common/description_items_inl.h
@@ -11,7 +11,9 @@
#include <utility>
#include <vector>
+#include "base/memory/ptr_util.h"
#include "base/numerics/safe_conversions.h"
+#include "base/values.h"
#include "components/cloud_devices/common/description_items.h"
// Implementation of templates defined in header file.
@@ -126,17 +128,16 @@
void SelectionCapability<Option, Traits>::SaveTo(
CloudDeviceDescription* description) const {
DCHECK(IsValid());
- base::ListValue* options_list = new base::ListValue;
- description->CreateItem(Traits::GetCapabilityPath())
- ->Set(json::kKeyOption, options_list);
+ auto options_list = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < options_.size(); ++i) {
- std::unique_ptr<base::DictionaryValue> option_value(
- new base::DictionaryValue);
+ auto option_value = base::MakeUnique<base::DictionaryValue>();
if (base::checked_cast<int>(i) == default_idx_)
option_value->SetBoolean(json::kKeyIsDefault, true);
Traits::Save(options_[i], option_value.get());
options_list->Append(std::move(option_value));
}
+ description->CreateItem(Traits::GetCapabilityPath())
+ ->Set(json::kKeyOption, std::move(options_list));
}
template <class Traits>
diff --git a/components/policy/core/common/mac_util.cc b/components/policy/core/common/mac_util.cc
index 7faecd2..e213d08 100644
--- a/components/policy/core/common/mac_util.cc
+++ b/components/policy/core/common/mac_util.cc
@@ -27,8 +27,8 @@
PropertyToValue(static_cast<CFPropertyListRef>(value));
if (converted) {
const std::string string = base::SysCFStringRefToUTF8(cf_key);
- static_cast<base::DictionaryValue*>(context)->Set(
- string, converted.release());
+ static_cast<base::DictionaryValue*>(context)->Set(string,
+ std::move(converted));
}
}
}
diff --git a/components/policy/core/common/policy_loader_win_unittest.cc b/components/policy/core/common/policy_loader_win_unittest.cc
index 3efc8c71..e973049 100644
--- a/components/policy/core/common/policy_loader_win_unittest.cc
+++ b/components/policy/core/common/policy_loader_win_unittest.cc
@@ -809,10 +809,10 @@
expected_policy.SetBoolean(test_keys::kKeyBoolean, true);
expected_policy.SetString(test_keys::kKeyString, "GPO");
expected_policy.SetInteger(test_keys::kKeyInteger, 42);
- std::unique_ptr<base::ListValue> list(new base::ListValue());
+ auto list = base::MakeUnique<base::ListValue>();
list->AppendString("GPO 1");
list->AppendString("GPO 2");
- expected_policy.Set(test_keys::kKeyStringList, list.release());
+ expected_policy.Set(test_keys::kKeyStringList, std::move(list));
PolicyBundle expected;
expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
.LoadFrom(&expected_policy, POLICY_LEVEL_MANDATORY,
diff --git a/components/policy/core/common/registry_dict_unittest.cc b/components/policy/core/common/registry_dict_unittest.cc
index e415d55..ca27f32 100644
--- a/components/policy/core/common/registry_dict_unittest.cc
+++ b/components/policy/core/common/registry_dict_unittest.cc
@@ -230,22 +230,21 @@
std::unique_ptr<base::Value> actual(test_dict.ConvertToJSON(schema));
base::DictionaryValue expected;
- expected.Set("one", int_value.CreateDeepCopy());
- std::unique_ptr<base::DictionaryValue> expected_subdict(
- new base::DictionaryValue());
- expected_subdict->Set("two", string_value.CreateDeepCopy());
+ expected.Set("one", base::MakeUnique<base::Value>(int_value));
+ auto expected_subdict = base::MakeUnique<base::DictionaryValue>();
+ expected_subdict->Set("two", base::MakeUnique<base::Value>(string_value));
expected.Set("three", std::move(expected_subdict));
- std::unique_ptr<base::ListValue> expected_list(new base::ListValue());
- expected_list->Append(string_value.CreateDeepCopy());
+ auto expected_list = base::MakeUnique<base::ListValue>();
+ expected_list->Append(base::MakeUnique<base::Value>(string_value));
expected.Set("dict-to-list", std::move(expected_list));
- expected.Set("int-to-bool", new base::Value(true));
- expected.Set("int-to-double", new base::Value(42.0));
- expected.Set("string-to-bool", new base::Value(false));
- expected.Set("string-to-double", new base::Value(0.0));
- expected.Set("string-to-int", new base::Value(static_cast<int>(0)));
- expected_list.reset(new base::ListValue());
+ expected.SetBoolean("int-to-bool", true);
+ expected.SetDouble("int-to-double", 42.0);
+ expected.SetBoolean("string-to-bool", false);
+ expected.SetDouble("string-to-double", 0.0);
+ expected.SetInteger("string-to-int", static_cast<int>(0));
+ expected_list = base::MakeUnique<base::ListValue>();
expected_list->Append(base::MakeUnique<base::Value>("value"));
- expected_subdict.reset(new base::DictionaryValue());
+ expected_subdict = base::MakeUnique<base::DictionaryValue>();
expected_subdict->Set("key", std::move(expected_list));
expected.Set("string-to-dict", std::move(expected_subdict));
diff --git a/components/wifi/network_properties.cc b/components/wifi/network_properties.cc
index e899125..9d7a2318 100644
--- a/components/wifi/network_properties.cc
+++ b/components/wifi/network_properties.cc
@@ -4,6 +4,8 @@
#include "components/wifi/network_properties.h"
+#include <utility>
+
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
@@ -52,14 +54,14 @@
frequency_list->AppendInteger(*it);
}
if (!frequency_list->empty())
- wifi->Set(onc::wifi::kFrequencyList, frequency_list.release());
+ wifi->Set(onc::wifi::kFrequencyList, std::move(frequency_list));
if (!bssid.empty())
wifi->SetString(onc::wifi::kBSSID, bssid);
wifi->SetString(onc::wifi::kSSID, ssid);
wifi->SetString(onc::wifi::kHexSSID,
base::HexEncode(ssid.c_str(), ssid.size()));
}
- value->Set(onc::network_type::kWiFi, wifi.release());
+ value->Set(onc::network_type::kWiFi, std::move(wifi));
return value;
}
diff --git a/content/browser/accessibility/accessibility_tree_formatter_win.cc b/content/browser/accessibility/accessibility_tree_formatter_win.cc
index 2eeb2b06..7b1c36f 100644
--- a/content/browser/accessibility/accessibility_tree_formatter_win.cc
+++ b/content/browser/accessibility/accessibility_tree_formatter_win.cc
@@ -12,11 +12,13 @@
#include <utility>
#include "base/files/file_path.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/values.h"
#include "base/win/scoped_bstr.h"
#include "base/win/scoped_comptr.h"
#include "content/browser/accessibility/accessibility_tree_formatter_utils_win.h"
@@ -273,15 +275,15 @@
variant_self)) &&
SUCCEEDED(ToBrowserAccessibilityWin(root)->GetCOM()->accLocation(
&root_left, &root_top, &root_width, &root_height, variant_self))) {
- base::DictionaryValue* location = new base::DictionaryValue;
+ auto location = base::MakeUnique<base::DictionaryValue>();
location->SetInteger("x", left - root_left);
location->SetInteger("y", top - root_top);
- dict->Set("location", location);
+ dict->Set("location", std::move(location));
- base::DictionaryValue* size = new base::DictionaryValue;
+ auto size = base::MakeUnique<base::DictionaryValue>();
size->SetInteger("width", width);
size->SetInteger("height", height);
- dict->Set("size", size);
+ dict->Set("size", std::move(size));
}
LONG index_in_parent;
diff --git a/content/browser/tracing/etw_tracing_agent_win.cc b/content/browser/tracing/etw_tracing_agent_win.cc
index c126212..b3b56bd9 100644
--- a/content/browser/tracing/etw_tracing_agent_win.cc
+++ b/content/browser/tracing/etw_tracing_agent_win.cc
@@ -168,43 +168,41 @@
now_in_us.QuadPart = now.ToInternalValue();
// Add fields to the event.
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- value->Set("guid", new base::Value("ClockSync"));
- value->Set("walltime",
- new base::Value(base::StringPrintf(
- "%08X%08X", walltime_in_us.HighPart, walltime_in_us.LowPart)));
- value->Set("tick", new base::Value(base::StringPrintf(
- "%08X%08X", now_in_us.HighPart, now_in_us.LowPart)));
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ value->SetString("guid", "ClockSync");
+ value->SetString("walltime",
+ base::StringPrintf("%08X%08X", walltime_in_us.HighPart,
+ walltime_in_us.LowPart));
+ value->SetString("tick", base::StringPrintf("%08X%08X", now_in_us.HighPart,
+ now_in_us.LowPart));
// Append it to the events buffer.
events_->Append(std::move(value));
}
void EtwTracingAgent::AppendEventToBuffer(EVENT_TRACE* event) {
- using base::Value;
-
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
+ auto value = base::MakeUnique<base::DictionaryValue>();
// Add header fields to the event.
LARGE_INTEGER ts_us;
ts_us.QuadPart = event->Header.TimeStamp.QuadPart / 10;
- value->Set("ts", new base::Value(base::StringPrintf(
- "%08X%08X", ts_us.HighPart, ts_us.LowPart)));
+ value->SetString(
+ "ts", base::StringPrintf("%08X%08X", ts_us.HighPart, ts_us.LowPart));
- value->Set("guid", new base::Value(GuidToString(event->Header.Guid)));
+ value->SetString("guid", GuidToString(event->Header.Guid));
- value->Set("op", new Value(event->Header.Class.Type));
- value->Set("ver", new Value(event->Header.Class.Version));
- value->Set("pid", new Value(static_cast<int>(event->Header.ProcessId)));
- value->Set("tid", new Value(static_cast<int>(event->Header.ThreadId)));
- value->Set("cpu", new Value(event->BufferContext.ProcessorNumber));
+ value->SetInteger("op", event->Header.Class.Type);
+ value->SetInteger("ver", event->Header.Class.Version);
+ value->SetInteger("pid", static_cast<int>(event->Header.ProcessId));
+ value->SetInteger("tid", static_cast<int>(event->Header.ThreadId));
+ value->SetInteger("cpu", event->BufferContext.ProcessorNumber);
// Base64 encode the payload bytes.
base::StringPiece buffer(static_cast<const char*>(event->MofData),
event->MofLength);
std::string payload;
base::Base64Encode(buffer, &payload);
- value->Set("payload", new base::Value(payload));
+ value->SetString("payload", payload);
// Append it to the events buffer.
events_->Append(std::move(value));
@@ -227,8 +225,8 @@
void EtwTracingAgent::FlushOnThread(
const StopAgentTracingCallback& callback) {
// Add the header information to the stream.
- std::unique_ptr<base::DictionaryValue> header(new base::DictionaryValue());
- header->Set("name", new base::Value("ETW"));
+ auto header = base::MakeUnique<base::DictionaryValue>();
+ header->SetString("name", "ETW");
// Release and pass the events buffer.
header->Set("content", std::move(events_));
diff --git a/dbus/values_util_unittest.cc b/dbus/values_util_unittest.cc
index 0cc7d91..a4854dc 100644
--- a/dbus/values_util_unittest.cc
+++ b/dbus/values_util_unittest.cc
@@ -14,6 +14,7 @@
#include "base/json/json_writer.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/values.h"
#include "dbus/message.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -516,11 +517,11 @@
const double kDoubleValue = 4.9;
const std::string kStringValue = "fifty";
- base::ListValue* list_value = new base::ListValue();
+ auto list_value = base::MakeUnique<base::ListValue>();
list_value->AppendBoolean(kBoolValue);
list_value->AppendInteger(kInt32Value);
- base::DictionaryValue* dictionary_value = new base::DictionaryValue();
+ auto dictionary_value = base::MakeUnique<base::DictionaryValue>();
dictionary_value->SetBoolean(kKey1, kBoolValue);
dictionary_value->SetInteger(kKey2, kDoubleValue);
@@ -529,8 +530,8 @@
test_dictionary.SetInteger(kKey2, kInt32Value);
test_dictionary.SetDouble(kKey3, kDoubleValue);
test_dictionary.SetString(kKey4, kStringValue);
- test_dictionary.Set(kKey5, list_value); // takes ownership
- test_dictionary.Set(kKey6, dictionary_value); // takes ownership
+ test_dictionary.Set(kKey5, std::move(list_value));
+ test_dictionary.Set(kKey6, std::move(dictionary_value));
std::unique_ptr<Response> response(Response::CreateEmpty());
MessageWriter writer(response.get());
@@ -563,11 +564,11 @@
const double kDoubleValue = 4.9;
const std::string kStringValue = "fifty";
- base::ListValue* list_value = new base::ListValue();
+ auto list_value = base::MakeUnique<base::ListValue>();
list_value->AppendBoolean(kBoolValue);
list_value->AppendInteger(kInt32Value);
- base::DictionaryValue* dictionary_value = new base::DictionaryValue();
+ auto dictionary_value = base::MakeUnique<base::DictionaryValue>();
dictionary_value->SetBoolean(kKey1, kBoolValue);
dictionary_value->SetInteger(kKey2, kDoubleValue);
@@ -576,8 +577,8 @@
test_dictionary.SetInteger(kKey2, kInt32Value);
test_dictionary.SetDouble(kKey3, kDoubleValue);
test_dictionary.SetString(kKey4, kStringValue);
- test_dictionary.Set(kKey5, list_value); // takes ownership
- test_dictionary.Set(kKey6, dictionary_value); // takes ownership
+ test_dictionary.Set(kKey5, std::move(list_value));
+ test_dictionary.Set(kKey6, std::move(dictionary_value));
std::unique_ptr<Response> response(Response::CreateEmpty());
MessageWriter writer(response.get());
diff --git a/device/geolocation/network_location_request.cc b/device/geolocation/network_location_request.cc
index 0db378a..08c1574 100644
--- a/device/geolocation/network_location_request.cc
+++ b/device/geolocation/network_location_request.cc
@@ -9,9 +9,11 @@
#include <limits>
#include <set>
#include <string>
+#include <utility>
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
+#include "base/memory/ptr_util.h"
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_number_conversions.h"
@@ -274,10 +276,9 @@
for (const auto& ap_data : wifi_data.access_point_data)
access_points_by_signal_strength.insert(&ap_data);
- base::ListValue* wifi_access_point_list = new base::ListValue();
+ auto wifi_access_point_list = base::MakeUnique<base::ListValue>();
for (auto* ap_data : access_points_by_signal_strength) {
- std::unique_ptr<base::DictionaryValue> wifi_dict(
- new base::DictionaryValue());
+ auto wifi_dict = base::MakeUnique<base::DictionaryValue>();
AddString("macAddress", base::UTF16ToUTF8(ap_data->mac_address),
wifi_dict.get());
AddInteger("signalStrength", ap_data->radio_signal_strength,
@@ -287,7 +288,7 @@
AddInteger("signalToNoiseRatio", ap_data->signal_to_noise, wifi_dict.get());
wifi_access_point_list->Append(std::move(wifi_dict));
}
- request->Set("wifiAccessPoints", wifi_access_point_list);
+ request->Set("wifiAccessPoints", std::move(wifi_access_point_list));
}
void FormatPositionError(const GURL& server_url,
diff --git a/extensions/browser/api/socket/socket_api.cc b/extensions/browser/api/socket/socket_api.cc
index cd52dff..372a24b 100644
--- a/extensions/browser/api/socket/socket_api.cc
+++ b/extensions/browser/api/socket/socket_api.cc
@@ -600,7 +600,8 @@
result->Set(kDataKey, base::Value::CreateWithCopiedBuffer(io_buffer->data(),
bytes_read));
} else {
- result->Set(kDataKey, new base::Value(base::Value::Type::BINARY));
+ result->Set(kDataKey,
+ base::MakeUnique<base::Value>(base::Value::Type::BINARY));
}
result->SetString(kAddressKey, address);
result->SetInteger(kPortKey, port);
diff --git a/extensions/browser/api/storage/settings_test_util.cc b/extensions/browser/api/storage/settings_test_util.cc
index 1b619ef6..de30f6a 100644
--- a/extensions/browser/api/storage/settings_test_util.cc
+++ b/extensions/browser/api/storage/settings_test_util.cc
@@ -4,8 +4,12 @@
#include "extensions/browser/api/storage/settings_test_util.h"
+#include <utility>
+
#include "base/files/file_path.h"
+#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
+#include "base/values.h"
#include "extensions/browser/api/storage/storage_frontend.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system_provider.h"
@@ -77,18 +81,18 @@
it != permissions_set.end(); ++it) {
permissions->AppendString(*it);
}
- manifest.Set("permissions", permissions.release());
+ manifest.Set("permissions", std::move(permissions));
switch (type) {
case Manifest::TYPE_EXTENSION:
break;
case Manifest::TYPE_LEGACY_PACKAGED_APP: {
- base::DictionaryValue* app = new base::DictionaryValue();
- base::DictionaryValue* app_launch = new base::DictionaryValue();
+ auto app = base::MakeUnique<base::DictionaryValue>();
+ auto app_launch = base::MakeUnique<base::DictionaryValue>();
app_launch->SetString("local_path", "fake.html");
- app->Set("launch", app_launch);
- manifest.Set("app", app);
+ app->Set("launch", std::move(app_launch));
+ manifest.Set("app", std::move(app));
break;
}
diff --git a/google_apis/drive/drive_api_requests.cc b/google_apis/drive/drive_api_requests.cc
index e9799c6..632d1c6 100644
--- a/google_apis/drive/drive_api_requests.cc
+++ b/google_apis/drive/drive_api_requests.cc
@@ -6,6 +6,8 @@
#include <stddef.h>
+#include <utility>
+
#include "base/bind.h"
#include "base/callback.h"
#include "base/json/json_writer.h"
@@ -91,10 +93,9 @@
if (properties.empty())
return;
- base::ListValue* const properties_value = new base::ListValue;
+ auto properties_value = base::MakeUnique<base::ListValue>();
for (const auto& property : properties) {
- std::unique_ptr<base::DictionaryValue> property_value(
- new base::DictionaryValue);
+ auto property_value = base::MakeUnique<base::DictionaryValue>();
std::string visibility_as_string;
switch (property.visibility()) {
case Property::VISIBILITY_PRIVATE:
@@ -109,7 +110,7 @@
property_value->SetString("value", property.value());
properties_value->Append(std::move(property_value));
}
- request_body->Set("properties", properties_value);
+ request_body->Set("properties", std::move(properties_value));
}
// Creates metadata JSON string for multipart uploading.
@@ -127,9 +128,9 @@
// Fill parent link.
if (!parent_resource_id.empty()) {
- std::unique_ptr<base::ListValue> parents(new base::ListValue);
+ auto parents = base::MakeUnique<base::ListValue>();
parents->Append(google_apis::util::CreateParentValue(parent_resource_id));
- root.Set("parents", parents.release());
+ root.Set("parents", std::move(parents));
}
if (!modified_date.is_null()) {
@@ -387,13 +388,13 @@
root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
if (!parents_.empty()) {
- base::ListValue* parents_value = new base::ListValue;
+ auto parents_value = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < parents_.size(); ++i) {
- std::unique_ptr<base::DictionaryValue> parent(new base::DictionaryValue);
+ auto parent = base::MakeUnique<base::DictionaryValue>();
parent->SetString("id", parents_[i]);
parents_value->Append(std::move(parent));
}
- root.Set("parents", parents_value);
+ root.Set("parents", std::move(parents_value));
}
if (!title_.empty())
@@ -465,13 +466,13 @@
}
if (!parents_.empty()) {
- base::ListValue* parents_value = new base::ListValue;
+ auto parents_value = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < parents_.size(); ++i) {
- std::unique_ptr<base::DictionaryValue> parent(new base::DictionaryValue);
+ auto parent = base::MakeUnique<base::DictionaryValue>();
parent->SetString("id", parents_[i]);
parents_value->Append(std::move(parent));
}
- root.Set("parents", parents_value);
+ root.Set("parents", std::move(parents_value));
}
AttachProperties(properties_, &root);
@@ -519,13 +520,13 @@
root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
if (!parents_.empty()) {
- base::ListValue* parents_value = new base::ListValue;
+ auto parents_value = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < parents_.size(); ++i) {
- std::unique_ptr<base::DictionaryValue> parent(new base::DictionaryValue);
+ auto parent = base::MakeUnique<base::DictionaryValue>();
parent->SetString("id", parents_[i]);
parents_value->Append(std::move(parent));
}
- root.Set("parents", parents_value);
+ root.Set("parents", std::move(parents_value));
}
if (!title_.empty())
@@ -823,9 +824,9 @@
root.SetString("title", title_);
// Fill parent link.
- std::unique_ptr<base::ListValue> parents(new base::ListValue);
+ auto parents = base::MakeUnique<base::ListValue>();
parents->Append(util::CreateParentValue(parent_resource_id_));
- root.Set("parents", parents.release());
+ root.Set("parents", std::move(parents));
if (!modified_date_.is_null())
root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_));
@@ -883,9 +884,9 @@
std::string* upload_content) {
base::DictionaryValue root;
if (!parent_resource_id_.empty()) {
- std::unique_ptr<base::ListValue> parents(new base::ListValue);
+ auto parents = base::MakeUnique<base::ListValue>();
parents->Append(util::CreateParentValue(parent_resource_id_));
- root.Set("parents", parents.release());
+ root.Set("parents", std::move(parents));
}
if (!title_.empty())
@@ -1147,9 +1148,9 @@
case PERMISSION_ROLE_COMMENTER:
root.SetString("role", "reader");
{
- base::ListValue* list = new base::ListValue;
+ auto list = base::MakeUnique<base::ListValue>();
list->AppendString("commenter");
- root.Set("additionalRoles", list);
+ root.Set("additionalRoles", std::move(list));
}
break;
}
diff --git a/google_apis/gaia/google_service_auth_error.cc b/google_apis/gaia/google_service_auth_error.cc
index a357005..8c657f0 100644
--- a/google_apis/gaia/google_service_auth_error.cc
+++ b/google_apis/gaia/google_service_auth_error.cc
@@ -5,9 +5,11 @@
#include "google_apis/gaia/google_service_auth_error.h"
#include <string>
+#include <utility>
#include "base/json/json_reader.h"
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/values.h"
@@ -197,23 +199,23 @@
value->SetString("errorMessage", error_message_);
}
if (state_ == CAPTCHA_REQUIRED) {
- base::DictionaryValue* captcha_value = new base::DictionaryValue();
- value->Set("captcha", captcha_value);
+ auto captcha_value = base::MakeUnique<base::DictionaryValue>();
captcha_value->SetString("token", captcha_.token);
captcha_value->SetString("audioUrl", captcha_.audio_url.spec());
captcha_value->SetString("imageUrl", captcha_.image_url.spec());
captcha_value->SetString("unlockUrl", captcha_.unlock_url.spec());
captcha_value->SetInteger("imageWidth", captcha_.image_width);
captcha_value->SetInteger("imageHeight", captcha_.image_height);
+ value->Set("captcha", std::move(captcha_value));
} else if (state_ == CONNECTION_FAILED) {
value->SetString("networkError", net::ErrorToString(network_error_));
} else if (state_ == TWO_FACTOR) {
- base::DictionaryValue* two_factor_value = new base::DictionaryValue();
- value->Set("two_factor", two_factor_value);
+ auto two_factor_value = base::MakeUnique<base::DictionaryValue>();
two_factor_value->SetString("token", second_factor_.token);
two_factor_value->SetString("promptText", second_factor_.prompt_text);
two_factor_value->SetString("alternateText", second_factor_.alternate_text);
two_factor_value->SetInteger("fieldLength", second_factor_.field_length);
+ value->Set("two_factor", std::move(two_factor_value));
}
return value;
}
diff --git a/gpu/config/gpu_control_list.cc b/gpu/config/gpu_control_list.cc
index 334ea2a..339eaa0 100644
--- a/gpu/config/gpu_control_list.cc
+++ b/gpu/config/gpu_control_list.cc
@@ -4,12 +4,16 @@
#include "gpu/config/gpu_control_list.h"
+#include <utility>
+
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/sys_info.h"
+#include "base/values.h"
#include "gpu/config/gpu_info.h"
#include "third_party/re2/src/re2/re2.h"
@@ -581,18 +585,18 @@
DCHECK(problem_list);
for (auto index : active_entries_) {
const Entry& entry = entries_[index];
- std::unique_ptr<base::DictionaryValue> problem(new base::DictionaryValue());
+ auto problem = base::MakeUnique<base::DictionaryValue>();
problem->SetString("description", entry.description);
- base::ListValue* cr_bugs = new base::ListValue();
+ auto cr_bugs = base::MakeUnique<base::ListValue>();
for (size_t jj = 0; jj < entry.cr_bug_size; ++jj)
cr_bugs->AppendInteger(entry.cr_bugs[jj]);
- problem->Set("crBugs", cr_bugs);
+ problem->Set("crBugs", std::move(cr_bugs));
- base::ListValue* features = new base::ListValue();
- entry.GetFeatureNames(features, feature_map_);
- problem->Set("affectedGpuSettings", features);
+ auto features = base::MakeUnique<base::ListValue>();
+ entry.GetFeatureNames(features.get(), feature_map_);
+ problem->Set("affectedGpuSettings", std::move(features));
DCHECK(tag == "workarounds" || tag == "disabledFeatures");
problem->SetString("tag", tag);
diff --git a/headless/lib/browser/headless_net_log.cc b/headless/lib/browser/headless_net_log.cc
index a64f37ea..ef733c2 100644
--- a/headless/lib/browser/headless_net_log.cc
+++ b/headless/lib/browser/headless_net_log.cc
@@ -5,11 +5,13 @@
#include "headless/lib/browser/headless_net_log.h"
#include <stdio.h>
+
#include <utility>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/scoped_file.h"
+#include "base/memory/ptr_util.h"
#include "base/values.h"
#include "build/build_config.h"
#include "content/public/common/content_switches.h"
@@ -24,14 +26,14 @@
net::GetNetConstants();
// Add a dictionary with client information
- base::DictionaryValue* dict = new base::DictionaryValue();
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetString("name", "headless");
dict->SetString(
"command_line",
base::CommandLine::ForCurrentProcess()->GetCommandLineString());
- constants_dict->Set("clientInfo", dict);
+ constants_dict->Set("clientInfo", std::move(dict));
return std::move(constants_dict);
}
diff --git a/ios/chrome/browser/autofill/autofill_agent.mm b/ios/chrome/browser/autofill/autofill_agent.mm
index 9f2e38ce..3943572 100644
--- a/ios/chrome/browser/autofill/autofill_agent.mm
+++ b/ios/chrome/browser/autofill/autofill_agent.mm
@@ -810,14 +810,14 @@
formData->SetString("formName", base::UTF16ToUTF8(form.name));
// Note: Destruction of all child base::Value types is handled by the root
// formData object on its own destruction.
- base::DictionaryValue* fieldsData = new base::DictionaryValue;
+ auto fieldsData = base::MakeUnique<base::DictionaryValue>();
const std::vector<autofill::FormFieldData>& fields = form.fields;
for (const auto& fieldData : fields) {
fieldsData->SetStringWithoutPathExpansion(base::UTF16ToUTF8(fieldData.name),
fieldData.value);
}
- formData->Set("fields", fieldsData);
+ formData->Set("fields", std::move(fieldsData));
// Stringify the JSON data and send it to the UIWebView-side fillForm method.
std::string dataString;
diff --git a/ios/chrome/browser/notification_promo.cc b/ios/chrome/browser/notification_promo.cc
index 65c132d3..fd81c3c 100644
--- a/ios/chrome/browser/notification_promo.cc
+++ b/ios/chrome/browser/notification_promo.cc
@@ -6,6 +6,9 @@
#include <stddef.h>
+#include <utility>
+
+#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/time/time.h"
@@ -76,7 +79,7 @@
json_or_payload.SetString(iter->first, iter->second);
}
}
- json.Set("payload", payload.DeepCopy());
+ json.Set("payload", base::MakeUnique<base::Value>(payload));
InitFromJson(json);
}
@@ -139,14 +142,14 @@
double first_view_time,
int views,
bool closed) {
- base::DictionaryValue* ntp_promo = new base::DictionaryValue;
+ auto ntp_promo = base::MakeUnique<base::DictionaryValue>();
ntp_promo->SetDouble(kPrefPromoFirstViewTime, first_view_time);
ntp_promo->SetInteger(kPrefPromoViews, views);
ntp_promo->SetBoolean(kPrefPromoClosed, closed);
base::DictionaryValue promo_dict;
promo_dict.MergeDictionary(local_state_->GetDictionary(kPrefPromoObject));
- promo_dict.Set(base::IntToString(promo_id), ntp_promo);
+ promo_dict.Set(base::IntToString(promo_id), std::move(ntp_promo));
local_state_->Set(kPrefPromoObject, promo_dict);
DVLOG(1) << "WritePrefs " << promo_dict;
}
diff --git a/ios/chrome/browser/notification_promo_unittest.cc b/ios/chrome/browser/notification_promo_unittest.cc
index 2b3718e..25b68ab 100644
--- a/ios/chrome/browser/notification_promo_unittest.cc
+++ b/ios/chrome/browser/notification_promo_unittest.cc
@@ -5,6 +5,7 @@
#include <stddef.h>
#include <memory>
+#include <utility>
#include <vector>
#include "base/json/json_reader.h"
@@ -303,14 +304,14 @@
ntp_promo->SetInteger("views", views);
ntp_promo->SetBoolean("closed", true);
- base::ListValue* promo_list = new base::ListValue;
+ auto promo_list = base::MakeUnique<base::ListValue>();
promo_list->Append(std::move(ntp_promo));
std::string promo_list_key = "mobile_ntp_whats_new_promo";
std::string promo_dict_key = "ios.ntppromo";
base::DictionaryValue promo_dict;
- promo_dict.Set(promo_list_key, promo_list);
+ promo_dict.Set(promo_list_key, std::move(promo_list));
local_state_.Set(promo_dict_key, promo_dict);
// Initialize promo and verify that its instance variables match the data
diff --git a/ios/chrome/browser/ui/webui/flags_ui.cc b/ios/chrome/browser/ui/webui/flags_ui.cc
index f9246df..67968c2 100644
--- a/ios/chrome/browser/ui/webui/flags_ui.cc
+++ b/ios/chrome/browser/ui/webui/flags_ui.cc
@@ -5,6 +5,7 @@
#include "ios/chrome/browser/ui/webui/flags_ui.h"
#include <string>
+#include <utility>
#include "base/bind.h"
#include "base/bind_helpers.h"
@@ -155,12 +156,12 @@
base::DictionaryValue results;
- std::unique_ptr<base::ListValue> supported_features(new base::ListValue);
- std::unique_ptr<base::ListValue> unsupported_features(new base::ListValue);
+ auto supported_features = base::MakeUnique<base::ListValue>();
+ auto unsupported_features = base::MakeUnique<base::ListValue>();
GetFlagFeatureEntries(flags_storage_.get(), access_, supported_features.get(),
unsupported_features.get());
- results.Set(flags_ui::kSupportedFeatures, supported_features.release());
- results.Set(flags_ui::kUnsupportedFeatures, unsupported_features.release());
+ results.Set(flags_ui::kSupportedFeatures, std::move(supported_features));
+ results.Set(flags_ui::kUnsupportedFeatures, std::move(unsupported_features));
// Cannot restart the browser on iOS.
results.SetBoolean(flags_ui::kNeedsRestart, false);
results.SetBoolean(flags_ui::kShowOwnerWarning,
diff --git a/ios/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc b/ios/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
index 164e4c11..b4d5214 100644
--- a/ios/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
+++ b/ios/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
@@ -4,6 +4,7 @@
#include "ios/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h"
+#include <utility>
#include <vector>
#include "base/logging.h"
@@ -125,7 +126,7 @@
it.Inc()) {
type_list->AppendString(ModelTypeToString(it.Get()));
}
- event_details.Set(syncer::sync_ui_util::kTypes, type_list.release());
+ event_details.Set(syncer::sync_ui_util::kTypes, std::move(type_list));
web_ui()->CallJavascriptFunction(
syncer::sync_ui_util::kDispatchEvent,
base::Value(syncer::sync_ui_util::kOnReceivedListOfTypes), event_details);
@@ -192,7 +193,7 @@
std::unique_ptr<base::DictionaryValue> details(new base::DictionaryValue());
details->SetString(syncer::sync_ui_util::kModelType, ModelTypeToString(type));
details->SetString(syncer::sync_ui_util::kCounterType, counter_type);
- details->Set(syncer::sync_ui_util::kCounters, value.release());
+ details->Set(syncer::sync_ui_util::kCounters, std::move(value));
web_ui()->CallJavascriptFunction(
syncer::sync_ui_util::kDispatchEvent,
base::Value(syncer::sync_ui_util::kOnCountersUpdated), *details);
diff --git a/ipc/ipc_message_unittest.cc b/ipc/ipc_message_unittest.cc
index 8e59e00..4e5bf07 100644
--- a/ipc/ipc_message_unittest.cc
+++ b/ipc/ipc_message_unittest.cc
@@ -10,6 +10,7 @@
#include <limits>
#include <memory>
+#include <utility>
#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
@@ -89,21 +90,21 @@
TEST(IPCMessageTest, DictionaryValue) {
base::DictionaryValue input;
input.Set("null", base::MakeUnique<base::Value>());
- input.Set("bool", new base::Value(true));
- input.Set("int", new base::Value(42));
+ input.SetBoolean("bool", true);
+ input.SetInteger("int", 42);
input.SetIntegerWithoutPathExpansion("int.with.dot", 43);
- std::unique_ptr<base::DictionaryValue> subdict(new base::DictionaryValue());
- subdict->Set("str", new base::Value("forty two"));
- subdict->Set("bool", new base::Value(false));
+ auto subdict = base::MakeUnique<base::DictionaryValue>();
+ subdict->SetString("str", "forty two");
+ subdict->SetBoolean("bool", false);
- std::unique_ptr<base::ListValue> sublist(new base::ListValue());
+ auto sublist = base::MakeUnique<base::ListValue>();
sublist->AppendDouble(42.42);
sublist->AppendString("forty");
sublist->AppendString("two");
- subdict->Set("list", sublist.release());
+ subdict->Set("list", std::move(sublist));
- input.Set("dict", subdict.release());
+ input.Set("dict", std::move(subdict));
IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
IPC::WriteParam(&msg, input);
diff --git a/media/cast/logging/stats_event_subscriber.cc b/media/cast/logging/stats_event_subscriber.cc
index 3742b5e..f3e25f6f 100644
--- a/media/cast/logging/stats_event_subscriber.cc
+++ b/media/cast/logging/stats_event_subscriber.cc
@@ -10,6 +10,7 @@
#include "base/format_macros.h"
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/stringprintf.h"
#include "base/values.h"
@@ -227,9 +228,9 @@
std::unique_ptr<base::DictionaryValue> StatsEventSubscriber::GetStats() const {
StatsMap stats_map;
GetStatsInternal(&stats_map);
- std::unique_ptr<base::DictionaryValue> ret(new base::DictionaryValue);
+ auto ret = base::MakeUnique<base::DictionaryValue>();
- std::unique_ptr<base::DictionaryValue> stats(new base::DictionaryValue);
+ auto stats = base::MakeUnique<base::DictionaryValue>();
for (StatsMap::const_iterator it = stats_map.begin(); it != stats_map.end();
++it) {
// Round to 3 digits after the decimal point.
@@ -241,12 +242,11 @@
for (HistogramMap::const_iterator it = histograms_.begin();
it != histograms_.end();
++it) {
- stats->Set(CastStatToString(it->first),
- it->second->GetHistogram().release());
+ stats->Set(CastStatToString(it->first), it->second->GetHistogram());
}
ret->Set(event_media_type_ == AUDIO_EVENT ? "audio" : "video",
- stats.release());
+ std::move(stats));
return ret;
}
diff --git a/media/cdm/json_web_key.cc b/media/cdm/json_web_key.cc
index fb70224..7431b8d4 100644
--- a/media/cdm/json_web_key.cc
+++ b/media/cdm/json_web_key.cc
@@ -7,6 +7,7 @@
#include <stddef.h>
#include <memory>
+#include <utility>
#include "base/base64url.h"
#include "base/json/json_reader.h"
@@ -14,6 +15,7 @@
#include "base/json/string_escape.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
#include "base/strings/string_util.h"
@@ -61,7 +63,7 @@
base::StringPiece(reinterpret_cast<const char*>(key_id), key_id_length),
base::Base64UrlEncodePolicy::OMIT_PADDING, &key_id_string);
- std::unique_ptr<base::DictionaryValue> jwk(new base::DictionaryValue());
+ auto jwk = base::MakeUnique<base::DictionaryValue>();
jwk->SetString(kKeyTypeTag, kKeyTypeOct);
jwk->SetString(kKeyTag, key_string);
jwk->SetString(kKeyIdTag, key_id_string);
@@ -73,10 +75,10 @@
const uint8_t* key_id,
int key_id_length) {
// Create the JWK, and wrap it into a JWK Set.
- std::unique_ptr<base::ListValue> list(new base::ListValue());
+ auto list = base::MakeUnique<base::ListValue>();
list->Append(CreateJSONDictionary(key, key_length, key_id, key_id_length));
base::DictionaryValue jwk_set;
- jwk_set.Set(kKeysTag, list.release());
+ jwk_set.Set(kKeysTag, std::move(list));
// Finally serialize |jwk_set| into a string and return it.
std::string serialized_jwk;
@@ -87,7 +89,7 @@
std::string GenerateJWKSet(const KeyIdAndKeyPairs& keys,
CdmSessionType session_type) {
- std::unique_ptr<base::ListValue> list(new base::ListValue());
+ auto list = base::MakeUnique<base::ListValue>();
for (const auto& key_pair : keys) {
list->Append(CreateJSONDictionary(
reinterpret_cast<const uint8_t*>(key_pair.second.data()),
@@ -97,7 +99,7 @@
}
base::DictionaryValue jwk_set;
- jwk_set.Set(kKeysTag, list.release());
+ jwk_set.Set(kKeysTag, std::move(list));
switch (session_type) {
case CdmSessionType::TEMPORARY_SESSION:
jwk_set.SetString(kTypeTag, kTemporarySession);
@@ -302,8 +304,8 @@
CdmSessionType session_type,
std::vector<uint8_t>* license) {
// Create the license request.
- std::unique_ptr<base::DictionaryValue> request(new base::DictionaryValue());
- std::unique_ptr<base::ListValue> list(new base::ListValue());
+ auto request = base::MakeUnique<base::DictionaryValue>();
+ auto list = base::MakeUnique<base::ListValue>();
for (const auto& key_id : key_ids) {
std::string key_id_string;
base::Base64UrlEncode(
@@ -313,7 +315,7 @@
list->AppendString(key_id_string);
}
- request->Set(kKeyIdsTag, list.release());
+ request->Set(kKeyIdsTag, std::move(list));
switch (session_type) {
case CdmSessionType::TEMPORARY_SESSION:
@@ -340,9 +342,8 @@
void CreateKeyIdsInitData(const KeyIdList& key_ids,
std::vector<uint8_t>* init_data) {
// Create the init_data.
- std::unique_ptr<base::DictionaryValue> dictionary(
- new base::DictionaryValue());
- std::unique_ptr<base::ListValue> list(new base::ListValue());
+ auto dictionary = base::MakeUnique<base::DictionaryValue>();
+ auto list = base::MakeUnique<base::ListValue>();
for (const auto& key_id : key_ids) {
std::string key_id_string;
base::Base64UrlEncode(
@@ -352,7 +353,7 @@
list->AppendString(key_id_string);
}
- dictionary->Set(kKeyIdsTag, list.release());
+ dictionary->Set(kKeyIdsTag, std::move(list));
// Serialize the dictionary as a string.
std::string json;
diff --git a/net/http/http_proxy_client_socket_pool.cc b/net/http/http_proxy_client_socket_pool.cc
index 7375920d..b267302 100644
--- a/net/http/http_proxy_client_socket_pool.cc
+++ b/net/http/http_proxy_client_socket_pool.cc
@@ -8,6 +8,7 @@
#include <utility>
#include "base/compiler_specific.h"
+#include "base/memory/ptr_util.h"
#include "base/time/time.h"
#include "base/values.h"
#include "net/base/load_flags.h"
@@ -291,7 +292,7 @@
bool include_nested_pools) const {
std::unique_ptr<base::DictionaryValue> dict(base_.GetInfoAsValue(name, type));
if (include_nested_pools) {
- base::ListValue* list = new base::ListValue();
+ auto list = base::MakeUnique<base::ListValue>();
if (transport_pool_) {
list->Append(transport_pool_->GetInfoAsValue("transport_socket_pool",
"transport_socket_pool",
@@ -302,7 +303,7 @@
"ssl_socket_pool",
true));
}
- dict->Set("nested_pools", list);
+ dict->Set("nested_pools", std::move(list));
}
return dict;
}
diff --git a/net/reporting/reporting_delivery_agent.cc b/net/reporting/reporting_delivery_agent.cc
index 3d42797f..fb12d03 100644
--- a/net/reporting/reporting_delivery_agent.cc
+++ b/net/reporting/reporting_delivery_agent.cc
@@ -41,7 +41,7 @@
report_value->SetInteger("age", (now - report->queued).InMilliseconds());
report_value->SetString("type", report->type);
report_value->SetString("url", report->url.spec());
- report_value->Set("report", report->body->DeepCopy());
+ report_value->Set("report", base::MakeUnique<base::Value>(*report->body));
reports_value.Append(std::move(report_value));
}
diff --git a/net/test/spawned_test_server/base_test_server.cc b/net/test/spawned_test_server/base_test_server.cc
index ab46afb..5ad64cd 100644
--- a/net/test/spawned_test_server/base_test_server.cc
+++ b/net/test/spawned_test_server/base_test_server.cc
@@ -85,18 +85,18 @@
values->AppendString("aes128gcm");
}
-base::Value* GetTLSIntoleranceType(
+std::unique_ptr<base::Value> GetTLSIntoleranceType(
BaseTestServer::SSLOptions::TLSIntoleranceType type) {
switch (type) {
case BaseTestServer::SSLOptions::TLS_INTOLERANCE_ALERT:
- return new base::Value("alert");
+ return base::MakeUnique<base::Value>("alert");
case BaseTestServer::SSLOptions::TLS_INTOLERANCE_CLOSE:
- return new base::Value("close");
+ return base::MakeUnique<base::Value>("close");
case BaseTestServer::SSLOptions::TLS_INTOLERANCE_RESET:
- return new base::Value("reset");
+ return base::MakeUnique<base::Value>("reset");
default:
NOTREACHED();
- return new base::Value("");
+ return base::MakeUnique<base::Value>("");
}
}
diff --git a/printing/print_settings_conversion.cc b/printing/print_settings_conversion.cc
index 7e8840cd..8f9bd3f 100644
--- a/printing/print_settings_conversion.cc
+++ b/printing/print_settings_conversion.cc
@@ -12,6 +12,7 @@
#include <string>
#include <utility>
+#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
@@ -44,32 +45,32 @@
void SetMarginsToJobSettings(const std::string& json_path,
const PageMargins& margins,
base::DictionaryValue* job_settings) {
- base::DictionaryValue* dict = new base::DictionaryValue;
- job_settings->Set(json_path, dict);
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetInteger(kSettingMarginTop, margins.top);
dict->SetInteger(kSettingMarginBottom, margins.bottom);
dict->SetInteger(kSettingMarginLeft, margins.left);
dict->SetInteger(kSettingMarginRight, margins.right);
+ job_settings->Set(json_path, std::move(dict));
}
void SetSizeToJobSettings(const std::string& json_path,
const gfx::Size& size,
base::DictionaryValue* job_settings) {
- base::DictionaryValue* dict = new base::DictionaryValue;
- job_settings->Set(json_path, dict);
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetInteger("width", size.width());
dict->SetInteger("height", size.height());
+ job_settings->Set(json_path, std::move(dict));
}
void SetRectToJobSettings(const std::string& json_path,
const gfx::Rect& rect,
base::DictionaryValue* job_settings) {
- base::DictionaryValue* dict = new base::DictionaryValue;
- job_settings->Set(json_path, dict);
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetInteger("x", rect.x());
dict->SetInteger("y", rect.y());
dict->SetInteger("width", rect.width());
dict->SetInteger("height", rect.height());
+ job_settings->Set(json_path, std::move(dict));
}
} // namespace
@@ -229,14 +230,14 @@
settings.selection_only());
job_settings->SetInteger(kSettingMarginsType, settings.margin_type());
if (!settings.ranges().empty()) {
- base::ListValue* page_range_array = new base::ListValue;
- job_settings->Set(kSettingPageRange, page_range_array);
+ auto page_range_array = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < settings.ranges().size(); ++i) {
- std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
+ auto dict = base::MakeUnique<base::DictionaryValue>();
dict->SetInteger(kSettingPageRangeFrom, settings.ranges()[i].from + 1);
dict->SetInteger(kSettingPageRangeTo, settings.ranges()[i].to + 1);
page_range_array->Append(std::move(dict));
}
+ job_settings->Set(kSettingPageRange, std::move(page_range_array));
}
job_settings->SetBoolean(kSettingCollate, settings.collate());
@@ -248,24 +249,26 @@
// Following values are not read form JSON by InitSettings, so do not have
// common public constants. So just serialize in "debug" section.
- base::DictionaryValue* debug = new base::DictionaryValue;
- job_settings->Set("debug", debug);
+ auto debug = base::MakeUnique<base::DictionaryValue>();
debug->SetInteger("dpi", settings.dpi());
debug->SetInteger("deviceUnitsPerInch", settings.device_units_per_inch());
debug->SetBoolean("support_alpha_blend", settings.should_print_backgrounds());
debug->SetString("media_vendor_id", settings.requested_media().vendor_id);
- SetSizeToJobSettings(
- "media_size", settings.requested_media().size_microns, debug);
+ SetSizeToJobSettings("media_size", settings.requested_media().size_microns,
+ debug.get());
SetMarginsToJobSettings("requested_custom_margins_in_points",
settings.requested_custom_margins_in_points(),
- debug);
+ debug.get());
const PageSetup& page_setup = settings.page_setup_device_units();
- SetMarginsToJobSettings(
- "effective_margins", page_setup.effective_margins(), debug);
- SetSizeToJobSettings("physical_size", page_setup.physical_size(), debug);
- SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug);
- SetRectToJobSettings("content_area", page_setup.content_area(), debug);
- SetRectToJobSettings("printable_area", page_setup.printable_area(), debug);
+ SetMarginsToJobSettings("effective_margins", page_setup.effective_margins(),
+ debug.get());
+ SetSizeToJobSettings("physical_size", page_setup.physical_size(),
+ debug.get());
+ SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug.get());
+ SetRectToJobSettings("content_area", page_setup.content_area(), debug.get());
+ SetRectToJobSettings("printable_area", page_setup.printable_area(),
+ debug.get());
+ job_settings->Set("debug", std::move(debug));
}
} // namespace printing
diff --git a/remoting/client/plugin/chromoting_instance.cc b/remoting/client/plugin/chromoting_instance.cc
index ecaa19a3..95c0fe4 100644
--- a/remoting/client/plugin/chromoting_instance.cc
+++ b/remoting/client/plugin/chromoting_instance.cc
@@ -360,7 +360,7 @@
}
std::unique_ptr<base::DictionaryValue> data(new base::DictionaryValue());
- data->Set("rects", rects_value.release());
+ data->Set("rects", std::move(rects_value));
PostLegacyJsonMessage("onDebugRegion", std::move(data));
}
@@ -1002,7 +1002,7 @@
std::unique_ptr<base::DictionaryValue> data) {
base::DictionaryValue message;
message.SetString("method", method);
- message.Set("data", data.release());
+ message.Set("data", std::move(data));
std::string message_json;
base::JSONWriter::Write(message, &message_json);
diff --git a/remoting/host/it2me/it2me_native_messaging_host.cc b/remoting/host/it2me/it2me_native_messaging_host.cc
index b824c1b..bee792e0 100644
--- a/remoting/host/it2me/it2me_native_messaging_host.cc
+++ b/remoting/host/it2me/it2me_native_messaging_host.cc
@@ -13,6 +13,7 @@
#include "base/callback_helpers.h"
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
+#include "base/memory/ptr_util.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -133,7 +134,7 @@
// might be a string or a number, so cope with both.
const base::Value* id;
if (message_dict->Get("id", &id))
- response->Set("id", id->CreateDeepCopy());
+ response->Set("id", base::MakeUnique<base::Value>(*id));
std::string type;
if (!message_dict->GetString("type", &type)) {
@@ -183,9 +184,7 @@
response->SetString("version", STRINGIZE(VERSION));
// This list will be populated when new features are added.
- std::unique_ptr<base::ListValue> supported_features_list(
- new base::ListValue());
- response->Set("supportedFeatures", supported_features_list.release());
+ response->Set("supportedFeatures", base::MakeUnique<base::ListValue>());
SendMessageToClient(std::move(response));
}
diff --git a/remoting/host/security_key/security_key_extension_session.cc b/remoting/host/security_key/security_key_extension_session.cc
index 966204d..bdaa7b8 100644
--- a/remoting/host/security_key/security_key_extension_session.cc
+++ b/remoting/host/security_key/security_key_extension_session.cc
@@ -4,11 +4,14 @@
#include "remoting/host/security_key/security_key_extension_session.h"
+#include <utility>
+
#include "base/bind.h"
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/single_thread_task_runner.h"
#include "base/values.h"
#include "remoting/base/logging.h"
@@ -187,11 +190,11 @@
request.SetString(kMessageType, kDataMessage);
request.SetInteger(kConnectionId, connection_id);
- std::unique_ptr<base::ListValue> bytes(new base::ListValue());
+ auto bytes = base::MakeUnique<base::ListValue>();
for (std::string::const_iterator i = data.begin(); i != data.end(); ++i) {
bytes->AppendInteger(static_cast<unsigned char>(*i));
}
- request.Set(kDataPayload, bytes.release());
+ request.Set(kDataPayload, std::move(bytes));
std::string request_json;
CHECK(base::JSONWriter::Write(request, &request_json));
diff --git a/remoting/host/setup/me2me_native_messaging_host.cc b/remoting/host/setup/me2me_native_messaging_host.cc
index 79db06a3..544945f 100644
--- a/remoting/host/setup/me2me_native_messaging_host.cc
+++ b/remoting/host/setup/me2me_native_messaging_host.cc
@@ -96,7 +96,7 @@
void Me2MeNativeMessagingHost::OnMessage(const std::string& message) {
DCHECK(task_runner()->BelongsToCurrentThread());
- std::unique_ptr<base::DictionaryValue> response(new base::DictionaryValue());
+ auto response = base::MakeUnique<base::DictionaryValue>();
std::unique_ptr<base::Value> message_value = base::JSONReader::Read(message);
if (!message_value->IsType(base::Value::Type::DICTIONARY)) {
OnError("Received a message that's not a dictionary.");
@@ -110,7 +110,7 @@
// might be a string or a number, so cope with both.
const base::Value* id;
if (message_dict->Get("id", &id))
- response->Set("id", id->CreateDeepCopy());
+ response->Set("id", base::MakeUnique<base::Value>(*id));
std::string type;
if (!message_dict->GetString("type", &type)) {
@@ -181,7 +181,7 @@
new base::ListValue());
supported_features_list->AppendStrings(std::vector<std::string>(
kSupportedFeatures, kSupportedFeatures + arraysize(kSupportedFeatures)));
- response->Set("supportedFeatures", supported_features_list.release());
+ response->Set("supportedFeatures", std::move(supported_features_list));
SendMessageToClient(std::move(response));
}
@@ -456,7 +456,7 @@
DCHECK(task_runner()->BelongsToCurrentThread());
if (config) {
- response->Set("config", config.release());
+ response->Set("config", std::move(config));
} else {
response->Set("config", base::MakeUnique<base::Value>());
}
@@ -468,7 +468,7 @@
std::unique_ptr<base::ListValue> pairings) {
DCHECK(task_runner()->BelongsToCurrentThread());
- response->Set("pairedClients", pairings.release());
+ response->Set("pairedClients", std::move(pairings));
SendMessageToClient(std::move(response));
}
diff --git a/rlz/chromeos/lib/rlz_value_store_chromeos.cc b/rlz/chromeos/lib/rlz_value_store_chromeos.cc
index 65b5634..1de9f693 100644
--- a/rlz/chromeos/lib/rlz_value_store_chromeos.cc
+++ b/rlz/chromeos/lib/rlz_value_store_chromeos.cc
@@ -250,8 +250,8 @@
std::unique_ptr<base::Value> value) {
base::ListValue* list_value = NULL;
if (!rlz_store_->GetList(list_name, &list_value)) {
- list_value = new base::ListValue;
- rlz_store_->Set(list_name, list_value);
+ list_value =
+ rlz_store_->SetList(list_name, base::MakeUnique<base::ListValue>());
}
list_value->AppendIfNotPresent(std::move(value));
return true;
diff --git a/services/preferences/tracked/dictionary_hash_store_contents.cc b/services/preferences/tracked/dictionary_hash_store_contents.cc
index 3cef69b0..2901657e 100644
--- a/services/preferences/tracked/dictionary_hash_store_contents.cc
+++ b/services/preferences/tracked/dictionary_hash_store_contents.cc
@@ -7,6 +7,7 @@
#include "base/callback.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/values.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/persistent_pref_store.h"
@@ -94,7 +95,7 @@
void DictionaryHashStoreContents::ImportEntry(const std::string& path,
const base::Value* in_value) {
base::DictionaryValue* macs_dict = GetMutableContents(true);
- macs_dict->Set(path, in_value->DeepCopy());
+ macs_dict->Set(path, base::MakeUnique<base::Value>(*in_value));
}
bool DictionaryHashStoreContents::RemoveEntry(const std::string& path) {
@@ -126,8 +127,8 @@
base::DictionaryValue* macs_dict = NULL;
storage_->GetDictionary(kPreferenceMACs, &macs_dict);
if (!macs_dict && create_if_null) {
- macs_dict = new base::DictionaryValue;
- storage_->Set(kPreferenceMACs, macs_dict);
+ macs_dict = storage_->SetDictionary(
+ kPreferenceMACs, base::MakeUnique<base::DictionaryValue>());
}
return macs_dict;
}
diff --git a/services/preferences/tracked/pref_hash_calculator_unittest.cc b/services/preferences/tracked/pref_hash_calculator_unittest.cc
index df3746a..0dc97651 100644
--- a/services/preferences/tracked/pref_hash_calculator_unittest.cc
+++ b/services/preferences/tracked/pref_hash_calculator_unittest.cc
@@ -6,6 +6,7 @@
#include <memory>
#include <string>
+#include <utility>
#include "base/macros.h"
#include "base/memory/ptr_util.h"
@@ -18,7 +19,8 @@
base::Value string_value_2("string value 2");
base::DictionaryValue dictionary_value_1;
dictionary_value_1.SetInteger("int value", 1);
- dictionary_value_1.Set("nested empty map", new base::DictionaryValue);
+ dictionary_value_1.Set("nested empty map",
+ base::MakeUnique<base::DictionaryValue>());
base::DictionaryValue dictionary_value_1_equivalent;
dictionary_value_1_equivalent.SetInteger("int value", 1);
base::DictionaryValue dictionary_value_2;
@@ -77,34 +79,33 @@
static const char kDeviceId[] = "test_device_id1";
auto null_value = base::MakeUnique<base::Value>();
- std::unique_ptr<base::Value> bool_value(new base::Value(false));
- std::unique_ptr<base::Value> int_value(new base::Value(1234567890));
- std::unique_ptr<base::Value> double_value(new base::Value(123.0987654321));
- std::unique_ptr<base::Value> string_value(
- new base::Value("testing with special chars:\n<>{}:^^@#$\\/"));
+ auto bool_value = base::MakeUnique<base::Value>(false);
+ auto int_value = base::MakeUnique<base::Value>(1234567890);
+ auto double_value = base::MakeUnique<base::Value>(123.0987654321);
+ auto string_value = base::MakeUnique<base::Value>(
+ "testing with special chars:\n<>{}:^^@#$\\/");
// For legacy reasons, we have to support pruning of empty lists/dictionaries
// and nested empty ists/dicts in the hash generation algorithm.
- std::unique_ptr<base::DictionaryValue> nested_empty_dict(
- new base::DictionaryValue);
- nested_empty_dict->Set("a", new base::DictionaryValue);
- nested_empty_dict->Set("b", new base::ListValue);
- std::unique_ptr<base::ListValue> nested_empty_list(new base::ListValue);
+ auto nested_empty_dict = base::MakeUnique<base::DictionaryValue>();
+ nested_empty_dict->Set("a", base::MakeUnique<base::DictionaryValue>());
+ nested_empty_dict->Set("b", base::MakeUnique<base::ListValue>());
+ auto nested_empty_list = base::MakeUnique<base::ListValue>();
nested_empty_list->Append(base::MakeUnique<base::DictionaryValue>());
nested_empty_list->Append(base::MakeUnique<base::ListValue>());
- nested_empty_list->Append(nested_empty_dict->CreateDeepCopy());
+ nested_empty_list->Append(base::MakeUnique<base::Value>(*nested_empty_dict));
// A dictionary with an empty dictionary, an empty list, and nested empty
// dictionaries/lists in it.
- std::unique_ptr<base::DictionaryValue> dict_value(new base::DictionaryValue);
- dict_value->Set("a", new base::Value("foo"));
- dict_value->Set("d", new base::ListValue);
- dict_value->Set("b", new base::DictionaryValue);
- dict_value->Set("c", new base::Value("baz"));
- dict_value->Set("e", nested_empty_dict.release());
- dict_value->Set("f", nested_empty_list.release());
+ auto dict_value = base::MakeUnique<base::DictionaryValue>();
+ dict_value->SetString("a", "foo");
+ dict_value->Set("d", base::MakeUnique<base::ListValue>());
+ dict_value->Set("b", base::MakeUnique<base::DictionaryValue>());
+ dict_value->SetString("c", "baz");
+ dict_value->Set("e", std::move(nested_empty_dict));
+ dict_value->Set("f", std::move(nested_empty_list));
- std::unique_ptr<base::ListValue> list_value(new base::ListValue);
+ auto list_value = base::MakeUnique<base::ListValue>();
list_value->AppendBoolean(true);
list_value->AppendInteger(100);
list_value->AppendDouble(1.0);
@@ -166,13 +167,13 @@
// Also test every value type together in the same dictionary.
base::DictionaryValue everything;
- everything.Set("null", null_value.release());
- everything.Set("bool", bool_value.release());
- everything.Set("int", int_value.release());
- everything.Set("double", double_value.release());
- everything.Set("string", string_value.release());
- everything.Set("list", list_value.release());
- everything.Set("dict", dict_value.release());
+ everything.Set("null", std::move(null_value));
+ everything.Set("bool", std::move(bool_value));
+ everything.Set("int", std::move(int_value));
+ everything.Set("double", std::move(double_value));
+ everything.Set("string", std::move(string_value));
+ everything.Set("list", std::move(list_value));
+ everything.Set("dict", std::move(dict_value));
static const char kExpectedEverythingValue[] =
"B97D09BE7005693574DCBDD03D8D9E44FB51F4008B73FB56A49A9FA671A1999B";
EXPECT_EQ(PrefHashCalculator::VALID,
diff --git a/services/preferences/tracked/pref_hash_filter.cc b/services/preferences/tracked/pref_hash_filter.cc
index 29d6b9a..a0b94df 100644
--- a/services/preferences/tracked/pref_hash_filter.cc
+++ b/services/preferences/tracked/pref_hash_filter.cc
@@ -243,9 +243,9 @@
}
if (did_reset) {
- pref_store_contents->Set(user_prefs::kPreferenceResetTime,
- new base::Value(base::Int64ToString(
- base::Time::Now().ToInternalValue())));
+ pref_store_contents->SetString(
+ user_prefs::kPreferenceResetTime,
+ base::Int64ToString(base::Time::Now().ToInternalValue()));
FilterUpdate(user_prefs::kPreferenceResetTime);
if (reset_on_load_observer_)
diff --git a/services/preferences/tracked/pref_hash_filter_unittest.cc b/services/preferences/tracked/pref_hash_filter_unittest.cc
index f46d9a6..b1e0258c 100644
--- a/services/preferences/tracked/pref_hash_filter_unittest.cc
+++ b/services/preferences/tracked/pref_hash_filter_unittest.cc
@@ -684,9 +684,7 @@
TEST_P(PrefHashFilterTest, FilterTrackedPrefUpdate) {
base::DictionaryValue root_dict;
- // Ownership of |string_value| is transfered to |root_dict|.
- base::Value* string_value = new base::Value("string value");
- root_dict.Set(kAtomicPref, string_value);
+ base::Value* string_value = root_dict.SetString(kAtomicPref, "string value");
// No path should be stored on FilterUpdate.
pref_hash_filter_->FilterUpdate(kAtomicPref);
@@ -742,11 +740,10 @@
TEST_P(PrefHashFilterTest, FilterSplitPrefUpdate) {
base::DictionaryValue root_dict;
- // Ownership of |dict_value| is transfered to |root_dict|.
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ base::DictionaryValue* dict_value = root_dict.SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
- root_dict.Set(kSplitPref, dict_value);
// No path should be stored on FilterUpdate.
pref_hash_filter_->FilterUpdate(kSplitPref);
@@ -766,7 +763,7 @@
TEST_P(PrefHashFilterTest, FilterUntrackedPrefUpdate) {
base::DictionaryValue root_dict;
- root_dict.Set("untracked", new base::Value("some value"));
+ root_dict.SetString("untracked", "some value");
pref_hash_filter_->FilterUpdate("untracked");
// No paths should be stored on FilterUpdate.
@@ -783,18 +780,13 @@
TEST_P(PrefHashFilterTest, MultiplePrefsFilterSerializeData) {
base::DictionaryValue root_dict;
- // Ownership of the following values is transfered to |root_dict|.
- base::Value* int_value1 = new base::Value(1);
- base::Value* int_value2 = new base::Value(2);
- base::Value* int_value3 = new base::Value(3);
- base::Value* int_value4 = new base::Value(4);
- base::DictionaryValue* dict_value = new base::DictionaryValue;
- dict_value->Set("a", new base::Value(true));
- root_dict.Set(kAtomicPref, int_value1);
- root_dict.Set(kAtomicPref2, int_value2);
- root_dict.Set(kAtomicPref3, int_value3);
- root_dict.Set("untracked", int_value4);
- root_dict.Set(kSplitPref, dict_value);
+ base::Value* int_value1 = root_dict.SetInteger(kAtomicPref, 1);
+ root_dict.SetInteger(kAtomicPref2, 2);
+ root_dict.SetInteger(kAtomicPref3, 3);
+ root_dict.SetInteger("untracked", 4);
+ base::DictionaryValue* dict_value = root_dict.SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
+ dict_value->SetBoolean("a", true);
// Only update kAtomicPref, kAtomicPref3, and kSplitPref.
pref_hash_filter_->FilterUpdate(kAtomicPref);
@@ -803,8 +795,7 @@
ASSERT_EQ(0u, mock_pref_hash_store_->stored_paths_count());
// Update kAtomicPref3 again, nothing should be stored still.
- base::Value* int_value5 = new base::Value(5);
- root_dict.Set(kAtomicPref3, int_value5);
+ base::Value* int_value5 = root_dict.SetInteger(kAtomicPref3, 5);
ASSERT_EQ(0u, mock_pref_hash_store_->stored_paths_count());
// On FilterSerializeData, only kAtomicPref, kAtomicPref3, and kSplitPref
@@ -872,14 +863,13 @@
}
TEST_P(PrefHashFilterTest, InitialValueUnknown) {
- // Ownership of these values is transfered to |pref_store_contents_|.
- base::Value* string_value = new base::Value("string value");
- pref_store_contents_->Set(kAtomicPref, string_value);
+ base::Value* string_value =
+ pref_store_contents_->SetString(kAtomicPref, "string value");
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ base::DictionaryValue* dict_value = pref_store_contents_->SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
- pref_store_contents_->Set(kSplitPref, dict_value);
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref, NULL));
ASSERT_TRUE(pref_store_contents_->Get(kSplitPref, NULL));
@@ -938,14 +928,13 @@
}
TEST_P(PrefHashFilterTest, InitialValueTrustedUnknown) {
- // Ownership of this value is transfered to |pref_store_contents_|.
- base::Value* string_value = new base::Value("test");
- pref_store_contents_->Set(kAtomicPref, string_value);
+ base::Value* string_value =
+ pref_store_contents_->SetString(kAtomicPref, "test");
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ auto* dict_value = pref_store_contents_->SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
- pref_store_contents_->Set(kSplitPref, dict_value);
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref, NULL));
ASSERT_TRUE(pref_store_contents_->Get(kSplitPref, NULL));
@@ -988,16 +977,14 @@
}
TEST_P(PrefHashFilterTest, InitialValueChanged) {
- // Ownership of this value is transfered to |pref_store_contents_|.
- base::Value* int_value = new base::Value(1234);
- pref_store_contents_->Set(kAtomicPref, int_value);
+ base::Value* int_value = pref_store_contents_->SetInteger(kAtomicPref, 1234);
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ base::DictionaryValue* dict_value = pref_store_contents_->SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
dict_value->SetInteger("c", 56);
dict_value->SetBoolean("d", false);
- pref_store_contents_->Set(kSplitPref, dict_value);
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref, NULL));
ASSERT_TRUE(pref_store_contents_->Get(kSplitPref, NULL));
@@ -1098,14 +1085,13 @@
}
TEST_P(PrefHashFilterTest, InitialValueUnchangedLegacyId) {
- // Ownership of these values is transfered to |pref_store_contents_|.
- base::Value* string_value = new base::Value("string value");
- pref_store_contents_->Set(kAtomicPref, string_value);
+ base::Value* string_value =
+ pref_store_contents_->SetString(kAtomicPref, "string value");
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ base::DictionaryValue* dict_value = pref_store_contents_->SetDictionary(
+ kSplitPref, base::MakeUnique<base::DictionaryValue>());
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
- pref_store_contents_->Set(kSplitPref, dict_value);
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref, NULL));
ASSERT_TRUE(pref_store_contents_->Get(kSplitPref, NULL));
@@ -1152,16 +1138,14 @@
}
TEST_P(PrefHashFilterTest, DontResetReportOnly) {
- // Ownership of these values is transfered to |pref_store_contents_|.
- base::Value* int_value1 = new base::Value(1);
- base::Value* int_value2 = new base::Value(2);
- base::Value* report_only_val = new base::Value(3);
- base::DictionaryValue* report_only_split_val = new base::DictionaryValue;
+ base::Value* int_value1 = pref_store_contents_->SetInteger(kAtomicPref, 1);
+ base::Value* int_value2 = pref_store_contents_->SetInteger(kAtomicPref2, 2);
+ base::Value* report_only_val =
+ pref_store_contents_->SetInteger(kReportOnlyPref, 3);
+ base::DictionaryValue* report_only_split_val =
+ pref_store_contents_->SetDictionary(
+ kReportOnlySplitPref, base::MakeUnique<base::DictionaryValue>());
report_only_split_val->SetInteger("a", 1234);
- pref_store_contents_->Set(kAtomicPref, int_value1);
- pref_store_contents_->Set(kAtomicPref2, int_value2);
- pref_store_contents_->Set(kReportOnlyPref, report_only_val);
- pref_store_contents_->Set(kReportOnlySplitPref, report_only_split_val);
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref, NULL));
ASSERT_TRUE(pref_store_contents_->Get(kAtomicPref2, NULL));
@@ -1226,14 +1210,11 @@
TEST_P(PrefHashFilterTest, CallFilterSerializeDataCallbacks) {
base::DictionaryValue root_dict;
- // Ownership of the following values is transfered to |root_dict|.
- base::Value* int_value1 = new base::Value(1);
- base::Value* int_value2 = new base::Value(2);
- base::DictionaryValue* dict_value = new base::DictionaryValue;
- dict_value->Set("a", new base::Value(true));
- root_dict.Set(kAtomicPref, int_value1);
- root_dict.Set(kAtomicPref2, int_value2);
- root_dict.Set(kSplitPref, dict_value);
+ auto dict_value = base::MakeUnique<base::DictionaryValue>();
+ dict_value->SetBoolean("a", true);
+ root_dict.SetInteger(kAtomicPref, 1);
+ root_dict.SetInteger(kAtomicPref2, 2);
+ root_dict.Set(kSplitPref, std::move(dict_value));
// Skip updating kAtomicPref2.
pref_hash_filter_->FilterUpdate(kAtomicPref);
@@ -1275,9 +1256,7 @@
TEST_P(PrefHashFilterTest, CallFilterSerializeDataCallbacksWithFailure) {
base::DictionaryValue root_dict;
- // Ownership of the following values is transfered to |root_dict|.
- base::Value* int_value1 = new base::Value(1);
- root_dict.Set(kAtomicPref, int_value1);
+ root_dict.SetInteger(kAtomicPref, 1);
// Only update kAtomicPref.
pref_hash_filter_->FilterUpdate(kAtomicPref);
@@ -1303,16 +1282,14 @@
}
TEST_P(PrefHashFilterTest, ExternalValidationValueChanged) {
- // Ownership of this value is transfered to |pref_store_contents_|.
- base::Value* int_value = new base::Value(1234);
- pref_store_contents_->Set(kAtomicPref, int_value);
+ pref_store_contents_->SetInteger(kAtomicPref, 1234);
- base::DictionaryValue* dict_value = new base::DictionaryValue;
+ auto dict_value = base::MakeUnique<base::DictionaryValue>();
dict_value->SetString("a", "foo");
dict_value->SetInteger("b", 1234);
dict_value->SetInteger("c", 56);
dict_value->SetBoolean("d", false);
- pref_store_contents_->Set(kSplitPref, dict_value);
+ pref_store_contents_->Set(kSplitPref, std::move(dict_value));
mock_external_validation_pref_hash_store_->SetCheckResult(
kAtomicPref, ValueState::CHANGED);
diff --git a/services/preferences/tracked/pref_hash_store_impl_unittest.cc b/services/preferences/tracked/pref_hash_store_impl_unittest.cc
index 3c6ca13..18014a8 100644
--- a/services/preferences/tracked/pref_hash_store_impl_unittest.cc
+++ b/services/preferences/tracked/pref_hash_store_impl_unittest.cc
@@ -51,8 +51,8 @@
TEST_F(PrefHashStoreImplTest, ComputeSplitMacs) {
base::DictionaryValue dict;
- dict.Set("a", new base::Value("string1"));
- dict.Set("b", new base::Value("string2"));
+ dict.SetString("a", "string1");
+ dict.SetString("b", "string2");
PrefHashStoreImpl pref_hash_store(std::string(32, 0), "device_id", true);
std::unique_ptr<base::DictionaryValue> computed_macs =
@@ -96,10 +96,10 @@
EXPECT_EQ(ValueState::CHANGED, transaction->CheckValue("path1", &string_2));
base::DictionaryValue dict;
- dict.Set("a", new base::Value("foo"));
- dict.Set("d", new base::Value("bad"));
- dict.Set("b", new base::Value("bar"));
- dict.Set("c", new base::Value("baz"));
+ dict.SetString("a", "foo");
+ dict.SetString("d", "bad");
+ dict.SetString("b", "bar");
+ dict.SetString("c", "baz");
transaction->StoreHash("path1", &dict);
EXPECT_EQ(ValueState::UNCHANGED, transaction->CheckValue("path1", &dict));
@@ -311,14 +311,14 @@
TEST_F(PrefHashStoreImplTest, SplitHashStoreAndCheck) {
base::DictionaryValue dict;
- dict.Set("a", new base::Value("to be replaced"));
- dict.Set("b", new base::Value("same"));
- dict.Set("o", new base::Value("old"));
+ dict.SetString("a", "to be replaced");
+ dict.SetString("b", "same");
+ dict.SetString("o", "old");
base::DictionaryValue modified_dict;
- modified_dict.Set("a", new base::Value("replaced"));
- modified_dict.Set("b", new base::Value("same"));
- modified_dict.Set("c", new base::Value("new"));
+ modified_dict.SetString("a", "replaced");
+ modified_dict.SetString("b", "same");
+ modified_dict.SetString("c", "new");
base::DictionaryValue empty_dict;
@@ -428,7 +428,7 @@
// Store hashes for a random dict to be overwritten below.
base::DictionaryValue initial_dict;
- initial_dict.Set("a", new base::Value("foo"));
+ initial_dict.SetString("a", "foo");
transaction->StoreSplitHash("path1", &initial_dict);
// Verify stored empty dictionary matches NULL and empty dictionary back.
@@ -461,8 +461,8 @@
pref_hash_store2.BeginTransaction(GetHashStoreContents()));
base::DictionaryValue tested_dict;
- tested_dict.Set("a", new base::Value("foo"));
- tested_dict.Set("b", new base::Value("bar"));
+ tested_dict.SetString("a", "foo");
+ tested_dict.SetString("b", "bar");
EXPECT_EQ(
ValueState::TRUSTED_UNKNOWN_VALUE,
transaction->CheckSplitValue("new_path", &tested_dict, &invalid_keys));
@@ -480,10 +480,10 @@
base::Value string("string1");
base::DictionaryValue dict;
- dict.Set("a", new base::Value("foo"));
- dict.Set("d", new base::Value("bad"));
- dict.Set("b", new base::Value("bar"));
- dict.Set("c", new base::Value("baz"));
+ dict.SetString("a", "foo");
+ dict.SetString("d", "bad");
+ dict.SetString("b", "bar");
+ dict.SetString("c", "baz");
{
PrefHashStoreImpl pref_hash_store(std::string(32, 0), "device_id", true);
diff --git a/services/preferences/tracked/tracked_preferences_migration.cc b/services/preferences/tracked/tracked_preferences_migration.cc
index f2af336..61a0c80 100644
--- a/services/preferences/tracked/tracked_preferences_migration.cc
+++ b/services/preferences/tracked/tracked_preferences_migration.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/callback.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "base/metrics/histogram.h"
#include "base/values.h"
@@ -164,7 +165,8 @@
// |new_store| having equivalently been successfully flushed to disk
// (e.g., on crash or in cases where |new_store| is read-only following
// a read error on startup).
- new_store->Set(pref_name, value_in_old_store->DeepCopy());
+ new_store->Set(pref_name,
+ base::MakeUnique<base::Value>(*value_in_old_store));
migrated_value = true;
*new_store_altered = true;
}
diff --git a/skia/ext/benchmarking_canvas.cc b/skia/ext/benchmarking_canvas.cc
index da63a1a..1f46938 100644
--- a/skia/ext/benchmarking_canvas.cc
+++ b/skia/ext/benchmarking_canvas.cc
@@ -379,24 +379,23 @@
public:
// AutoOp objects are always scoped within draw call frames,
// so the paint is guaranteed to be valid for their lifetime.
- AutoOp(BenchmarkingCanvas* canvas, const char op_name[],
- const SkPaint* paint = nullptr)
- : canvas_(canvas)
- , op_record_(new base::DictionaryValue())
- , op_params_(new base::ListValue()) {
+ AutoOp(BenchmarkingCanvas* canvas,
+ const char op_name[],
+ const SkPaint* paint = nullptr)
+ : canvas_(canvas), op_record_(new base::DictionaryValue()) {
+ DCHECK(canvas);
+ DCHECK(op_name);
- DCHECK(canvas);
- DCHECK(op_name);
+ op_record_->SetString("cmd_string", op_name);
+ op_params_ =
+ op_record_->SetList("info", base::MakeUnique<base::ListValue>());
- op_record_->SetString("cmd_string", op_name);
- op_record_->Set("info", op_params_);
+ if (paint) {
+ this->addParam("paint", AsValue(*paint));
+ filtered_paint_ = *paint;
+ }
- if (paint) {
- this->addParam("paint", AsValue(*paint));
- filtered_paint_ = *paint;
- }
-
- start_ticks_ = base::TimeTicks::Now();
+ start_ticks_ = base::TimeTicks::Now();
}
~AutoOp() {
diff --git a/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py b/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
index 6a39167c..ba9ad54 100755
--- a/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
+++ b/third_party/dom_distiller_js/protoc_plugins/json_values_converter.py
@@ -32,6 +32,7 @@
assert [] == proto_file.GetDependencies()
self.Output('// base dependencies')
+ self.Output('#include "base/memory/ptr_util.h"')
self.Output('#include "base/values.h"')
self.Output('')
self.Output('#include <memory>')
@@ -116,8 +117,7 @@
def RepeatedMemberFieldWriteToValue(self, field):
prologue = (
- 'base::ListValue* field_list = new base::ListValue();\n'
- 'dict->Set("{field_number}", field_list);\n'
+ 'auto field_list = base::MakeUnique<base::ListValue>();\n'
'for (int i = 0; i < message.{field_name}_size(); ++i) {{\n'
)
@@ -131,8 +131,13 @@
middle = (
'field_list->Append{value_type}(message.{field_name}(i));\n'
)
+
+ epilogue = (
+ '\n}}\n'
+ 'dict->Set("{field_number}", std::move(field_list));'
+ )
self.Output(
- prologue + Indented(middle) + '\n}}',
+ prologue + Indented(middle) + epilogue,
field_number=field.JavascriptIndex(),
field_name=field.name,
value_type=field.CppValueType() if not field.IsClassType() else None,
diff --git a/third_party/dom_distiller_js/test_sample_json_converter.h.golden b/third_party/dom_distiller_js/test_sample_json_converter.h.golden
index 37e2adb..6969164 100644
--- a/third_party/dom_distiller_js/test_sample_json_converter.h.golden
+++ b/third_party/dom_distiller_js/test_sample_json_converter.h.golden
@@ -3,6 +3,7 @@
#include "test_sample.pb.h"
// base dependencies
+#include "base/memory/ptr_util.h"
#include "base/values.h"
#include <memory>
@@ -150,11 +151,11 @@
static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::test_sample::proto::Repeated::Message& message) {
std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("1", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.dummy_size(); ++i) {
field_list->AppendBoolean(message.dummy(i));
}
+ dict->Set("1", std::move(field_list));
}
return dict;
}
@@ -252,48 +253,48 @@
static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::test_sample::proto::Repeated& message) {
std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("1", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.float_value_size(); ++i) {
field_list->AppendDouble(message.float_value(i));
}
+ dict->Set("1", std::move(field_list));
}
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("2", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.double_value_size(); ++i) {
field_list->AppendDouble(message.double_value(i));
}
+ dict->Set("2", std::move(field_list));
}
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("3", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.int32_value_size(); ++i) {
field_list->AppendInteger(message.int32_value(i));
}
+ dict->Set("3", std::move(field_list));
}
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("4", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.bool_value_size(); ++i) {
field_list->AppendBoolean(message.bool_value(i));
}
+ dict->Set("4", std::move(field_list));
}
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("5", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.string_value_size(); ++i) {
field_list->AppendString(message.string_value(i));
}
+ dict->Set("5", std::move(field_list));
}
{
- base::ListValue* field_list = new base::ListValue();
- dict->Set("6", field_list);
+ auto field_list = base::MakeUnique<base::ListValue>();
for (int i = 0; i < message.message_value_size(); ++i) {
std::unique_ptr<base::Value> inner_message_value =
dom_distiller::test_sample::proto::json::Repeated::Message::WriteToValue(message.message_value(i));
field_list->Append(std::move(inner_message_value));
}
+ dict->Set("6", std::move(field_list));
}
return dict;
}
diff --git a/tools/json_schema_compiler/test/additional_properties_unittest.cc b/tools/json_schema_compiler/test/additional_properties_unittest.cc
index f62729c..5bf76da 100644
--- a/tools/json_schema_compiler/test/additional_properties_unittest.cc
+++ b/tools/json_schema_compiler/test/additional_properties_unittest.cc
@@ -21,7 +21,7 @@
new base::DictionaryValue());
type_value->SetString("string", "value");
type_value->SetInteger("other", 9);
- type_value->Set("another", list_value.release());
+ type_value->Set("another", std::move(list_value));
std::unique_ptr<AdditionalPropertiesType> type(
new AdditionalPropertiesType());
ASSERT_TRUE(AdditionalPropertiesType::Populate(*type_value, type.get()));
diff --git a/tools/json_schema_compiler/test/arrays_unittest.cc b/tools/json_schema_compiler/test/arrays_unittest.cc
index 69d46dcc..91112f2 100644
--- a/tools/json_schema_compiler/test/arrays_unittest.cc
+++ b/tools/json_schema_compiler/test/arrays_unittest.cc
@@ -10,6 +10,8 @@
#include <utility>
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
+#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "tools/json_schema_compiler/test/enums.h"
@@ -19,31 +21,31 @@
// TODO(calamity): Change to AppendString etc once kalman's patch goes through
static std::unique_ptr<base::DictionaryValue> CreateBasicArrayTypeDictionary() {
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- base::ListValue* strings_value = new base::ListValue();
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ auto strings_value = base::MakeUnique<base::ListValue>();
strings_value->AppendString("a");
strings_value->AppendString("b");
strings_value->AppendString("c");
strings_value->AppendString("it's easy as");
- base::ListValue* integers_value = new base::ListValue();
+ auto integers_value = base::MakeUnique<base::ListValue>();
integers_value->AppendInteger(1);
integers_value->AppendInteger(2);
integers_value->AppendInteger(3);
- base::ListValue* booleans_value = new base::ListValue();
+ auto booleans_value = base::MakeUnique<base::ListValue>();
booleans_value->AppendBoolean(false);
booleans_value->AppendBoolean(true);
- base::ListValue* numbers_value = new base::ListValue();
+ auto numbers_value = base::MakeUnique<base::ListValue>();
numbers_value->AppendDouble(6.1);
- value->Set("numbers", numbers_value);
- value->Set("booleans", booleans_value);
- value->Set("strings", strings_value);
- value->Set("integers", integers_value);
+ value->Set("numbers", std::move(numbers_value));
+ value->Set("booleans", std::move(booleans_value));
+ value->Set("strings", std::move(strings_value));
+ value->Set("integers", std::move(integers_value));
return value;
}
std::unique_ptr<base::DictionaryValue> CreateItemValue(int val) {
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- value->Set("val", new base::Value(val));
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ value->SetInteger("val", val);
return value;
}
@@ -61,12 +63,12 @@
TEST(JsonSchemaCompilerArrayTest, EnumArrayReference) {
// { "types": ["one", "two", "three"] }
- base::ListValue* types = new base::ListValue();
+ auto types = base::MakeUnique<base::ListValue>();
types->AppendString("one");
types->AppendString("two");
types->AppendString("three");
base::DictionaryValue value;
- value.Set("types", types);
+ value.Set("types", std::move(types));
EnumArrayReference enum_array_reference;
@@ -86,19 +88,19 @@
TEST(JsonSchemaCompilerArrayTest, EnumArrayMixed) {
// { "types": ["one", "two", "three"] }
- base::ListValue* infile_enums = new base::ListValue();
+ auto infile_enums = base::MakeUnique<base::ListValue>();
infile_enums->AppendString("one");
infile_enums->AppendString("two");
infile_enums->AppendString("three");
- base::ListValue* external_enums = new base::ListValue();
+ auto external_enums = base::MakeUnique<base::ListValue>();
external_enums->AppendString("one");
external_enums->AppendString("two");
external_enums->AppendString("three");
base::DictionaryValue value;
- value.Set("infile_enums", infile_enums);
- value.Set("external_enums", external_enums);
+ value.Set("infile_enums", std::move(infile_enums));
+ value.Set("external_enums", std::move(external_enums));
EnumArrayMixed enum_array_mixed;
@@ -132,12 +134,12 @@
enums.push_back(ENUMERATION_TWO);
enums.push_back(ENUMERATION_THREE);
- std::unique_ptr<base::ListValue> types(new base::ListValue());
+ auto types = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < enums.size(); ++i)
types->AppendString(ToString(enums[i]));
base::DictionaryValue value;
- value.Set("types", types.release());
+ value.Set("types", std::move(types));
OptionalEnumArrayType enum_array_type;
ASSERT_TRUE(OptionalEnumArrayType::Populate(value, &enum_array_type));
@@ -145,10 +147,10 @@
}
{
base::DictionaryValue value;
- std::unique_ptr<base::ListValue> enum_array(new base::ListValue());
+ auto enum_array = base::MakeUnique<base::ListValue>();
enum_array->AppendString("invalid");
- value.Set("types", enum_array.release());
+ value.Set("types", std::move(enum_array));
OptionalEnumArrayType enum_array_type;
ASSERT_FALSE(OptionalEnumArrayType::Populate(value, &enum_array_type));
EXPECT_TRUE(enum_array_type.types->empty());
@@ -157,13 +159,13 @@
TEST(JsonSchemaCompilerArrayTest, RefArrayType) {
{
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- std::unique_ptr<base::ListValue> ref_array(new base::ListValue());
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ auto ref_array = base::MakeUnique<base::ListValue>();
ref_array->Append(CreateItemValue(1));
ref_array->Append(CreateItemValue(2));
ref_array->Append(CreateItemValue(3));
- value->Set("refs", ref_array.release());
- std::unique_ptr<RefArrayType> ref_array_type(new RefArrayType());
+ value->Set("refs", std::move(ref_array));
+ auto ref_array_type = base::MakeUnique<RefArrayType>();
EXPECT_TRUE(RefArrayType::Populate(*value, ref_array_type.get()));
ASSERT_EQ(3u, ref_array_type->refs.size());
EXPECT_EQ(1, ref_array_type->refs[0].val);
@@ -171,12 +173,12 @@
EXPECT_EQ(3, ref_array_type->refs[2].val);
}
{
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- std::unique_ptr<base::ListValue> not_ref_array(new base::ListValue());
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ auto not_ref_array = base::MakeUnique<base::ListValue>();
not_ref_array->Append(CreateItemValue(1));
not_ref_array->AppendInteger(3);
- value->Set("refs", not_ref_array.release());
- std::unique_ptr<RefArrayType> ref_array_type(new RefArrayType());
+ value->Set("refs", std::move(not_ref_array));
+ auto ref_array_type = base::MakeUnique<RefArrayType>();
EXPECT_FALSE(RefArrayType::Populate(*value, ref_array_type.get()));
}
}
diff --git a/tools/json_schema_compiler/test/choices_unittest.cc b/tools/json_schema_compiler/test/choices_unittest.cc
index 708c900..081d2ee 100644
--- a/tools/json_schema_compiler/test/choices_unittest.cc
+++ b/tools/json_schema_compiler/test/choices_unittest.cc
@@ -112,13 +112,13 @@
std::string("of"),
std::string("strings"));
- base::ListValue* strings_value = new base::ListValue();
+ auto strings_value = base::MakeUnique<base::ListValue>();
for (size_t i = 0; i < strings.size(); ++i)
strings_value->AppendString(strings[i]);
base::DictionaryValue value;
value.SetInteger("integers", 4);
- value.Set("strings", strings_value);
+ value.Set("strings", std::move(strings_value));
ChoiceType out;
ASSERT_TRUE(ChoiceType::Populate(value, &out));
@@ -132,14 +132,14 @@
}
TEST(JsonSchemaCompilerChoicesTest, ChoiceTypeToValue) {
- base::ListValue* strings_value = new base::ListValue();
+ auto strings_value = base::MakeUnique<base::ListValue>();
strings_value->AppendString("list");
strings_value->AppendString("of");
strings_value->AppendString("strings");
base::DictionaryValue value;
value.SetInteger("integers", 5);
- value.Set("strings", strings_value);
+ value.Set("strings", std::move(strings_value));
ChoiceType out;
ASSERT_TRUE(ChoiceType::Populate(value, &out));
diff --git a/tools/json_schema_compiler/test/crossref_unittest.cc b/tools/json_schema_compiler/test/crossref_unittest.cc
index 21e52aa..67c06d5 100644
--- a/tools/json_schema_compiler/test/crossref_unittest.cc
+++ b/tools/json_schema_compiler/test/crossref_unittest.cc
@@ -7,6 +7,8 @@
#include <memory>
#include <utility>
+#include "base/memory/ptr_util.h"
+#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "tools/json_schema_compiler/test/simple_api.h"
@@ -15,11 +17,11 @@
namespace {
std::unique_ptr<base::DictionaryValue> CreateTestTypeValue() {
- std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue());
- value->Set("number", new base::Value(1.1));
- value->Set("integer", new base::Value(4));
- value->Set("string", new base::Value("bling"));
- value->Set("boolean", new base::Value(true));
+ auto value = base::MakeUnique<base::DictionaryValue>();
+ value->SetDouble("number", 1.1);
+ value->SetInteger("integer", 4);
+ value->SetString("string", "bling");
+ value->SetBoolean("boolean", true);
return value;
}
@@ -27,9 +29,9 @@
TEST(JsonSchemaCompilerCrossrefTest, CrossrefTypePopulateAndToValue) {
base::DictionaryValue crossref_orig;
- crossref_orig.Set("testType", CreateTestTypeValue().release());
- crossref_orig.Set("testEnumRequired", new base::Value("one"));
- crossref_orig.Set("testEnumOptional", new base::Value("two"));
+ crossref_orig.Set("testType", CreateTestTypeValue());
+ crossref_orig.SetString("testEnumRequired", "one");
+ crossref_orig.SetString("testEnumOptional", "two");
// Test Populate of the value --> compiled type.
crossref::CrossrefType crossref_type;
@@ -85,11 +87,10 @@
TEST(JsonSchemaCompilerCrossrefTest, TestTypeInObjectParamsCreate) {
{
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
- std::unique_ptr<base::DictionaryValue> param_object_value(
- new base::DictionaryValue());
- param_object_value->Set("testType", CreateTestTypeValue().release());
- param_object_value->Set("boolean", new base::Value(true));
+ auto params_value = base::MakeUnique<base::ListValue>();
+ auto param_object_value = base::MakeUnique<base::DictionaryValue>();
+ param_object_value->Set("testType", CreateTestTypeValue());
+ param_object_value->SetBoolean("boolean", true);
params_value->Append(std::move(param_object_value));
std::unique_ptr<crossref::TestTypeInObject::Params> params(
crossref::TestTypeInObject::Params::Create(*params_value));
@@ -100,10 +101,9 @@
params->param_object.test_type->ToValue().get()));
}
{
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
- std::unique_ptr<base::DictionaryValue> param_object_value(
- new base::DictionaryValue());
- param_object_value->Set("boolean", new base::Value(true));
+ auto params_value = base::MakeUnique<base::ListValue>();
+ auto param_object_value = base::MakeUnique<base::DictionaryValue>();
+ param_object_value->SetBoolean("boolean", true);
params_value->Append(std::move(param_object_value));
std::unique_ptr<crossref::TestTypeInObject::Params> params(
crossref::TestTypeInObject::Params::Create(*params_value));
@@ -112,21 +112,19 @@
EXPECT_TRUE(params->param_object.boolean);
}
{
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
- std::unique_ptr<base::DictionaryValue> param_object_value(
- new base::DictionaryValue());
- param_object_value->Set("testType", new base::Value("invalid"));
- param_object_value->Set("boolean", new base::Value(true));
+ auto params_value = base::MakeUnique<base::ListValue>();
+ auto param_object_value = base::MakeUnique<base::DictionaryValue>();
+ param_object_value->SetString("testType", "invalid");
+ param_object_value->SetBoolean("boolean", true);
params_value->Append(std::move(param_object_value));
std::unique_ptr<crossref::TestTypeInObject::Params> params(
crossref::TestTypeInObject::Params::Create(*params_value));
EXPECT_FALSE(params.get());
}
{
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
- std::unique_ptr<base::DictionaryValue> param_object_value(
- new base::DictionaryValue());
- param_object_value->Set("testType", CreateTestTypeValue().release());
+ auto params_value = base::MakeUnique<base::ListValue>();
+ auto param_object_value = base::MakeUnique<base::DictionaryValue>();
+ param_object_value->Set("testType", CreateTestTypeValue());
params_value->Append(std::move(param_object_value));
std::unique_ptr<crossref::TestTypeInObject::Params> params(
crossref::TestTypeInObject::Params::Create(*params_value));
diff --git a/tools/json_schema_compiler/test/enums_unittest.cc b/tools/json_schema_compiler/test/enums_unittest.cc
index 715b4ae..fffe9b4 100644
--- a/tools/json_schema_compiler/test/enums_unittest.cc
+++ b/tools/json_schema_compiler/test/enums_unittest.cc
@@ -16,7 +16,7 @@
{
EnumType enum_type;
base::DictionaryValue value;
- value.Set("type", new base::Value("one"));
+ value.SetString("type", "one");
EXPECT_TRUE(EnumType::Populate(value, &enum_type));
EXPECT_EQ(ENUMERATION_ONE, enum_type.type);
EXPECT_TRUE(value.Equals(enum_type.ToValue().get()));
@@ -24,7 +24,7 @@
{
EnumType enum_type;
base::DictionaryValue value;
- value.Set("type", new base::Value("invalid"));
+ value.SetString("type", "invalid");
EXPECT_FALSE(EnumType::Populate(value, &enum_type));
}
}
@@ -52,11 +52,11 @@
base::DictionaryValue value;
ASSERT_FALSE(HasEnumeration::Populate(value, &enumeration));
- value.Set("enumeration", new base::Value("one"));
+ value.SetString("enumeration", "one");
ASSERT_TRUE(HasEnumeration::Populate(value, &enumeration));
EXPECT_TRUE(value.Equals(enumeration.ToValue().get()));
- value.Set("optional_enumeration", new base::Value("two"));
+ value.SetString("optional_enumeration", "two");
ASSERT_TRUE(HasEnumeration::Populate(value, &enumeration));
EXPECT_TRUE(value.Equals(enumeration.ToValue().get()));
}
@@ -65,7 +65,7 @@
base::DictionaryValue value;
ASSERT_FALSE(ReferenceEnum::Populate(value, &enumeration));
- value.Set("reference_enum", new base::Value("one"));
+ value.SetString("reference_enum", "one");
ASSERT_TRUE(ReferenceEnum::Populate(value, &enumeration));
EXPECT_TRUE(value.Equals(enumeration.ToValue().get()));
}
@@ -124,7 +124,7 @@
{
OptionalEnumType enum_type;
base::DictionaryValue value;
- value.Set("type", new base::Value("two"));
+ value.SetString("type", "two");
EXPECT_TRUE(OptionalEnumType::Populate(value, &enum_type));
EXPECT_EQ(ENUMERATION_TWO, enum_type.type);
EXPECT_TRUE(value.Equals(enum_type.ToValue().get()));
@@ -139,7 +139,7 @@
{
OptionalEnumType enum_type;
base::DictionaryValue value;
- value.Set("type", new base::Value("invalid"));
+ value.SetString("type", "invalid");
EXPECT_FALSE(OptionalEnumType::Populate(value, &enum_type));
}
}
diff --git a/tools/json_schema_compiler/test/functions_as_parameters_unittest.cc b/tools/json_schema_compiler/test/functions_as_parameters_unittest.cc
index ce7a2f9..858f052 100644
--- a/tools/json_schema_compiler/test/functions_as_parameters_unittest.cc
+++ b/tools/json_schema_compiler/test/functions_as_parameters_unittest.cc
@@ -4,6 +4,8 @@
#include "tools/json_schema_compiler/test/functions_as_parameters.h"
+#include "base/memory/ptr_util.h"
+#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
using namespace test::api::functions_as_parameters;
@@ -19,7 +21,7 @@
{
base::DictionaryValue value;
base::DictionaryValue function_dict;
- value.Set("event_callback", function_dict.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_dict));
FunctionType out;
ASSERT_TRUE(FunctionType::Populate(value, &out));
EXPECT_TRUE(out.event_callback.empty());
@@ -30,7 +32,7 @@
{
base::DictionaryValue value;
base::DictionaryValue function_dict;
- value.Set("event_callback", function_dict.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_dict));
FunctionType out;
ASSERT_TRUE(FunctionType::Populate(value, &out));
@@ -40,8 +42,9 @@
base::DictionaryValue value;
base::DictionaryValue expected_value;
base::DictionaryValue function_dict;
- value.Set("event_callback", function_dict.DeepCopy());
- expected_value.Set("event_callback", function_dict.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_dict));
+ expected_value.Set("event_callback",
+ base::MakeUnique<base::Value>(function_dict));
FunctionType out;
ASSERT_TRUE(FunctionType::Populate(value, &out));
@@ -59,7 +62,7 @@
{
base::DictionaryValue value;
base::DictionaryValue function_value;
- value.Set("event_callback", function_value.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_value));
OptionalFunctionType out;
ASSERT_TRUE(OptionalFunctionType::Populate(value, &out));
EXPECT_TRUE(out.event_callback.get());
@@ -67,7 +70,7 @@
{
base::DictionaryValue value;
base::DictionaryValue function_value;
- value.Set("event_callback", function_value.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_value));
OptionalFunctionType out;
ASSERT_TRUE(OptionalFunctionType::Populate(value, &out));
EXPECT_TRUE(out.event_callback.get());
@@ -85,7 +88,7 @@
{
base::DictionaryValue value;
base::DictionaryValue function_value;
- value.Set("event_callback", function_value.DeepCopy());
+ value.Set("event_callback", base::MakeUnique<base::Value>(function_value));
OptionalFunctionType out;
ASSERT_TRUE(OptionalFunctionType::Populate(value, &out));
diff --git a/tools/json_schema_compiler/test/objects_unittest.cc b/tools/json_schema_compiler/test/objects_unittest.cc
index b00ea35..9bc8e5e 100644
--- a/tools/json_schema_compiler/test/objects_unittest.cc
+++ b/tools/json_schema_compiler/test/objects_unittest.cc
@@ -9,6 +9,8 @@
#include <utility>
#include "base/json/json_writer.h"
+#include "base/memory/ptr_util.h"
+#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "tools/json_schema_compiler/test/objects_movable.h"
#include "tools/json_schema_compiler/test/objects_movable_json.h"
@@ -19,16 +21,15 @@
TEST(JsonSchemaCompilerObjectsTest, ObjectParamParamsCreate) {
{
- std::unique_ptr<base::ListValue> strings(new base::ListValue());
+ auto strings = base::MakeUnique<base::ListValue>();
strings->AppendString("one");
strings->AppendString("two");
- std::unique_ptr<base::DictionaryValue> info_value(
- new base::DictionaryValue());
- info_value->Set("strings", strings.release());
- info_value->Set("integer", new base::Value(5));
- info_value->Set("boolean", new base::Value(true));
+ auto info_value = base::MakeUnique<base::DictionaryValue>();
+ info_value->Set("strings", std::move(strings));
+ info_value->SetInteger("integer", 5);
+ info_value->SetBoolean("boolean", true);
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
+ auto params_value = base::MakeUnique<base::ListValue>();
params_value->Append(std::move(info_value));
std::unique_ptr<ObjectParam::Params> params(
ObjectParam::Params::Create(*params_value));
@@ -40,15 +41,14 @@
EXPECT_TRUE(params->info.boolean);
}
{
- std::unique_ptr<base::ListValue> strings(new base::ListValue());
+ auto strings = base::MakeUnique<base::ListValue>();
strings->AppendString("one");
strings->AppendString("two");
- std::unique_ptr<base::DictionaryValue> info_value(
- new base::DictionaryValue());
- info_value->Set("strings", strings.release());
- info_value->Set("integer", new base::Value(5));
+ auto info_value = base::MakeUnique<base::DictionaryValue>();
+ info_value->Set("strings", std::move(strings));
+ info_value->SetInteger("integer", 5);
- std::unique_ptr<base::ListValue> params_value(new base::ListValue());
+ auto params_value = base::MakeUnique<base::ListValue>();
params_value->Append(std::move(info_value));
std::unique_ptr<ObjectParam::Params> params(
ObjectParam::Params::Create(*params_value));
diff --git a/ui/app_list/search/history_data_store.cc b/ui/app_list/search/history_data_store.cc
index a0e1b29..0f4a3152 100644
--- a/ui/app_list/search/history_data_store.cc
+++ b/ui/app_list/search/history_data_store.cc
@@ -128,7 +128,7 @@
void HistoryDataStore::Init(base::DictionaryValue* cached_dict) {
DCHECK(cached_dict);
cached_dict->SetString(kKeyVersion, kCurrentVersion);
- cached_dict->Set(kKeyAssociations, new base::DictionaryValue);
+ cached_dict->Set(kKeyAssociations, base::MakeUnique<base::DictionaryValue>());
}
void HistoryDataStore::Flush(