0

chromeos: Remove dead power manager code.

This removes the OutputObserver class, which used to listen
for ScreenPowerSetSignal D-Bus signals from powerd and pass
the requests on to OutputConfigurator.  This is now handled
by DisplayPowerServiceProvider, which serves as an endpoint
for SetDisplayPower method calls.

It also removes the timestamp argument from
HandleUserActivity method calls to powerd.  powerd no longer
uses (or reads, for that matter) the argument.

BUG=chromium:221391
TBR=ben@chromium.org

Review URL: https://codereview.chromium.org/12992004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189809 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
derat@chromium.org
2013-03-22 15:02:43 +00:00
parent 76acfb471b
commit ead6b51e0e
10 changed files with 7 additions and 135 deletions

@ -59,7 +59,6 @@
#include "chrome/browser/chromeos/net/network_portal_detector.h"
#include "chrome/browser/chromeos/power/brightness_observer.h"
#include "chrome/browser/chromeos/power/idle_action_warning_observer.h"
#include "chrome/browser/chromeos/power/output_observer.h"
#include "chrome/browser/chromeos/power/power_button_observer.h"
#include "chrome/browser/chromeos/power/resume_observer.h"
#include "chrome/browser/chromeos/power/screen_dimming_observer.h"
@ -95,7 +94,6 @@
#include "chromeos/dbus/power_manager_client.h"
#include "chromeos/dbus/session_manager_client.h"
#include "chromeos/disks/disk_mount_manager.h"
#include "chromeos/display/output_configurator.h"
#include "chromeos/network/geolocation_handler.h"
#include "chromeos/network/network_change_notifier_chromeos.h"
#include "chromeos/network/network_change_notifier_factory_chromeos.h"
@ -613,7 +611,6 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() {
// Initialize the brightness observer so that we'll display an onscreen
// indication of brightness changes during login.
brightness_observer_.reset(new BrightnessObserver());
output_observer_.reset(new OutputObserver());
resume_observer_.reset(new ResumeObserver());
screen_lock_observer_.reset(new ScreenLockObserver());
if (CommandLine::ForCurrentProcess()->HasSwitch(
@ -726,7 +723,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
suspend_observer_.reset();
resume_observer_.reset();
brightness_observer_.reset();
output_observer_.reset();
retail_mode_power_save_blocker_.reset();
// The XInput2 event listener needs to be shut down earlier than when

@ -25,7 +25,6 @@ class BrightnessObserver;
class DisplayConfigurationObserver;
class IdleActionWarningObserver;
class MagnificationManager;
class OutputObserver;
class PowerButtonObserver;
class ResumeObserver;
class ScreenDimmingObserver;
@ -80,7 +79,6 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
scoped_ptr<BrightnessObserver> brightness_observer_;
scoped_ptr<DisplayConfigurationObserver> display_configuration_observer_;
scoped_ptr<default_app_order::ExternalLoader> app_order_loader_;
scoped_ptr<OutputObserver> output_observer_;
scoped_ptr<SuspendObserver> suspend_observer_;
scoped_ptr<ResumeObserver> resume_observer_;
scoped_ptr<ScreenLockObserver> screen_lock_observer_;

@ -1,43 +0,0 @@
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/power/output_observer.h"
#include "ash/shell.h"
#include "ash/wm/user_activity_detector.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/display/output_configurator.h"
namespace chromeos {
OutputObserver::OutputObserver() {
DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
}
OutputObserver::~OutputObserver() {
DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this);
}
void OutputObserver::ScreenPowerSet(bool power_on, bool all_displays) {
// Turning displays off when the device becomes idle or on just before we
// suspend may trigger a mouse move, which would then be incorrectly
// reported as user activity. Let the UserActivityDetector know so that
// it can ignore such events.
ash::Shell::GetInstance()->user_activity_detector()->OnDisplayPowerChanging();
DisplayPowerState state = DISPLAY_POWER_ALL_ON;
if (power_on && all_displays)
state = DISPLAY_POWER_ALL_ON;
else if (power_on && !all_displays)
state = DISPLAY_POWER_INTERNAL_ON_EXTERNAL_OFF;
else if (!power_on && all_displays)
state = DISPLAY_POWER_ALL_OFF;
else if (!power_on && !all_displays)
state = DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON;
ash::Shell::GetInstance()->output_configurator()->SetDisplayPower(
state, false);
}
} // namespace chromeos

@ -1,33 +0,0 @@
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POWER_OUTPUT_OBSERVER_H_
#define CHROME_BROWSER_CHROMEOS_POWER_OUTPUT_OBSERVER_H_
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "chromeos/dbus/power_manager_client.h"
namespace chromeos {
// This observer listens for when video outputs have been turned off so that the
// corresponding CRTCs can be disabled to force the connected output off.
// TODO(derat): Remove this class after powerd is calling the method
// exported by DisplayPowerServiceProvider instead.
class OutputObserver : public PowerManagerClient::Observer {
public:
// This class registers/unregisters itself as an observer in ctor/dtor.
OutputObserver();
virtual ~OutputObserver();
private:
// PowerManagerClient::Observer implementation.
virtual void ScreenPowerSet(bool power_on, bool all_displays) OVERRIDE;
DISALLOW_COPY_AND_ASSIGN(OutputObserver);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_POWER_OUTPUT_OBSERVER_H_

@ -32,7 +32,7 @@ void UserActivityNotifier::OnUserActivity() {
// comparison.
if (last_notify_time_.is_null() ||
(now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) {
DBusThreadManager::Get()->GetPowerManagerClient()->NotifyUserActivity(now);
DBusThreadManager::Get()->GetPowerManagerClient()->NotifyUserActivity();
last_notify_time_ = now;
}
}

@ -611,8 +611,6 @@
'browser/chromeos/power/idle_action_warning_dialog_view.h',
'browser/chromeos/power/idle_action_warning_observer.cc',
'browser/chromeos/power/idle_action_warning_observer.h',
'browser/chromeos/power/output_observer.cc',
'browser/chromeos/power/output_observer.h',
'browser/chromeos/power/power_button_observer.cc',
'browser/chromeos/power/power_button_observer.h',
'browser/chromeos/power/resume_observer.cc',

@ -125,7 +125,7 @@ MockDBusThreadManager::MockDBusThreadManager()
.Times(AnyNumber());
EXPECT_CALL(*mock_power_manager_client_.get(), RemoveObserver(_))
.Times(AnyNumber());
EXPECT_CALL(*mock_power_manager_client_.get(), NotifyUserActivity(_))
EXPECT_CALL(*mock_power_manager_client_.get(), NotifyUserActivity())
.Times(AnyNumber());
EXPECT_CALL(*mock_power_manager_client_.get(), NotifyVideoActivity(_, _))
.Times(AnyNumber());

@ -32,7 +32,7 @@ class MockPowerManagerClient : public PowerManagerClient {
MOCK_METHOD0(RequestShutdown, void(void));
MOCK_METHOD1(RequestIdleNotification, void(int64));
MOCK_METHOD0(RequestActiveNotification, void(void));
MOCK_METHOD1(NotifyUserActivity, void(const base::TimeTicks&));
MOCK_METHOD0(NotifyUserActivity, void(void));
MOCK_METHOD2(NotifyVideoActivity, void(const base::TimeTicks&, bool));
MOCK_METHOD1(SetPolicy, void(const power_manager::PowerManagementPolicy&));
MOCK_METHOD1(SetIsProjecting, void(bool));

@ -68,15 +68,6 @@ class PowerManagerClientImpl : public PowerManagerClient {
base::Bind(&PowerManagerClientImpl::SignalConnected,
weak_ptr_factory_.GetWeakPtr()));
// TODO(derat): Stop listening for this.
power_manager_proxy_->ConnectToSignal(
power_manager::kPowerManagerInterface,
power_manager::kSetScreenPowerSignal,
base::Bind(&PowerManagerClientImpl::ScreenPowerSignalReceived,
weak_ptr_factory_.GetWeakPtr()),
base::Bind(&PowerManagerClientImpl::SignalConnected,
weak_ptr_factory_.GetWeakPtr()));
power_manager_proxy_->ConnectToSignal(
power_manager::kPowerManagerInterface,
power_manager::kPowerSupplyPollSignal,
@ -255,17 +246,8 @@ class PowerManagerClientImpl : public PowerManagerClient {
dbus::ObjectProxy::EmptyResponseCallback());
}
virtual void NotifyUserActivity(
const base::TimeTicks& last_activity_time) OVERRIDE {
dbus::MethodCall method_call(
power_manager::kPowerManagerInterface,
power_manager::kHandleUserActivityMethod);
dbus::MessageWriter writer(&method_call);
writer.AppendInt64(last_activity_time.ToInternalValue());
power_manager_proxy_->CallMethod(
&method_call,
dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
dbus::ObjectProxy::EmptyResponseCallback());
virtual void NotifyUserActivity() OVERRIDE {
SimpleMethodCallToPowerManager(power_manager::kHandleUserActivityMethod);
}
virtual void NotifyVideoActivity(
@ -373,22 +355,6 @@ class PowerManagerClientImpl : public PowerManagerClient {
BrightnessChanged(brightness_level, user_initiated));
}
void ScreenPowerSignalReceived(dbus::Signal* signal) {
dbus::MessageReader reader(signal);
bool dbus_power_on = false;
bool dbus_all_displays = false;
if (reader.PopBool(&dbus_power_on) &&
reader.PopBool(&dbus_all_displays)) {
VLOG(1) << "Screen power set to " << dbus_power_on
<< " for all displays " << dbus_all_displays;
FOR_EACH_OBSERVER(Observer, observers_,
ScreenPowerSet(dbus_power_on, dbus_all_displays));
} else {
LOG(ERROR) << "screen power signal had incorrect parameters: "
<< signal->ToString();
}
}
void PowerSupplyPollReceived(dbus::Signal* unused_signal) {
VLOG(1) << "Received power supply poll signal.";
RequestStatusUpdate(UPDATE_POLL);
@ -786,8 +752,7 @@ class PowerManagerClientStubImpl : public PowerManagerClient {
base::TimeDelta::FromMilliseconds(threshold));
}
virtual void NotifyUserActivity(
const base::TimeTicks& last_activity_time) OVERRIDE {}
virtual void NotifyUserActivity() OVERRIDE {}
virtual void NotifyVideoActivity(
const base::TimeTicks& last_activity_time,
bool is_fullscreen) OVERRIDE {}

@ -52,14 +52,6 @@ class CHROMEOS_EXPORT PowerManagerClient {
// |user_initiated| is true if the action is initiated by the user.
virtual void BrightnessChanged(int level, bool user_initiated) {}
// Called when a screen is turned on or off to request that Chrome enable or
// disable the corresponding CRTC for the output.
// |power_on| The new state of the power setting.
// |all_displays| True if this applies to all displays or false if it is
// the internal display only.
// TODO(derat): Remove this.
virtual void ScreenPowerSet(bool power_on, bool all_displays) {}
// Called when power supply polling takes place. |status| is a data
// structure that contains the current state of the power supply.
virtual void PowerChanged(const PowerSupplyStatus& status) {}
@ -152,8 +144,7 @@ class CHROMEOS_EXPORT PowerManagerClient {
// Notifies the power manager that the user is active (i.e. generating input
// events).
virtual void NotifyUserActivity(
const base::TimeTicks& last_activity_time) = 0;
virtual void NotifyUserActivity() = 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.