Skip invalid DefaultService object path values.

If shill sends an invalid DefaultService object path value, we need to
explicitly treat since otherwise the DBus library will abort the
program when trying to send a message to the invalid object path.

Bug: chromium:526446
Change-Id: Id91787916b62cd94dab38532b98be0f0a8b6d4c4
Test: Added unittests
diff --git a/update_manager/real_shill_provider.h b/update_manager/real_shill_provider.h
index 2184ac2..aca4bae 100644
--- a/update_manager/real_shill_provider.h
+++ b/update_manager/real_shill_provider.h
@@ -24,6 +24,7 @@
 #include <string>
 
 #include <base/time/time.h>
+#include <dbus/object_path.h>
 
 #include "update_engine/clock_interface.h"
 #include "update_engine/shill_proxy_interface.h"
@@ -77,10 +78,10 @@
 
   // Get the connection and populate the type and tethering status of the given
   // default connection.
-  bool ProcessDefaultService(const std::string& default_service_path);
+  bool ProcessDefaultService(const dbus::ObjectPath& default_service_path);
 
-  // The current default service path, if connected.
-  std::string default_service_path_;
+  // The current default service path, if connected. "/" means not connected.
+  dbus::ObjectPath default_service_path_{"uninitialized"};
 
   // The mockable interface to access the shill DBus proxies, owned by the
   // caller.