ash: Pass more-detailed shutdown reasons to powerd.

Make ShutdownController pass the actual cause of a shutdown
request (power button, system tray, or login screen) to
powerd rather just a generic "UI request from ash" string.

Also get rid of an "unknown" ShutdownReason enum value that
looks like it was just used as an initial placeholder within
LockStateController.

Bug: none
Change-Id: I0760e68a6bf462c508d1f2d8740b8e6a1cf31191
Reviewed-on: https://chromium-review.googlesource.com/933546
Reviewed-by: James Cook <[email protected]>
Reviewed-by: Qiang Xu <[email protected]>
Commit-Queue: Dan Erat <[email protected]>
Cr-Commit-Position: refs/heads/master@{#538896}
diff --git a/ash/shutdown_controller.cc b/ash/shutdown_controller.cc
index 6d9f905..cf5f466 100644
--- a/ash/shutdown_controller.cc
+++ b/ash/shutdown_controller.cc
@@ -11,6 +11,7 @@
 #include "ash/shutdown_reason.h"
 #include "ash/wm/lock_state_controller.h"
 #include "base/metrics/user_metrics.h"
+#include "base/strings/stringprintf.h"
 #include "base/sys_info.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/power_manager_client.h"
@@ -42,19 +43,14 @@
 
   // On real Chrome OS hardware the power manager handles shutdown.
   using chromeos::DBusThreadManager;
-  constexpr char kDescription[] = "UI request from ash";
+  std::string description = base::StringPrintf("UI request from ash: %s",
+                                               ShutdownReasonToString(reason));
   if (reboot_on_shutdown_) {
     DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(
-        reason == ShutdownReason::UNKNOWN
-            ? power_manager::REQUEST_RESTART_OTHER
-            : power_manager::REQUEST_RESTART_FOR_USER,
-        kDescription);
+        power_manager::REQUEST_RESTART_FOR_USER, description);
   } else {
     DBusThreadManager::Get()->GetPowerManagerClient()->RequestShutdown(
-        reason == ShutdownReason::UNKNOWN
-            ? power_manager::REQUEST_SHUTDOWN_OTHER
-            : power_manager::REQUEST_SHUTDOWN_FOR_USER,
-        kDescription);
+        power_manager::REQUEST_SHUTDOWN_FOR_USER, description);
   }
 }