Use base::ValueReferenceAdapter to prepare libchrome uprev.

The coming libchrome uprevs contain ListValue::iterator signature changes.
CL:1184947 is introducing a class to allow graceful uprev,
and this CL uses it.

BUG=b:37434548
TEST=Trybot.
CQ-DEPEND=CL:1184947

Change-Id: I6e0eb212f36fb9ea637370a154f9daf1008772f2
Reviewed-on: https://chromium-review.googlesource.com/1184948
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
diff --git a/arc/adbd/adbd.cc b/arc/adbd/adbd.cc
index 90f9b7c..0bfcf3f 100644
--- a/arc/adbd/adbd.cc
+++ b/arc/adbd/adbd.cc
@@ -150,10 +150,11 @@
   const base::ListValue* kernel_module_list = nullptr;
   // kernelModules are optional.
   if (config_root_dict->GetList("kernelModules", &kernel_module_list)) {
-    for (const auto* kernel_module_value : *kernel_module_list) {
+    for (const auto& kernel_module_value :
+         base::ValueReferenceAdapter(*kernel_module_list)) {
       AdbdConfigurationKernelModule module;
       const base::DictionaryValue* kernel_module_dict = nullptr;
-      if (!kernel_module_value->GetAsDictionary(&kernel_module_dict)) {
+      if (!kernel_module_value.GetAsDictionary(&kernel_module_dict)) {
         LOG(ERROR) << "kernelModules contains a non-dictionary";
         return false;
       }
@@ -164,9 +165,10 @@
       const base::ListValue* parameter_list = nullptr;
       if (kernel_module_dict->GetList("parameters", &parameter_list)) {
         // Parameters are optional.
-        for (const auto* parameter_value : *parameter_list) {
+        for (const auto& parameter_value :
+             base::ValueReferenceAdapter(*parameter_list)) {
           std::string parameter;
-          if (!parameter_value->GetAsString(&parameter)) {
+          if (!parameter_value.GetAsString(&parameter)) {
             LOG(ERROR) << "kernelModules.parameters contains a non-string";
             return false;
           }
diff --git a/authpolicy/policy/device_policy_encoder.cc b/authpolicy/policy/device_policy_encoder.cc
index 7d854c1..7230c0e 100644
--- a/authpolicy/policy/device_policy_encoder.cc
+++ b/authpolicy/policy/device_policy_encoder.cc
@@ -448,14 +448,15 @@
     if (!is_error) {
       proto->set_timezone(timezone);
 
-      for (const base::Value* entry : *intervals) {
+      for (const base::Value& entry : base::ValueReferenceAdapter(*intervals)) {
         is_error |=
-            !EncodeWeeklyTimeIntervalProto(*entry, proto->add_intervals());
+            !EncodeWeeklyTimeIntervalProto(entry, proto->add_intervals());
       }
 
-      for (const base::Value* entry : *ignored_policy_proto_tags) {
+      for (const base::Value& entry :
+           base::ValueReferenceAdapter(*ignored_policy_proto_tags)) {
         int tag = 0;
-        is_error |= !entry->GetAsInteger(&tag);
+        is_error |= !entry.GetAsInteger(&tag);
         proto->add_ignored_policy_proto_tags(tag);
       }
     }
diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc
index 2cb9f77..b4b2ec9 100644
--- a/buffet/buffet_client.cc
+++ b/buffet/buffet_client.cc
@@ -134,8 +134,8 @@
 brillo::Any GetJsonList(const base::ListValue& list) {
   std::vector<T> val;
   val.reserve(list.GetSize());
-  for (const base::Value* v : list)
-    val.push_back(JsonToAny(*v).Get<T>());
+  for (const base::Value& v : base::ValueReferenceAdapter(list))
+    val.push_back(JsonToAny(v).Get<T>());
   return val;
 }
 
diff --git a/buffet/dbus_conversion.cc b/buffet/dbus_conversion.cc
index 5c0ebd0..c7e849e 100644
--- a/buffet/dbus_conversion.cc
+++ b/buffet/dbus_conversion.cc
@@ -31,9 +31,9 @@
                       bool (base::Value::*fnc)(T*) const) {
   std::vector<T> result;
   result.reserve(list.GetSize());
-  for (const base::Value* v : list) {
+  for (const base::Value& v : base::ValueReferenceAdapter(list)) {
     T val;
-    CHECK((v->*fnc)(&val));
+    CHECK((v.*fnc)(&val));
     result.push_back(val);
   }
   return result;
@@ -42,9 +42,9 @@
 brillo::Any DictListToAny(const base::ListValue& list) {
   std::vector<brillo::VariantDictionary> result;
   result.reserve(list.GetSize());
-  for (const base::Value* v : list) {
+  for (const base::Value& v : base::ValueReferenceAdapter(list)) {
     const base::DictionaryValue* dict = nullptr;
-    CHECK(v->GetAsDictionary(&dict));
+    CHECK(v.GetAsDictionary(&dict));
     result.push_back(DictionaryToDBusVariantDictionary(*dict));
   }
   return result;
@@ -53,8 +53,8 @@
 brillo::Any ListListToAny(const base::ListValue& list) {
   std::vector<brillo::Any> result;
   result.reserve(list.GetSize());
-  for (const base::Value* v : list)
-    result.push_back(ValueToAny(*v));
+  for (const base::Value& v : base::ValueReferenceAdapter(list))
+    result.push_back(ValueToAny(v));
   return result;
 }
 
@@ -91,8 +91,8 @@
         break;
       }
       auto type = (*list->begin())->GetType();
-      for (const base::Value* v : *list)
-        CHECK_EQ(v->GetType(), type) << "Unsupported different type elements";
+      for (const base::Value& v : base::ValueReferenceAdapter(*list))
+        CHECK_EQ(v.GetType(), type) << "Unsupported different type elements";
 
       switch (type) {
         case base::Value::Type::BOOLEAN:
diff --git a/chromeos-dbus-bindings/generate_chromeos_dbus_bindings.cc b/chromeos-dbus-bindings/generate_chromeos_dbus_bindings.cc
index 40e170c..863d728 100644
--- a/chromeos-dbus-bindings/generate_chromeos_dbus_bindings.cc
+++ b/chromeos-dbus-bindings/generate_chromeos_dbus_bindings.cc
@@ -110,9 +110,9 @@
   base::ListValue* list = nullptr;  // Owned by |dict|.
   if (dict->GetListWithoutPathExpansion("ignore_interfaces", &list)) {
     config->ignore_interfaces.reserve(list->GetSize());
-    for (base::Value* item : *list) {
+    for (const base::Value& item : base::ValueReferenceAdapter(*list)) {
       std::string interface_name;
-      if (!item->GetAsString(&interface_name)) {
+      if (!item.GetAsString(&interface_name)) {
         LOG(ERROR) << "Invalid interface name in [ignore_interfaces] section";
         return false;
       }
diff --git a/run_oci/container_config_parser.cc b/run_oci/container_config_parser.cc
index 968614a..474f05d 100644
--- a/run_oci/container_config_parser.cc
+++ b/run_oci/container_config_parser.cc
@@ -106,9 +106,10 @@
       continue;
     CapSet caps;
     cap_value_t cap_value;
-    for (const auto* cap_name_value : *capset_list) {
+    for (const auto& cap_name_value :
+         base::ValueReferenceAdapter(*capset_list)) {
       std::string cap_name;
-      if (!cap_name_value->GetAsString(&cap_name)) {
+      if (!cap_name_value.GetAsString(&cap_name)) {
         LOG(ERROR) << "Capability list " << set_name
                    << " contains a non-string";
         return false;
diff --git a/webserver/webservd/config.cc b/webserver/webservd/config.cc
index 3ec285d..18718b6 100644
--- a/webserver/webservd/config.cc
+++ b/webserver/webservd/config.cc
@@ -138,10 +138,11 @@
 
   const base::ListValue* protocol_handlers = nullptr;  // Owned by |dict_value|
   if (dict_value->GetList(kProtocolHandlersKey, &protocol_handlers)) {
-    for (base::Value* handler_value : *protocol_handlers) {
+    for (const base::Value& handler_value :
+             base::ValueReferenceAdapter(*protocol_handlers)) {
       const base::DictionaryValue* handler_dict = nullptr;  // Owned by
                                                             // |dict_value|
-      if (!handler_value->GetAsDictionary(&handler_dict)) {
+      if (!handler_value.GetAsDictionary(&handler_dict)) {
         brillo::Error::AddTo(
             error,
             FROM_HERE,