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);
}
}