shill: fix LazyInstance decls for libchrome r456626

These were changed upstream and DestructorAtExit is no longer the
default in newer versions of libchrome (and is in fact considered
not the one users usually want).

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

Change-Id: I24f2d6ace58ba0c8c6b4efa7be31458ed0532731
Reviewed-on: https://chromium-review.googlesource.com/1185340
Commit-Ready: Hidehiko Abe <[email protected]>
Tested-by: Hidehiko Abe <[email protected]>
Reviewed-by: Luis Hector Chavez <[email protected]>
Reviewed-by: Ben Chan <[email protected]>
diff --git a/dbus/dbus_service_watcher_factory.h b/dbus/dbus_service_watcher_factory.h
index dd04893..100f081 100644
--- a/dbus/dbus_service_watcher_factory.h
+++ b/dbus/dbus_service_watcher_factory.h
@@ -44,7 +44,7 @@
   DBusServiceWatcherFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<DBusServiceWatcherFactory>;
+  friend base::LazyInstanceTraitsBase<DBusServiceWatcherFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(DBusServiceWatcherFactory);
 };
diff --git a/dhcp/dhcp_provider.cc b/dhcp/dhcp_provider.cc
index aee22e7..af79023 100644
--- a/dhcp/dhcp_provider.cc
+++ b/dhcp/dhcp_provider.cc
@@ -45,7 +45,8 @@
 }
 
 namespace {
-base::LazyInstance<DHCPProvider> g_dhcp_provider = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<DHCPProvider>::DestructorAtExit g_dhcp_provider =
+    LAZY_INSTANCE_INITIALIZER;
 static const int kUnbindDelayMilliseconds = 2000;
 
 const char kDHCPCDExecutableName[] = "dhcpcd";
diff --git a/dhcp/dhcp_provider.h b/dhcp/dhcp_provider.h
index 730fdc9..06aefe5 100644
--- a/dhcp/dhcp_provider.h
+++ b/dhcp/dhcp_provider.h
@@ -113,7 +113,7 @@
   DHCPProvider();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<DHCPProvider>;
+  friend base::LazyInstanceTraitsBase<DHCPProvider>;
   friend class CellularTest;
   friend class DHCPProviderTest;
   friend class DeviceInfoTest;
diff --git a/dns_client_factory.h b/dns_client_factory.h
index ca2152e..f2d01b0 100644
--- a/dns_client_factory.h
+++ b/dns_client_factory.h
@@ -48,7 +48,7 @@
   DnsClientFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<DnsClientFactory>;
+  friend base::LazyInstanceTraitsBase<DnsClientFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(DnsClientFactory);
 };
diff --git a/file_io.h b/file_io.h
index 7ed0138..edd73d5 100644
--- a/file_io.h
+++ b/file_io.h
@@ -38,7 +38,7 @@
   FileIO();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<FileIO>;
+  friend base::LazyInstanceTraitsBase<FileIO>;
 
   DISALLOW_COPY_AND_ASSIGN(FileIO);
 };
diff --git a/icmp_session_factory.h b/icmp_session_factory.h
index 69a1e38..22815ea 100644
--- a/icmp_session_factory.h
+++ b/icmp_session_factory.h
@@ -39,7 +39,7 @@
   IcmpSessionFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<IcmpSessionFactory>;
+  friend base::LazyInstanceTraitsBase<IcmpSessionFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(IcmpSessionFactory);
 };
diff --git a/mock_dns_client_factory.h b/mock_dns_client_factory.h
index cf2bc53..5bf68d8 100644
--- a/mock_dns_client_factory.h
+++ b/mock_dns_client_factory.h
@@ -50,7 +50,7 @@
   MockDnsClientFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<MockDnsClientFactory>;
+  friend base::LazyInstanceTraitsBase<MockDnsClientFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(MockDnsClientFactory);
 };
diff --git a/mock_icmp_session_factory.h b/mock_icmp_session_factory.h
index d925016..dc5efc6 100644
--- a/mock_icmp_session_factory.h
+++ b/mock_icmp_session_factory.h
@@ -40,7 +40,7 @@
   MockIcmpSessionFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<MockIcmpSessionFactory>;
+  friend base::LazyInstanceTraitsBase<MockIcmpSessionFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(MockIcmpSessionFactory);
 };
diff --git a/mock_ppp_device_factory.h b/mock_ppp_device_factory.h
index 3fa67e5..1ac3bf5 100644
--- a/mock_ppp_device_factory.h
+++ b/mock_ppp_device_factory.h
@@ -45,7 +45,7 @@
   MockPPPDeviceFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<MockPPPDeviceFactory>;
