Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: services/device/power_monitor/power_monitor_message_broadcaster.cc

Issue 2729293002: Fix renderers not getting power broadcast messages (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/device/power_monitor/power_monitor_message_broadcaster.cc
diff --git a/services/device/power_monitor/power_monitor_message_broadcaster.cc b/services/device/power_monitor/power_monitor_message_broadcaster.cc
index 8361caea8122d384da03953bb10090004dc26eef..efc26420c8be9378ecfc18317895ca8894f2d2f9 100644
--- a/services/device/power_monitor/power_monitor_message_broadcaster.cc
+++ b/services/device/power_monitor/power_monitor_message_broadcaster.cc
@@ -23,37 +23,35 @@ PowerMonitorMessageBroadcaster::~PowerMonitorMessageBroadcaster() {
}
// static
-void PowerMonitorMessageBroadcaster::Create(
+void PowerMonitorMessageBroadcaster::Bind(
device::mojom::PowerMonitorRequest request) {
- mojo::MakeStrongBinding(base::MakeUnique<PowerMonitorMessageBroadcaster>(),
- std::move(request));
+ bindings_.AddBinding(this, std::move(request));
}
-void PowerMonitorMessageBroadcaster::SetClient(
+void PowerMonitorMessageBroadcaster::AddClient(
device::mojom::PowerMonitorClientPtr power_monitor_client) {
- power_monitor_client_ = std::move(power_monitor_client);
+ clients_.AddPtr(std::move(power_monitor_client));
base::PowerMonitor* power_monitor = base::PowerMonitor::Get();
// Unit tests does not initialize the PowerMonitor.
- if (power_monitor)
+ if (power_monitor) {
OnPowerStateChange(power_monitor->IsOnBatteryPower());
+ }
}
void PowerMonitorMessageBroadcaster::OnPowerStateChange(bool on_battery_power) {
- if (power_monitor_client_) {
- power_monitor_client_->PowerStateChange(on_battery_power);
- }
+ clients_.ForAllPtrs([&on_battery_power](mojom::PowerMonitorClient* client) {
+ client->PowerStateChange(on_battery_power);
+ });
}
void PowerMonitorMessageBroadcaster::OnSuspend() {
- if (power_monitor_client_) {
- power_monitor_client_->Suspend();
- }
+ clients_.ForAllPtrs(
+ [](mojom::PowerMonitorClient* client) { client->Suspend(); });
}
void PowerMonitorMessageBroadcaster::OnResume() {
- if (power_monitor_client_) {
- power_monitor_client_->Resume();
- }
+ clients_.ForAllPtrs(
+ [](mojom::PowerMonitorClient* client) { client->Resume(); });
}
} // namespace device

Powered by Google App Engine
This is Rietveld 408576698