Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /ash /shutdown_controller_impl.cc
blob: 6ad26996dd9d63cfb4389df43545e02f984ebed3 [file] [log] [blame] [edit]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include"ash/shutdown_controller_impl.h"
#include<utility>
#include"ash/session/session_controller_impl.h"
#include"ash/shell.h"
#include"ash/shutdown_reason.h"
#include"base/metrics/user_metrics.h"
#include"base/strings/stringprintf.h"
#include"base/system/sys_info.h"
#include"chromeos/dbus/power/power_manager_client.h"
#include"third_party/cros_system_api/dbus/service_constants.h"
namespace ash{
ShutdownControllerImpl::ShutdownControllerImpl()=default;
ShutdownControllerImpl::~ShutdownControllerImpl()=default;
voidShutdownControllerImpl::AddObserver(Observer* observer){
observers_.AddObserver(observer);
}
voidShutdownControllerImpl::RemoveObserver(Observer* observer){
observers_.RemoveObserver(observer);
}
voidShutdownControllerImpl::SetRebootOnShutdown(bool reboot_on_shutdown){
if(reboot_on_shutdown_== reboot_on_shutdown)
return;
reboot_on_shutdown_= reboot_on_shutdown;
for(auto& observer: observers_)
observer.OnShutdownPolicyChanged(reboot_on_shutdown_);
}
voidShutdownControllerImpl::ShutDownOrReboot(ShutdownReason reason){
// For developers on Linux desktop just exit the app.
if(!base::SysInfo::IsRunningOnChromeOS()){
Shell::Get()->session_controller()->RequestSignOut();
return;
}
if(reason==ShutdownReason::POWER_BUTTON)
base::RecordAction(base::UserMetricsAction("Accel_ShutDown_PowerButton"));
// On real Chrome OS hardware the power manager handles shutdown.
std::string description= base::StringPrintf("UI request from ash: %s",
ShutdownReasonToString(reason));
if(reboot_on_shutdown_){
chromeos::PowerManagerClient::Get()->RequestRestart(
power_manager::REQUEST_RESTART_FOR_USER, description);
}else{
chromeos::PowerManagerClient::Get()->RequestShutdown(
power_manager::REQUEST_SHUTDOWN_FOR_USER, description);
}
}
}// namespace ash

[8]ページ先頭

©2009-2025 Movatter.jp