+  friend base::LazyInstanceTraitsBase<MockPPPDeviceFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(MockPPPDeviceFactory);
 };
diff --git a/net/io_handler_factory_container.h b/net/io_handler_factory_container.h
index 4c20a68..69317bc 100644
--- a/net/io_handler_factory_container.h
+++ b/net/io_handler_factory_container.h
@@ -45,7 +45,7 @@
   IOHandlerFactoryContainer();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<IOHandlerFactoryContainer>;
+  friend base::LazyInstanceTraitsBase<IOHandlerFactoryContainer>;
   std::unique_ptr<IOHandlerFactory> factory_;
 
   DISALLOW_COPY_AND_ASSIGN(IOHandlerFactoryContainer);
diff --git a/net/netlink_manager.cc b/net/netlink_manager.cc
index 83bccd7..3d04365 100644
--- a/net/netlink_manager.cc
+++ b/net/netlink_manager.cc
@@ -56,7 +56,8 @@
 }  // namespace Logging
 
 namespace {
-LazyInstance<NetlinkManager> g_netlink_manager = LAZY_INSTANCE_INITIALIZER;
+LazyInstance<NetlinkManager>::DestructorAtExit g_netlink_manager =
+    LAZY_INSTANCE_INITIALIZER;
 }  // namespace
 
 const char NetlinkManager::kEventTypeConfig[] = "config";
diff --git a/net/netlink_manager.h b/net/netlink_manager.h
index 04484c9..3d73ca7 100644
--- a/net/netlink_manager.h
+++ b/net/netlink_manager.h
@@ -269,11 +269,10 @@
   uint32_t GetSequenceNumber();
 
  protected:
-  friend struct base::DefaultLazyInstanceTraits<NetlinkManager>;
-
   NetlinkManager();
 
  private:
+  friend base::LazyInstanceTraitsBase<NetlinkManager>;
   friend class NetlinkManagerTest;
   friend class NetlinkMessageTest;
   friend class ShillDaemonTest;
diff --git a/net/nl80211_message.h b/net/nl80211_message.h
index 11b3ede..0d33322 100644
--- a/net/nl80211_message.h
+++ b/net/nl80211_message.h
@@ -567,12 +567,11 @@
       const Nl80211Message& message, const NetlinkPacket& packet);
 
  protected:
-  friend struct
-      base::DefaultLazyInstanceTraits<Nl80211MessageDataCollector>;
-
   Nl80211MessageDataCollector();
 
  private:
+  friend base::LazyInstanceTraitsBase<Nl80211MessageDataCollector>;
+
   // In order to limit the output from this class, I keep track of types I
   // haven't yet printed.
   std::map<uint8_t, bool> need_to_print;
diff --git a/net/rtnl_handler.cc b/net/rtnl_handler.cc
index a688af6..94ea471 100644
--- a/net/rtnl_handler.cc
+++ b/net/rtnl_handler.cc
@@ -59,7 +59,8 @@
 const int RTNLHandler::kErrorWindowSize = 16;
 
 namespace {
-base::LazyInstance<RTNLHandler> g_rtnl_handler = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<RTNLHandler>::DestructorAtExit g_rtnl_handler =
+    LAZY_INSTANCE_INITIALIZER;
 }  // namespace
 
 RTNLHandler::RTNLHandler()
diff --git a/net/rtnl_handler.h b/net/rtnl_handler.h
index 65d6abf..233fb52 100644
--- a/net/rtnl_handler.h
+++ b/net/rtnl_handler.h
@@ -127,7 +127,7 @@
   RTNLHandler();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<RTNLHandler>;
+  friend base::LazyInstanceTraitsBase<RTNLHandler>;
   friend class CellularTest;
   friend class DeviceInfoTest;
   friend class ModemTest;
diff --git a/net/shill_time.h b/net/shill_time.h
index de58a0a..351183a 100644
--- a/net/shill_time.h
+++ b/net/shill_time.h
@@ -81,7 +81,7 @@
   Time();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<Time>;
+  friend base::LazyInstanceTraitsBase<Time>;
 
   DISALLOW_COPY_AND_ASSIGN(Time);
 };
diff --git a/ppp_device_factory.h b/ppp_device_factory.h
index 90afb49..72874b2 100644
--- a/ppp_device_factory.h
+++ b/ppp_device_factory.h
@@ -48,7 +48,7 @@
   PPPDeviceFactory();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<PPPDeviceFactory>;
+  friend base::LazyInstanceTraitsBase<PPPDeviceFactory>;
 
   DISALLOW_COPY_AND_ASSIGN(PPPDeviceFactory);
 };
