Index: device/battery/battery_status_manager_linux.cc |
diff --git a/device/battery/battery_status_manager_linux.cc b/device/battery/battery_status_manager_linux.cc |
index 6a649f37ada0746c4e90a713d32b88848b7d124e..0fd085949b680e801f3831580cebe9443a009cc3 100644 |
--- a/device/battery/battery_status_manager_linux.cc |
+++ b/device/battery/battery_status_manager_linux.cc |
@@ -61,7 +61,7 @@ base::Version UPowerProperties::daemon_version() { |
class UPowerObject { |
public: |
- typedef dbus::PropertySet::PropertyChangedCallback PropertyChangedCallback; |
+ using PropertyChangedCallback = dbus::PropertySet::PropertyChangedCallback; |
UPowerObject(dbus::Bus* dbus, |
const PropertyChangedCallback property_changed_callback); |
@@ -225,7 +225,7 @@ uint32_t BatteryProperties::type(uint32_t default_value) { |
class BatteryObject { |
public: |
- typedef dbus::PropertySet::PropertyChangedCallback PropertyChangedCallback; |
+ using PropertyChangedCallback = dbus::PropertySet::PropertyChangedCallback; |
BatteryObject(dbus::Bus* dbus, |
const dbus::ObjectPath& device_path, |
@@ -334,8 +334,8 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread |
if (!system_bus_) |
InitDBus(); |
- upower_.reset(new UPowerObject(system_bus_.get(), |
- UPowerObject::PropertyChangedCallback())); |
+ upower_ = base::MakeUnique<UPowerObject>( |
+ system_bus_.get(), UPowerObject::PropertyChangedCallback()); |
upower_->proxy()->ConnectToSignal( |
kUPowerServiceName, kUPowerSignalDeviceAdded, |
base::Bind(&BatteryStatusNotificationThread::DeviceAdded, |
@@ -397,14 +397,14 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread |
[¤t, this](const dbus::ObjectPath& device_path) { |
if (current && current->proxy()->object_path() == device_path) |
return std::move(current); |
- else |
- return CreateBattery(device_path); |
+ return CreateBattery(device_path); |
}; |
- dbus::ObjectPath display_device_path = upower_->GetDisplayDevice(); |
+ dbus::ObjectPath display_device_path; |
+ if (!IsDaemonVersionBelow_0_99()) |
+ display_device_path = upower_->GetDisplayDevice(); |
if (display_device_path.IsValid()) { |
- std::unique_ptr<BatteryObject> battery = |
- UseCurrentOrCreateBattery(display_device_path); |
+ auto battery = UseCurrentOrCreateBattery(display_device_path); |
if (battery->IsValid()) |
battery_ = std::move(battery); |
} |
@@ -412,9 +412,7 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread |
if (!battery_) { |
int num_batteries = 0; |
for (const auto& device_path : upower_->EnumerateDevices()) { |
- std::unique_ptr<BatteryObject> battery = |
- UseCurrentOrCreateBattery(device_path); |
- |
+ auto battery = UseCurrentOrCreateBattery(device_path); |
if (!battery->IsValid()) |
continue; |
@@ -433,14 +431,14 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread |
UpdateNumberBatteriesHistogram(num_batteries); |
} |
- if (battery_) { |
- battery_->properties()->ConnectSignals(); |
- NotifyBatteryStatus(); |
- } else { |
+ if (!battery_) { |
callback_.Run(mojom::BatteryStatus()); |
return; |
} |
+ battery_->properties()->ConnectSignals(); |
+ NotifyBatteryStatus(); |
+ |
if (IsDaemonVersionBelow_0_99()) { |
// UPower Version 0.99 replaced the Changed signal with the |
// PropertyChanged signal. For older versions we need to listen |
@@ -476,11 +474,10 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread |
std::unique_ptr<BatteryObject> CreateBattery( |
const dbus::ObjectPath& device_path) { |
- std::unique_ptr<BatteryObject> battery(new BatteryObject( |
+ return base::MakeUnique<BatteryObject>( |
system_bus_.get(), device_path, |
base::Bind(&BatteryStatusNotificationThread::BatteryPropertyChanged, |
- base::Unretained(this)))); |
- return battery; |
+ base::Unretained(this))); |
} |
void DeviceAdded(dbus::Signal* signal /* unused */) { |
@@ -589,13 +586,14 @@ bool BatteryStatusManagerLinux::StartNotifierThreadIfNecessary() { |
return true; |
base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); |
- notifier_thread_.reset(new BatteryStatusNotificationThread(callback_)); |
- if (!notifier_thread_->StartWithOptions(thread_options)) { |
- notifier_thread_.reset(); |
+ auto notifier_thread = |
+ base::MakeUnique<BatteryStatusNotificationThread>(callback_); |
+ if (!notifier_thread->StartWithOptions(thread_options)) { |
LOG(ERROR) << "Could not start the " << kBatteryNotifierThreadName |
<< " thread"; |
return false; |
} |
+ notifier_thread_ = std::move(notifier_thread); |
return true; |
} |
@@ -608,20 +606,17 @@ std::unique_ptr<BatteryStatusManagerLinux> |
BatteryStatusManagerLinux::CreateForTesting( |
const BatteryStatusService::BatteryUpdateCallback& callback, |
dbus::Bus* bus) { |
- std::unique_ptr<BatteryStatusManagerLinux> manager( |
- new BatteryStatusManagerLinux(callback)); |
- if (manager->StartNotifierThreadIfNecessary()) |
- manager->notifier_thread_->SetDBusForTesting(bus); |
- else |
- manager.reset(); |
+ auto manager = base::MakeUnique<BatteryStatusManagerLinux>(callback); |
+ if (!manager->StartNotifierThreadIfNecessary()) |
+ return nullptr; |
+ manager->notifier_thread_->SetDBusForTesting(bus); |
return manager; |
} |
// static |
std::unique_ptr<BatteryStatusManager> BatteryStatusManager::Create( |
const BatteryStatusService::BatteryUpdateCallback& callback) { |
- return std::unique_ptr<BatteryStatusManager>( |
- new BatteryStatusManagerLinux(callback)); |
+ return base::MakeUnique<BatteryStatusManagerLinux>(callback); |
} |
} // namespace device |