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

Unified Diff: content/browser/battery_status/battery_monitor_integration_browsertest.cc

Issue 833983002: Stop using [Client=...] feature of Mojom for BatteryMonitor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixup per review feedback Created 5 years, 11 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
« no previous file with comments | « android_webview/java_library_common.mk ('k') | content/renderer/battery_status/battery_status_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/battery_status/battery_monitor_integration_browsertest.cc
diff --git a/content/browser/battery_status/battery_monitor_integration_browsertest.cc b/content/browser/battery_status/battery_monitor_integration_browsertest.cc
index 16a819c3c673c0f907b9c9df55dc2775453a6de0..7b60ff60a2a8092b52a839bcce10e5ef40bb0589 100644
--- a/content/browser/battery_status/battery_monitor_integration_browsertest.cc
+++ b/content/browser/battery_status/battery_monitor_integration_browsertest.cc
@@ -50,23 +50,38 @@ class FakeBatteryMonitor : public device::BatteryMonitor {
}
private:
+ typedef mojo::Callback<void(device::BatteryStatusPtr)> BatteryStatusCallback;
+
FakeBatteryMonitor(mojo::InterfaceRequest<BatteryMonitor> request)
- : subscription_(
- g_callback_list.Get().Add(base::Bind(&FakeBatteryMonitor::DidChange,
- base::Unretained(this)))),
- binding_(this, request.Pass()) {
- DidChange(g_battery_status);
+ : binding_(this, request.Pass()) {
}
~FakeBatteryMonitor() override {}
+ void QueryNextStatus(const BatteryStatusCallback& callback) override {
+ // We don't expect overlapped calls to QueryNextStatus.
+ DCHECK(callback_.is_null());
+
+ callback_ = callback;
+
+ if (!subscription_) {
+ subscription_ =
+ g_callback_list.Get().Add(base::Bind(&FakeBatteryMonitor::DidChange,
+ base::Unretained(this)));
+ // Report initial value.
+ DidChange(g_battery_status);
+ }
+ }
+
void DidChange(const device::BatteryStatus& battery_status) {
- device::BatteryStatusPtr status(device::BatteryStatus::New());
- *status = battery_status;
- binding_.client()->DidChange(status.Pass());
+ if (!callback_.is_null()) {
+ callback_.Run(battery_status.Clone());
+ callback_.reset();
+ }
}
scoped_ptr<BatteryUpdateSubscription> subscription_;
mojo::StrongBinding<BatteryMonitor> binding_;
+ BatteryStatusCallback callback_;
};
// Overrides the default service implementation with the test implementation
« no previous file with comments | « android_webview/java_library_common.mk ('k') | content/renderer/battery_status/battery_status_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698