Update metrics daemon to use new power manager signals for locking (4 of 7).
Co-dependent with the following change:
- Issue 2685003: Update XScreenSaver to use new power manager signals for
locking (3 of 7).
TEST=Ran test suite.
BUG=chromium-os:3694
Review URL: http://codereview.chromium.org/2698002
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index 04ad686..5ccc694 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -16,8 +16,7 @@
#define SAFE_MESSAGE(e) (e.message ? e.message : "unknown error")
#define DBUS_IFACE_FLIMFLAM_MANAGER "org.chromium.flimflam.Manager"
-#define DBUS_IFACE_POWER_MANAGER "org.chromium.Power.Manager"
-#define DBUS_IFACE_SCREENSAVER_MANAGER "org.chromium.ScreenSaver.Manager"
+#define DBUS_IFACE_POWER_MANAGER "org.chromium.PowerManager"
#define DBUS_IFACE_SESSION_MANAGER "org.chromium.SessionManagerInterface"
// File to aggregate daily usage before sending to UMA.
@@ -63,13 +62,7 @@
"type='signal',"
"interface='" DBUS_IFACE_POWER_MANAGER "',"
- "path='/',"
- "member='PowerStateChanged'",
-
- "type='signal',"
- "interface='" DBUS_IFACE_SCREENSAVER_MANAGER "',"
- "path='/',"
- "member='LockStateChanged'",
+ "path='/'"
"type='signal',"
"sender='org.chromium.SessionManager',"
@@ -91,12 +84,6 @@
};
// static
-const char* MetricsDaemon::kScreenSaverStates_[] = {
-#define STATE(name, capname) #name,
-#include "screensaver_states.h"
-};
-
-// static
const char* MetricsDaemon::kSessionStates_[] = {
#define STATE(name, capname) #name,
#include "session_states.h"
@@ -181,19 +168,16 @@
dbus_message_iter_get_basic(&iter, &state_name);
daemon->NetStateChanged(state_name, ticks);
} else if (strcmp(interface, DBUS_IFACE_POWER_MANAGER) == 0) {
- CHECK(strcmp(dbus_message_get_member(message),
- "PowerStateChanged") == 0);
-
- char* state_name;
- dbus_message_iter_get_basic(&iter, &state_name);
- daemon->PowerStateChanged(state_name, now);
- } else if (strcmp(interface, DBUS_IFACE_SCREENSAVER_MANAGER) == 0) {
- CHECK(strcmp(dbus_message_get_member(message),
- "LockStateChanged") == 0);
-
- char* state_name;
- dbus_message_iter_get_basic(&iter, &state_name);
- daemon->ScreenSaverStateChanged(state_name, now);
+ const char* member = dbus_message_get_member(message);
+ if (strcmp(member, "ScreenIsLocked") == 0) {
+ daemon->SetUserActiveState(false, now);
+ } else if (strcmp(member, "ScreenIsUnlocked") == 0) {
+ daemon->SetUserActiveState(true, now);
+ } else if (strcmp(member, "PowerStateChanged") == 0) {
+ char* state_name;
+ dbus_message_iter_get_basic(&iter, &state_name);
+ daemon->PowerStateChanged(state_name, now);
+ }
} else if (strcmp(interface, DBUS_IFACE_SESSION_MANAGER) == 0) {
CHECK(strcmp(dbus_message_get_member(message),
"SessionStateChanged") == 0);
@@ -265,23 +249,6 @@
return kUnknownPowerState;
}
-void MetricsDaemon::ScreenSaverStateChanged(const char* state_name, Time now) {
- DLOG(INFO) << "screen-saver state: " << state_name;
- screensaver_state_ = LookupScreenSaverState(state_name);
- SetUserActiveState(screensaver_state_ == kScreenSaverStateUnlocked, now);
-}
-
-MetricsDaemon::ScreenSaverState
-MetricsDaemon::LookupScreenSaverState(const char* state_name) {
- for (int i = 0; i < kNumberScreenSaverStates; i++) {
- if (strcmp(state_name, kScreenSaverStates_[i]) == 0) {
- return static_cast<ScreenSaverState>(i);
- }
- }
- DLOG(WARNING) << "unknown screen-saver state: " << state_name;
- return kUnknownScreenSaverState;
-}
-
void MetricsDaemon::SessionStateChanged(const char* state_name, Time now) {
DLOG(INFO) << "user session state: " << state_name;
session_state_ = LookupSessionState(state_name);
diff --git a/metrics/metrics_daemon.h b/metrics/metrics_daemon.h
index 835aca3..ea4771f 100644
--- a/metrics/metrics_daemon.h
+++ b/metrics/metrics_daemon.h
@@ -20,7 +20,6 @@
: daily_use_record_file_(NULL),
network_state_(kUnknownNetworkState),
power_state_(kUnknownPowerState),
- screensaver_state_(kUnknownScreenSaverState),
session_state_(kUnknownSessionState),
user_active_(false),
daily_use_day_last_(0),
@@ -72,14 +71,6 @@
kNumberPowerStates
};
- // The screen-saver states (see screensaver_states.h).
- enum ScreenSaverState {
- kUnknownScreenSaverState = -1, // Initial/unknown screen-saver state.
-#define STATE(name, capname) kScreenSaverState ## capname,
-#include "screensaver_states.h"
- kNumberScreenSaverStates
- };
-
// The user session states (see session_states.h).
enum SessionState {
kUnknownSessionState = -1, // Initial/unknown user session state.
@@ -115,9 +106,6 @@
// Array of power states.
static const char* kPowerStates_[kNumberPowerStates];
- // Array of screen-saver states.
- static const char* kScreenSaverStates_[kNumberScreenSaverStates];
-
// Array of user session states.
static const char* kSessionStates_[kNumberSessionStates];
@@ -141,12 +129,6 @@
// Given the state name, returns the state id.
PowerState LookupPowerState(const char* state_name);
- // Processes screen-saver state change.
- void ScreenSaverStateChanged(const char* state_name, base::Time now);
-
- // Given the state name, returns the state id.
- ScreenSaverState LookupScreenSaverState(const char* state_name);
-
// Processes user session state change.
void SessionStateChanged(const char* state_name, base::Time now);
@@ -215,9 +197,6 @@
// Current power state.
PowerState power_state_;
- // Current screen-saver state.
- ScreenSaverState screensaver_state_;
-
// Current user session state.
SessionState session_state_;
diff --git a/metrics/metrics_daemon_test.cc b/metrics/metrics_daemon_test.cc
index 31f079d..49acd31 100644
--- a/metrics/metrics_daemon_test.cc
+++ b/metrics/metrics_daemon_test.cc
@@ -286,15 +286,6 @@
daemon_.LookupPowerState("somestate"));
}
-TEST_F(MetricsDaemonTest, LookupScreenSaverState) {
- EXPECT_EQ(MetricsDaemon::kScreenSaverStateLocked,
- daemon_.LookupScreenSaverState("locked"));
- EXPECT_EQ(MetricsDaemon::kScreenSaverStateUnlocked,
- daemon_.LookupScreenSaverState("unlocked"));
- EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState,
- daemon_.LookupScreenSaverState("somestate"));
-}
-
TEST_F(MetricsDaemonTest, LookupSessionState) {
EXPECT_EQ(MetricsDaemon::kSessionStateStarted,
daemon_.LookupSessionState("started"));
@@ -322,7 +313,7 @@
DeleteDBusMessage(msg);
msg = NewDBusSignalString("/",
- "org.chromium.Power.Manager",
+ "org.chromium.PowerManager",
"PowerStateChanged",
"on");
EXPECT_EQ(MetricsDaemon::kUnknownPowerState, daemon_.power_state_);
@@ -332,14 +323,12 @@
DeleteDBusMessage(msg);
msg = NewDBusSignalString("/",
- "org.chromium.ScreenSaver.Manager",
- "LockStateChanged",
- "unlocked");
- EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState,
- daemon_.screensaver_state_);
+ "org.chromium.PowerManager",
+ "ScreenIsUnlocked",
+ "");
+ EXPECT_FALSE(daemon_.user_active_);
res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
- EXPECT_EQ(MetricsDaemon::kScreenSaverStateUnlocked,
- daemon_.screensaver_state_);
+ EXPECT_TRUE(daemon_.user_active_);
EXPECT_EQ(DBUS_HANDLER_RESULT_HANDLED, res);
DeleteDBusMessage(msg);
@@ -433,36 +422,6 @@
EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 7, /* seconds */ 30);
}
-TEST_F(MetricsDaemonTest, ScreenSaverStateChanged) {
- EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState,
- daemon_.screensaver_state_);
-
- daemon_.ScreenSaverStateChanged("locked",
- TestTime(5 * kSecondsPerDay + 10));
- EXPECT_EQ(MetricsDaemon::kScreenSaverStateLocked,
- daemon_.screensaver_state_);
- EXPECT_FALSE(daemon_.user_active_);
- EXPECT_EQ(TestTime(5 * kSecondsPerDay + 10), daemon_.user_active_last_);
- EXPECT_EQ(5, daemon_.daily_use_day_last_);
- EXPECT_TRUE(AssertNoOrEmptyUseRecordFile());
-
- daemon_.ScreenSaverStateChanged("unlocked",
- TestTime(5 * kSecondsPerDay + 100));
- EXPECT_EQ(MetricsDaemon::kScreenSaverStateUnlocked,
- daemon_.screensaver_state_);
- EXPECT_TRUE(daemon_.user_active_);
- EXPECT_EQ(TestTime(5 * kSecondsPerDay + 100), daemon_.user_active_last_);
- EXPECT_TRUE(AssertNoOrEmptyUseRecordFile());
-
- daemon_.ScreenSaverStateChanged("otherstate",
- TestTime(5 * kSecondsPerDay + 300));
- EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState,
- daemon_.screensaver_state_);
- EXPECT_FALSE(daemon_.user_active_);
- EXPECT_EQ(TestTime(5 * kSecondsPerDay + 300), daemon_.user_active_last_);
- EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 5, /* seconds */ 200);
-}
-
TEST_F(MetricsDaemonTest, SendMetric) {
ExpectMetric("Dummy.Metric", 3, 1, 100, 50);
daemon_.SendMetric("Dummy.Metric", /* sample */ 3,
diff --git a/metrics/screensaver_states.h b/metrics/screensaver_states.h
deleted file mode 100644
index 340142e..0000000
--- a/metrics/screensaver_states.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A table of screen-saver states, to be included when building tabular things.
-//
-// See network_states.h for details.
-
-
-#ifndef STATE
-#define STATE(name, capname)
-#endif
-
-STATE(locked, Locked)
-STATE(unlocked, Unlocked)
-
-#undef STATE