1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/chromeos/power/session_state_controller_delegate_chromeos.h"
6
7#include "base/logging.h"
8#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
9#include "chrome/browser/lifetime/application_lifetime.h"
10#include "chromeos/dbus/dbus_thread_manager.h"
11#include "chromeos/dbus/power_manager_client.h"
12#include "chromeos/dbus/session_manager_client.h"
13
14namespace chromeos {
15
16void SessionStateControllerDelegateChromeos::RequestLockScreen() {
17  // If KioskMode is enabled, if the user attempts to lock the screen via
18  // the power button, we instead want to log the user out. This seemed to
19  // be the most acceptable replacement for the lock action of the power
20  // button for Kiosk mode users.
21  if (KioskModeSettings::Get()->IsKioskModeEnabled()) {
22    chrome::AttemptUserExit();
23    return;
24  }
25  // TODO(antrim) : additional logging for crbug/173178
26  LOG(WARNING) << "Requesting screen lock from SessionStateControllerDelegate";
27  DBusThreadManager::Get()->GetSessionManagerClient()->RequestLockScreen();
28}
29
30void SessionStateControllerDelegateChromeos::RequestShutdown() {
31  DBusThreadManager::Get()->GetPowerManagerClient()->RequestShutdown();
32}
33
34}  // namespace chromeos
35