diff --git a/process_manager.cc b/process_manager.cc
index 9e43463..bbb98be 100644
--- a/process_manager.cc
+++ b/process_manager.cc
@@ -39,7 +39,7 @@
 
 namespace {
 
-base::LazyInstance<ProcessManager> g_process_manager =
+base::LazyInstance<ProcessManager>::DestructorAtExit g_process_manager =
     LAZY_INSTANCE_INITIALIZER;
 
 static const int kTerminationTimeoutSeconds = 2;
diff --git a/process_manager.h b/process_manager.h
index 85f5a98..88b9938 100644
--- a/process_manager.h
+++ b/process_manager.h
@@ -137,7 +137,7 @@
 
  private:
   friend class ProcessManagerTest;
-  friend struct base::DefaultLazyInstanceTraits<ProcessManager>;
+  friend base::LazyInstanceTraitsBase<ProcessManager>;
 
   using TerminationTimeoutCallback = base::CancelableClosure;
 
diff --git a/resolver.h b/resolver.h
index 33707ca..e3cdfa4 100644
--- a/resolver.h
+++ b/resolver.h
@@ -67,7 +67,7 @@
   Resolver();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<Resolver>;
+  friend base::LazyInstanceTraitsBase<Resolver>;
   friend class ResolverTest;
 
   base::FilePath path_;
diff --git a/routing_table.cc b/routing_table.cc
index 85dc20c..1912345 100644
--- a/routing_table.cc
+++ b/routing_table.cc
@@ -60,7 +60,8 @@
 }
 
 namespace {
-base::LazyInstance<RoutingTable> g_routing_table = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<RoutingTable>::DestructorAtExit g_routing_table =
+    LAZY_INSTANCE_INITIALIZER;
 // These don't have named constants in the system header files, but they
 // are documented in ip-rule(8) and hardcoded in net/ipv4/fib_rules.c.
 const uint32_t kRulePriorityLocal = 0;
diff --git a/routing_table.h b/routing_table.h
index bb20cdd..eaadf9c 100644
--- a/routing_table.h
+++ b/routing_table.h
@@ -160,7 +160,7 @@
   RoutingTable();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<RoutingTable>;
+  friend base::LazyInstanceTraitsBase<RoutingTable>;
   friend class RoutingTableTest;
 
   static bool ParseRoutingTableMessage(const RTNLMessage& message,
diff --git a/scope_logger.h b/scope_logger.h
index f6d7648..05d4b5f 100644
--- a/scope_logger.h
+++ b/scope_logger.h
@@ -124,7 +124,7 @@
 
  private:
   // Required for constructing LazyInstance<ScopeLogger>.
-  friend struct base::DefaultLazyInstanceTraits<ScopeLogger>;
+  friend base::LazyInstanceTraitsBase<ScopeLogger>;
   friend class ScopeLoggerTest;
   FRIEND_TEST(ScopeLoggerTest, GetEnabledScopeNames);
   FRIEND_TEST(ScopeLoggerTest, SetScopeEnabled);
diff --git a/shill_ares.h b/shill_ares.h
index eb6f656..12c0a91 100644
--- a/shill_ares.h
+++ b/shill_ares.h
@@ -70,7 +70,7 @@
   Ares();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<Ares>;
+  friend base::LazyInstanceTraitsBase<Ares>;
 
   DISALLOW_COPY_AND_ASSIGN(Ares);
 };
diff --git a/shims/environment.h b/shims/environment.h
index f608270..3bd82bd 100644
--- a/shims/environment.h
+++ b/shims/environment.h
@@ -45,7 +45,7 @@
   Environment();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<Environment>;
+  friend base::LazyInstanceTraitsBase<Environment>;
 
   DISALLOW_COPY_AND_ASSIGN(Environment);
 };
diff --git a/shims/ppp.cc b/shims/ppp.cc
index cca74a3..6ceddf9 100644
--- a/shims/ppp.cc
+++ b/shims/ppp.cc
@@ -58,7 +58,8 @@
 
 namespace shims {
 
-static base::LazyInstance<PPP> g_ppp = LAZY_INSTANCE_INITIALIZER;
+static base::LazyInstance<PPP>::DestructorAtExit g_ppp =
+    LAZY_INSTANCE_INITIALIZER;
 
 PPP::PPP() : running_(false) {}
 
diff --git a/shims/ppp.h b/shims/ppp.h
index ba57624..0c8e2ed 100644
--- a/shims/ppp.h
+++ b/shims/ppp.h
@@ -53,7 +53,7 @@
   PPP();
 
  private:
-  friend struct base::DefaultLazyInstanceTraits<PPP>;
+  friend base::LazyInstanceTraitsBase<PPP>;
 
   bool CreateProxy();
   void DestroyProxy();