kiosk_mode_idle_logout.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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#ifndef CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_IDLE_LOGOUT_H_ 6#define CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_IDLE_LOGOUT_H_ 7 8#include "ash/wm/user_activity_observer.h" 9#include "base/basictypes.h" 10#include "base/compiler_specific.h" 11#include "chromeos/dbus/power_manager_client.h" 12#include "content/public/browser/notification_observer.h" 13#include "content/public/browser/notification_registrar.h" 14 15namespace chromeos { 16 17class KioskModeIdleLogout : public ash::UserActivityObserver, 18 public PowerManagerClient::Observer, 19 public content::NotificationObserver { 20 public: 21 static void Initialize(); 22 23 KioskModeIdleLogout(); 24 25 private: 26 friend class KioskModeIdleLogoutTest; 27 28 // Really initialize idle logout when KioskModeHelper is initialized. 29 void Setup(); 30 31 // Overridden from content::NotificationObserver: 32 virtual void Observe(int type, 33 const content::NotificationSource& source, 34 const content::NotificationDetails& details) OVERRIDE; 35 36 // Overridden from PowerManagerClient::Observer: 37 virtual void IdleNotify(int64 threshold) OVERRIDE; 38 39 // UserActivityObserver::Observer overrides: 40 virtual void OnUserActivity() OVERRIDE; 41 42 void SetupIdleNotifications(); 43 void RequestNextIdleNotification(); 44 45 content::NotificationRegistrar registrar_; 46 47 DISALLOW_COPY_AND_ASSIGN(KioskModeIdleLogout); 48}; 49 50} // namespace chromeos 51 52#endif // CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_IDLE_LOGOUT_H_ 53