summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 05:35:47 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 05:35:47 +0000
commit0b1eede37df1ab9ea33125fbf5dfb523b2fa7a8f (patch)
tree00503cceccc91aaafba2262a3f02307c0ca33147
parent09a10057e09de243a53915d7ebeaad19c2f9e029 (diff)
downloadchromium_src-0b1eede37df1ab9ea33125fbf5dfb523b2fa7a8f.zip
chromium_src-0b1eede37df1ab9ea33125fbf5dfb523b2fa7a8f.tar.gz
chromium_src-0b1eede37df1ab9ea33125fbf5dfb523b2fa7a8f.tar.bz2
chromeos: Report user activity type to power manager.
This makes Chrome's reports of user activity to powerd include an enum describing the event type (currently just "brightness up", "brightness down", and "other"). To facilitate this, it makes UserActivityDetector pass the event that triggered the notification to observers. To facilitate _that_, it reorders UserActivityDetector to run after EventRewriterEventFilter instead of before it. It also updates the cros_system_api dependency to 59a6e103. BUG=254841 Review URL: https://chromiumcodereview.appspot.com/18906003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211957 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--ash/shell.cc10
-rw-r--r--ash/wm/user_activity_detector.cc14
-rw-r--r--ash/wm/user_activity_detector.h2
-rw-r--r--ash/wm/user_activity_detector_unittest.cc4
-rw-r--r--ash/wm/user_activity_observer.h9
-rw-r--r--chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc2
-rw-r--r--chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h4
-rw-r--r--chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc2
-rw-r--r--chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h4
-rw-r--r--chrome/browser/chromeos/login/webui_login_display.cc2
-rw-r--r--chrome/browser/chromeos/login/webui_login_display.h2
-rw-r--r--chrome/browser/chromeos/policy/recommendation_restorer.cc2
-rw-r--r--chrome/browser/chromeos/policy/recommendation_restorer.h4
-rw-r--r--chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc2
-rw-r--r--chrome/browser/chromeos/power/user_activity_notifier.cc21
-rw-r--r--chrome/browser/chromeos/power/user_activity_notifier.h2
-rw-r--r--chrome/browser/chromeos/screensaver/screensaver_controller.cc2
-rw-r--r--chrome/browser/chromeos/screensaver/screensaver_controller.h4
-rw-r--r--chrome/browser/chromeos/screensaver/screensaver_controller_browsertest.cc6
-rw-r--r--chrome/browser/chromeos/system/automatic_reboot_manager.cc4
-rw-r--r--chrome/browser/chromeos/system/automatic_reboot_manager.h2
-rw-r--r--chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc6
-rw-r--r--chromeos/dbus/fake_power_manager_client.cc3
-rw-r--r--chromeos/dbus/fake_power_manager_client.h3
-rw-r--r--chromeos/dbus/power_manager_client.cc18
-rw-r--r--chromeos/dbus/power_manager_client.h3
27 files changed, 89 insertions, 50 deletions
diff --git a/DEPS b/DEPS
index b1014cf..d07fcd8 100644
--- a/DEPS
+++ b/DEPS
@@ -435,7 +435,7 @@ deps_os = {
# For Linux and Chromium OS.
"src/third_party/cros_system_api":
Var("chromiumos_git") + "/platform/system_api.git" +
- "@648ba6b8ca5e9cb4af9db84a9b8b6ccbe5cf51f3",
+ "@59a6e103fd972817e3bb69a65b91170ea40d877f",
# Note that this is different from Android's freetype repo.
"src/third_party/freetype2/src":
diff --git a/ash/shell.cc b/ash/shell.cc
index b55cb3f..81f7e2f 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -250,8 +250,8 @@ Shell::~Shell() {
aura::client::GetFocusClient(active_root_window_)->FocusWindow(NULL);
// Please keep in same order as in Init() because it's easy to miss one.
- RemovePreTargetHandler(user_activity_detector_.get());
RemovePreTargetHandler(event_rewriter_filter_.get());
+ RemovePreTargetHandler(user_activity_detector_.get());
RemovePreTargetHandler(overlay_filter_.get());
RemovePreTargetHandler(input_method_filter_.get());
RemovePreTargetHandler(window_modality_controller_.get());
@@ -502,12 +502,14 @@ void Shell::Init() {
#endif
// The order in which event filters are added is significant.
- user_activity_detector_.reset(new UserActivityDetector);
- AddPreTargetHandler(user_activity_detector_.get());
-
event_rewriter_filter_.reset(new internal::EventRewriterEventFilter);
AddPreTargetHandler(event_rewriter_filter_.get());
+ // UserActivityDetector passes events to observers, so let them get
+ // rewritten first.
+ user_activity_detector_.reset(new UserActivityDetector);
+ AddPreTargetHandler(user_activity_detector_.get());
+
overlay_filter_.reset(new internal::OverlayEventFilter);
AddPreTargetHandler(overlay_filter_.get());
AddShellObserver(overlay_filter_.get());
diff --git a/ash/wm/user_activity_detector.cc b/ash/wm/user_activity_detector.cc
index db0d1d0..269b9ef 100644
--- a/ash/wm/user_activity_detector.cc
+++ b/ash/wm/user_activity_detector.cc
@@ -41,7 +41,7 @@ void UserActivityDetector::OnDisplayPowerChanging() {
}
void UserActivityDetector::OnKeyEvent(ui::KeyEvent* event) {
- HandleActivity();
+ HandleActivity(event);
}
void UserActivityDetector::OnMouseEvent(ui::MouseEvent* event) {
@@ -51,32 +51,32 @@ void UserActivityDetector::OnMouseEvent(ui::MouseEvent* event) {
GetCurrentTime() < honor_mouse_events_time_)
return;
- HandleActivity();
+ HandleActivity(event);
}
void UserActivityDetector::OnScrollEvent(ui::ScrollEvent* event) {
- HandleActivity();
+ HandleActivity(event);
}
void UserActivityDetector::OnTouchEvent(ui::TouchEvent* event) {
- HandleActivity();
+ HandleActivity(event);
}
void UserActivityDetector::OnGestureEvent(ui::GestureEvent* event) {
- HandleActivity();
+ HandleActivity(event);
}
base::TimeTicks UserActivityDetector::GetCurrentTime() const {
return !now_for_test_.is_null() ? now_for_test_ : base::TimeTicks::Now();
}
-void UserActivityDetector::HandleActivity() {
+void UserActivityDetector::HandleActivity(const ui::Event* event) {
base::TimeTicks now = GetCurrentTime();
last_activity_time_ = now;
if (last_observer_notification_time_.is_null() ||
(now - last_observer_notification_time_).InMillisecondsF() >=
kNotifyIntervalMs) {
- FOR_EACH_OBSERVER(UserActivityObserver, observers_, OnUserActivity());
+ FOR_EACH_OBSERVER(UserActivityObserver, observers_, OnUserActivity(event));
last_observer_notification_time_ = now;
}
}
diff --git a/ash/wm/user_activity_detector.h b/ash/wm/user_activity_detector.h
index 0a4ad48..ca01ec1 100644
--- a/ash/wm/user_activity_detector.h
+++ b/ash/wm/user_activity_detector.h
@@ -54,7 +54,7 @@ class ASH_EXPORT UserActivityDetector : public ui::EventHandler {
// Updates |last_activity_time_|. Additionally notifies observers and
// updates |last_observer_notification_time_| if enough time has passed
// since the last notification.
- void HandleActivity();
+ void HandleActivity(const ui::Event* event);
ObserverList<UserActivityObserver> observers_;
diff --git a/ash/wm/user_activity_detector_unittest.cc b/ash/wm/user_activity_detector_unittest.cc
index 75af6cc..271d764 100644
--- a/ash/wm/user_activity_detector_unittest.cc
+++ b/ash/wm/user_activity_detector_unittest.cc
@@ -39,7 +39,9 @@ class TestUserActivityObserver : public UserActivityObserver {
void reset_stats() { num_invocations_ = 0; }
// UserActivityObserver implementation.
- virtual void OnUserActivity() OVERRIDE { num_invocations_++; }
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE {
+ num_invocations_++;
+ }
private:
// Number of times that OnUserActivity() has been called.
diff --git a/ash/wm/user_activity_observer.h b/ash/wm/user_activity_observer.h
index 5255ced..a65ebfa 100644
--- a/ash/wm/user_activity_observer.h
+++ b/ash/wm/user_activity_observer.h
@@ -8,6 +8,10 @@
#include "ash/ash_export.h"
#include "base/basictypes.h"
+namespace ui {
+class Event;
+}
+
namespace ash {
// Interface for classes that want to be notified about user activity.
@@ -15,8 +19,9 @@ namespace ash {
class ASH_EXPORT UserActivityObserver {
public:
// Invoked periodically while the user is active (i.e. generating input
- // events).
- virtual void OnUserActivity() = 0;
+ // events). |event| is the event that triggered the notification; it may
+ // be NULL in some cases (e.g. testing or synthetic invocations).
+ virtual void OnUserActivity(const ui::Event* event) = 0;
protected:
UserActivityObserver() {}
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc
index 48b7bfa..45cab46 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc
@@ -70,7 +70,7 @@ void KioskModeIdleLogout::Observe(
}
}
-void KioskModeIdleLogout::OnUserActivity() {
+void KioskModeIdleLogout::OnUserActivity(const ui::Event* event) {
IdleLogoutDialogView::CloseDialog();
ResetTimer();
}
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h
index 51d0792..c358277 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.h
@@ -33,8 +33,8 @@ class KioskModeIdleLogout : public ash::UserActivityObserver,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
- // UserActivityObserver::Observer overrides:
- virtual void OnUserActivity() OVERRIDE;
+ // UserActivityObserver overrides:
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
// Begins listening for user activity and calls ResetTimer().
void Start();
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
index 313e5dd..67e87f5 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
@@ -232,7 +232,7 @@ void KioskModeScreensaver::SetupScreensaver(
}
}
-void KioskModeScreensaver::OnUserActivity() {
+void KioskModeScreensaver::OnUserActivity(const ui::Event* event) {
// We don't want to handle further user notifications; we'll either login
// the user and close out or or at least close the screensaver.
ash::Shell::GetInstance()->user_activity_detector()->RemoveObserver(this);
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h
index c964017..689e25e5 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h
@@ -24,8 +24,8 @@ class KioskModeScreensaver : public ash::UserActivityObserver {
private:
friend class KioskModeScreensaverTest;
- // UserActivityObserver::Observer overrides:
- virtual void OnUserActivity() OVERRIDE;
+ // UserActivityObserver overrides:
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
// Initialization functions, in order
// Get the screensaver path once KioskModeHelper is initialized.
diff --git a/chrome/browser/chromeos/login/webui_login_display.cc b/chrome/browser/chromeos/login/webui_login_display.cc
index fc4a569..48bcbc4 100644
--- a/chrome/browser/chromeos/login/webui_login_display.cc
+++ b/chrome/browser/chromeos/login/webui_login_display.cc
@@ -364,7 +364,7 @@ void WebUILoginDisplay::Signout() {
delegate_->Signout();
}
-void WebUILoginDisplay::OnUserActivity() {
+void WebUILoginDisplay::OnUserActivity(const ui::Event* event) {
if (!password_clear_timer_.IsRunning())
StartPasswordClearTimer();
password_clear_timer_.Reset();
diff --git a/chrome/browser/chromeos/login/webui_login_display.h b/chrome/browser/chromeos/login/webui_login_display.h
index de2f8cd..f8a0341 100644
--- a/chrome/browser/chromeos/login/webui_login_display.h
+++ b/chrome/browser/chromeos/login/webui_login_display.h
@@ -86,7 +86,7 @@ class WebUILoginDisplay : public LoginDisplay,
virtual void Signout() OVERRIDE;
// UserActivityDetector implementation:
- virtual void OnUserActivity() OVERRIDE;
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
private:
void StartPasswordClearTimer();
diff --git a/chrome/browser/chromeos/policy/recommendation_restorer.cc b/chrome/browser/chromeos/policy/recommendation_restorer.cc
index cbf8cdf..aaf19e0 100644
--- a/chrome/browser/chromeos/policy/recommendation_restorer.cc
+++ b/chrome/browser/chromeos/policy/recommendation_restorer.cc
@@ -79,7 +79,7 @@ void RecommendationRestorer::Observe(
}
}
-void RecommendationRestorer::OnUserActivity() {
+void RecommendationRestorer::OnUserActivity(const ui::Event* event) {
if (restore_timer_.IsRunning())
restore_timer_.Reset();
}
diff --git a/chrome/browser/chromeos/policy/recommendation_restorer.h b/chrome/browser/chromeos/policy/recommendation_restorer.h
index 1d67159..0f192de 100644
--- a/chrome/browser/chromeos/policy/recommendation_restorer.h
+++ b/chrome/browser/chromeos/policy/recommendation_restorer.h
@@ -41,8 +41,8 @@ class RecommendationRestorer : public BrowserContextKeyedService,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
- // ash::UserActivityObserver::Observer:
- virtual void OnUserActivity() OVERRIDE;
+ // ash::UserActivityObserver:
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
// If a recommended value and a user setting exist for |pref_name|, clears the
// user setting so that the recommended value can take effect. If
diff --git a/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc b/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc
index c6e40fd..664681e 100644
--- a/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc
+++ b/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc
@@ -151,7 +151,7 @@ void RecommendationRestorerTest::NotifyOfSessionStart() {
void RecommendationRestorerTest::NotifyOfUserActivity() {
ASSERT_TRUE(restorer_);
- restorer_->OnUserActivity();
+ restorer_->OnUserActivity(NULL);
}
void RecommendationRestorerTest::VerifyPrefFollowsUser(
diff --git a/chrome/browser/chromeos/power/user_activity_notifier.cc b/chrome/browser/chromeos/power/user_activity_notifier.cc
index 2273963..48fa344 100644
--- a/chrome/browser/chromeos/power/user_activity_notifier.cc
+++ b/chrome/browser/chromeos/power/user_activity_notifier.cc
@@ -8,6 +8,9 @@
#include "ash/wm/user_activity_detector.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/power_manager_client.h"
+#include "ui/base/events/event.h"
+#include "ui/base/events/event_constants.h"
+#include "ui/base/keycodes/keyboard_codes_posix.h"
namespace {
@@ -26,13 +29,27 @@ UserActivityNotifier::~UserActivityNotifier() {
ash::Shell::GetInstance()->user_activity_detector()->RemoveObserver(this);
}
-void UserActivityNotifier::OnUserActivity() {
+void UserActivityNotifier::OnUserActivity(const ui::Event* event) {
base::TimeTicks now = base::TimeTicks::Now();
// InSeconds() truncates rather than rounding, so it's fine for this
// comparison.
if (last_notify_time_.is_null() ||
(now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) {
- DBusThreadManager::Get()->GetPowerManagerClient()->NotifyUserActivity();
+ power_manager::UserActivityType type = power_manager::USER_ACTIVITY_OTHER;
+ if (event && event->type() == ui::ET_KEY_PRESSED) {
+ switch (static_cast<const ui::KeyEvent*>(event)->key_code()) {
+ case ui::VKEY_BRIGHTNESS_UP:
+ type = power_manager::USER_ACTIVITY_BRIGHTNESS_UP_KEY_PRESS;
+ break;
+ case ui::VKEY_BRIGHTNESS_DOWN:
+ type = power_manager::USER_ACTIVITY_BRIGHTNESS_DOWN_KEY_PRESS;
+ break;
+ default:
+ break;
+ }
+ }
+
+ DBusThreadManager::Get()->GetPowerManagerClient()->NotifyUserActivity(type);
last_notify_time_ = now;
}
}
diff --git a/chrome/browser/chromeos/power/user_activity_notifier.h b/chrome/browser/chromeos/power/user_activity_notifier.h
index f1189ef..e44a42b 100644
--- a/chrome/browser/chromeos/power/user_activity_notifier.h
+++ b/chrome/browser/chromeos/power/user_activity_notifier.h
@@ -19,7 +19,7 @@ class UserActivityNotifier : public ash::UserActivityObserver {
virtual ~UserActivityNotifier();
// ash::UserActivityObserver implementation.
- virtual void OnUserActivity() OVERRIDE;
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
private:
// Last time that the power manager was notified.
diff --git a/chrome/browser/chromeos/screensaver/screensaver_controller.cc b/chrome/browser/chromeos/screensaver/screensaver_controller.cc
index 18952a8..55e6199 100644
--- a/chrome/browser/chromeos/screensaver/screensaver_controller.cc
+++ b/chrome/browser/chromeos/screensaver/screensaver_controller.cc
@@ -142,7 +142,7 @@ void ScreensaverController::IdleNotify(int64 threshold) {
ash::Shell::GetInstance()->user_activity_detector()->AddObserver(this);
}
-void ScreensaverController::OnUserActivity() {
+void ScreensaverController::OnUserActivity(const ui::Event* event) {
// We don't want to handle further user notifications; we'll either login
// the user and close out or or at least close the screensaver.
if (ash::Shell::GetInstance()->user_activity_detector()->HasObserver(this))
diff --git a/chrome/browser/chromeos/screensaver/screensaver_controller.h b/chrome/browser/chromeos/screensaver/screensaver_controller.h
index 1223415..aa69b29 100644
--- a/chrome/browser/chromeos/screensaver/screensaver_controller.h
+++ b/chrome/browser/chromeos/screensaver/screensaver_controller.h
@@ -48,8 +48,8 @@ class ScreensaverController : public ash::UserActivityObserver,
// Overridden from PowerManagerClient::Observer:
virtual void IdleNotify(int64 threshold) OVERRIDE;
- // UserActivityObserver::Observer overrides:
- virtual void OnUserActivity() OVERRIDE;
+ // UserActivityObserver overrides:
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
void SetupScreensaver(const std::string& screensaver_extension_id);
void TeardownScreensaver();
diff --git a/chrome/browser/chromeos/screensaver/screensaver_controller_browsertest.cc b/chrome/browser/chromeos/screensaver/screensaver_controller_browsertest.cc
index 17baf41..781c9a1 100644
--- a/chrome/browser/chromeos/screensaver/screensaver_controller_browsertest.cc
+++ b/chrome/browser/chromeos/screensaver/screensaver_controller_browsertest.cc
@@ -63,7 +63,7 @@ IN_PROC_BROWSER_TEST_F(ScreensaverControllerTest, Basic) {
EXPECT_TRUE(ash::IsScreensaverShown());
// Trigger active.
- controller_->OnUserActivity();
+ controller_->OnUserActivity(NULL);
EXPECT_FALSE(ash::IsScreensaverShown());
};
@@ -77,7 +77,7 @@ IN_PROC_BROWSER_TEST_F(ScreensaverControllerTest, OutOfOrder) {
base::MessageLoop::current()->RunUntilIdle();
// Trigger active.
- controller_->OnUserActivity();
+ controller_->OnUserActivity(NULL);
EXPECT_FALSE(ash::IsScreensaverShown());
// Trigger idle.
@@ -90,7 +90,7 @@ IN_PROC_BROWSER_TEST_F(ScreensaverControllerTest, OutOfOrder) {
EXPECT_TRUE(ash::IsScreensaverShown());
// Trigger active.
- controller_->OnUserActivity();
+ controller_->OnUserActivity(NULL);
EXPECT_FALSE(ash::IsScreensaverShown());
};
diff --git a/chrome/browser/chromeos/system/automatic_reboot_manager.cc b/chrome/browser/chromeos/system/automatic_reboot_manager.cc
index c16abdb..5ac91e7 100644
--- a/chrome/browser/chromeos/system/automatic_reboot_manager.cc
+++ b/chrome/browser/chromeos/system/automatic_reboot_manager.cc
@@ -178,7 +178,7 @@ AutomaticRebootManager::AutomaticRebootManager(
content::NotificationService::AllSources());
login_screen_idle_timer_.reset(
new base::OneShotTimer<AutomaticRebootManager>);
- OnUserActivity();
+ OnUserActivity(NULL);
}
// In a regular browser, base::ThreadTaskRunnerHandle::Get() and
@@ -240,7 +240,7 @@ void AutomaticRebootManager::UpdateStatusChanged(
Reschedule();
}
-void AutomaticRebootManager::OnUserActivity() {
+void AutomaticRebootManager::OnUserActivity(const ui::Event* event) {
if (!login_screen_idle_timer_)
return;
diff --git a/chrome/browser/chromeos/system/automatic_reboot_manager.h b/chrome/browser/chromeos/system/automatic_reboot_manager.h
index faafcd4..83e5398 100644
--- a/chrome/browser/chromeos/system/automatic_reboot_manager.h
+++ b/chrome/browser/chromeos/system/automatic_reboot_manager.h
@@ -104,7 +104,7 @@ class AutomaticRebootManager : public PowerManagerClient::Observer,
const UpdateEngineClient::Status& status) OVERRIDE;
// ash::UserActivityObserver:
- virtual void OnUserActivity() OVERRIDE;
+ virtual void OnUserActivity(const ui::Event* event) OVERRIDE;
// content::NotificationObserver:
virtual void Observe(int type,
diff --git a/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc b/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc
index 16a49d4..31fd458 100644
--- a/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc
+++ b/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc
@@ -644,7 +644,7 @@ TEST_F(AutomaticRebootManagerBasicTest, UserActivityResetsIdleTimer) {
FastForwardBy(base::TimeDelta::FromSeconds(50), false);
// Simulate user activity.
- automatic_reboot_manager_->OnUserActivity();
+ automatic_reboot_manager_->OnUserActivity(NULL);
}
// Fast forward the uptime by 60 seconds without simulating user activity.
@@ -1381,7 +1381,7 @@ TEST_P(AutomaticRebootManagerTest, PolicyAfterUpdateInGracePeriod) {
FastForwardBy(base::TimeDelta::FromHours(6), false);
// Simulate user activity.
- automatic_reboot_manager_->OnUserActivity();
+ automatic_reboot_manager_->OnUserActivity(NULL);
// Enable automatic reboot after an update has been applied. Verify that the
// device does not reboot immediately.
@@ -1418,7 +1418,7 @@ TEST_P(AutomaticRebootManagerTest, PolicyAfterUpdateAfterGracePeriod) {
false);
// Simulate user activity.
- automatic_reboot_manager_->OnUserActivity();
+ automatic_reboot_manager_->OnUserActivity(NULL);
// Enable automatic rebooting after an update has been applied. Verify that
// unless a non-kiosk-app session is in progress, the the device immediately
diff --git a/chromeos/dbus/fake_power_manager_client.cc b/chromeos/dbus/fake_power_manager_client.cc
index f0054ce..3fda910 100644
--- a/chromeos/dbus/fake_power_manager_client.cc
+++ b/chromeos/dbus/fake_power_manager_client.cc
@@ -72,7 +72,8 @@ void FakePowerManagerClient::SetIsProjecting(bool is_projecting) {
void FakePowerManagerClient::RemoveObserver(Observer* observer) {
}
-void FakePowerManagerClient::NotifyUserActivity() {
+void FakePowerManagerClient::NotifyUserActivity(
+ power_manager::UserActivityType type) {
}
} // namespace chromeos
diff --git a/chromeos/dbus/fake_power_manager_client.h b/chromeos/dbus/fake_power_manager_client.h
index 130edd2..31dd227 100644
--- a/chromeos/dbus/fake_power_manager_client.h
+++ b/chromeos/dbus/fake_power_manager_client.h
@@ -36,7 +36,8 @@ class FakePowerManagerClient : public PowerManagerClient {
virtual void RequestRestart() OVERRIDE;
virtual void RequestShutdown() OVERRIDE;
virtual void RequestIdleNotification(int64 threshold_secs) OVERRIDE;
- virtual void NotifyUserActivity() OVERRIDE;
+ virtual void NotifyUserActivity(
+ power_manager::UserActivityType type) OVERRIDE;
virtual void NotifyVideoActivity(bool is_fullscreen) OVERRIDE;
virtual void SetPolicy(
const power_manager::PowerManagementPolicy& policy) OVERRIDE;
diff --git a/chromeos/dbus/power_manager_client.cc b/chromeos/dbus/power_manager_client.cc
index cfe70fc..3883b82 100644
--- a/chromeos/dbus/power_manager_client.cc
+++ b/chromeos/dbus/power_manager_client.cc
@@ -28,7 +28,6 @@
#include "dbus/message.h"
#include "dbus/object_path.h"
#include "dbus/object_proxy.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
@@ -248,8 +247,18 @@ class PowerManagerClientImpl : public PowerManagerClient {
dbus::ObjectProxy::EmptyResponseCallback());
}
- virtual void NotifyUserActivity() OVERRIDE {
- SimpleMethodCallToPowerManager(power_manager::kHandleUserActivityMethod);
+ virtual void NotifyUserActivity(
+ power_manager::UserActivityType type) OVERRIDE {
+ dbus::MethodCall method_call(
+ power_manager::kPowerManagerInterface,
+ power_manager::kHandleUserActivityMethod);
+ dbus::MessageWriter writer(&method_call);
+ writer.AppendInt32(type);
+
+ power_manager_proxy_->CallMethod(
+ &method_call,
+ dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ dbus::ObjectProxy::EmptyResponseCallback());
}
virtual void NotifyVideoActivity(bool is_fullscreen) OVERRIDE {
@@ -735,7 +744,8 @@ class PowerManagerClientStubImpl : public PowerManagerClient {
base::TimeDelta::FromMilliseconds(threshold));
}
- virtual void NotifyUserActivity() OVERRIDE {}
+ virtual void NotifyUserActivity(
+ power_manager::UserActivityType type) OVERRIDE {}
virtual void NotifyVideoActivity(bool is_fullscreen) OVERRIDE {}
virtual void SetPolicy(
const power_manager::PowerManagementPolicy& policy) OVERRIDE {}
diff --git a/chromeos/dbus/power_manager_client.h b/chromeos/dbus/power_manager_client.h
index 6424094..5ddd711 100644
--- a/chromeos/dbus/power_manager_client.h
+++ b/chromeos/dbus/power_manager_client.h
@@ -12,6 +12,7 @@
#include "base/time/time.h"
#include "chromeos/chromeos_export.h"
#include "chromeos/dbus/dbus_client_implementation_type.h"
+#include "third_party/cros_system_api/dbus/service_constants.h"
namespace dbus {
class Bus;
@@ -140,7 +141,7 @@ class CHROMEOS_EXPORT PowerManagerClient {
// Notifies the power manager that the user is active (i.e. generating input
// events).
- virtual void NotifyUserActivity() = 0;
+ virtual void NotifyUserActivity(power_manager::UserActivityType type) = 0;
// Notifies the power manager that a video is currently playing. It also
// includes whether or not the containing window for the video is fullscreen.