Commit e37a06d4 authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert BatteryMonitor to new Mojo types

This CL converts BatteryMonitor{Ptr, Request} in chrome, chromeos,
content, services and blink to the new Mojo type.

Bug: 955171, 978694
Change-Id: I0b7ae1d0158125d0a55a73a057c55b99a5fb1cd0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1787797
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarTao Wu <wutao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695624}
parent 589fb792
......@@ -11,7 +11,6 @@
#include "base/metrics/histogram_macros.h"
#include "build/build_config.h"
#include "content/public/browser/system_connector.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/device/public/mojom/constants.mojom.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/cpp/service_filter.h"
......@@ -36,9 +35,9 @@ void BatteryMetrics::StartRecording() {
// Don't create a long lived BatteryMonitor on windows. crbug.com/794105.
#if !defined(OS_WIN)
content::GetSystemConnector()->BindInterface(
content::GetSystemConnector()->Connect(
service_manager::ServiceFilter::ByName(device::mojom::kServiceName),
mojo::MakeRequest(&battery_monitor_));
battery_monitor_.BindNewPipeAndPassReceiver());
QueryNextStatus();
#endif // !defined(OS_WIN)
}
......
......@@ -9,6 +9,7 @@
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
#include "base/sequence_checker.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
#include "services/device/public/mojom/battery_status.mojom.h"
......@@ -38,7 +39,7 @@ class BatteryMetrics {
base::Optional<float> last_recorded_battery_level_;
// The battery monitor backend for the device Chrome is running on.
device::mojom::BatteryMonitorPtr battery_monitor_;
mojo::Remote<device::mojom::BatteryMonitor> battery_monitor_;
SEQUENCE_CHECKER(sequence_checker_);
......
......@@ -15,8 +15,8 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "content/public/common/service_manager_connection.h"
#include "content/public/test/browser_test_utils.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
#include "services/device/public/mojom/battery_status.mojom.h"
#include "services/device/public/mojom/constants.mojom.h"
......
......@@ -127,7 +127,7 @@ ash::mojom::AssistantTimerState GetTimerState(
AssistantManagerServiceImpl::AssistantManagerServiceImpl(
mojom::Client* client,
device::mojom::BatteryMonitorPtr battery_monitor,
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor,
Service* service,
std::unique_ptr<network::SharedURLLoaderFactoryInfo>
url_loader_factory_info)
......
......@@ -26,6 +26,7 @@
#include "libassistant/shared/public/device_state_listener.h"
#include "libassistant/shared/public/media_manager.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote_set.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
......@@ -91,7 +92,7 @@ class AssistantManagerServiceImpl
// |service| owns this class and must outlive this class.
AssistantManagerServiceImpl(
mojom::Client* client,
device::mojom::BatteryMonitorPtr battery_monitor,
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor,
Service* service,
std::unique_ptr<network::SharedURLLoaderFactoryInfo>
url_loader_factory_info);
......
......@@ -18,7 +18,7 @@ namespace assistant {
SystemProviderImpl::SystemProviderImpl(
std::unique_ptr<PowerManagerProviderImpl> power_manager_provider,
device::mojom::BatteryMonitorPtr battery_monitor)
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor)
: power_manager_provider_(std::move(power_manager_provider)),
battery_monitor_(std::move(battery_monitor)) {
battery_monitor_->QueryNextStatus(base::BindOnce(
......
......@@ -11,6 +11,8 @@
#include "base/component_export.h"
#include "base/macros.h"
#include "libassistant/shared/public/platform_system.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
#include "services/device/public/mojom/battery_status.mojom.h"
......@@ -26,7 +28,7 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) SystemProviderImpl
// platform power manager provider is available.
SystemProviderImpl(
std::unique_ptr<PowerManagerProviderImpl> power_manager_provider,
device::mojom::BatteryMonitorPtr battery_monitor);
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor);
~SystemProviderImpl() override;
// assistant_client::SystemProvider implementation:
......@@ -45,7 +47,7 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) SystemProviderImpl
std::unique_ptr<PowerManagerProviderImpl> power_manager_provider_;
device::mojom::BatteryMonitorPtr battery_monitor_;
mojo::Remote<device::mojom::BatteryMonitor> battery_monitor_;
device::mojom::BatteryStatusPtr current_battery_status_;
DISALLOW_COPY_AND_ASSIGN(SystemProviderImpl);
......
......@@ -11,7 +11,7 @@
#include "base/test/task_environment.h"
#include "chromeos/services/assistant/fake_client.h"
#include "chromeos/services/assistant/platform/power_manager_provider_impl.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -20,12 +20,10 @@ namespace assistant {
class FakeBatteryMonitor : device::mojom::BatteryMonitor {
public:
FakeBatteryMonitor() : binding_(this) {}
FakeBatteryMonitor() = default;
device::mojom::BatteryMonitorPtr CreateInterfacePtrAndBind() {
device::mojom::BatteryMonitorPtr ptr;
binding_.Bind(mojo::MakeRequest(&ptr));
return ptr;
mojo::PendingRemote<device::mojom::BatteryMonitor> CreateRemoteAndBind() {
return receiver_.BindNewPipeAndPassRemote();
}
void QueryNextStatus(QueryNextStatusCallback callback) override {
......@@ -53,7 +51,7 @@ class FakeBatteryMonitor : device::mojom::BatteryMonitor {
device::mojom::BatteryStatusPtr battery_status_;
QueryNextStatusCallback callback_;
mojo::Binding<device::mojom::BatteryMonitor> binding_;
mojo::Receiver<device::mojom::BatteryMonitor> receiver_;
DISALLOW_COPY_AND_ASSIGN(FakeBatteryMonitor);
};
......@@ -69,7 +67,7 @@ class SystemProviderImplTest : public testing::Test {
system_provider_impl_ = std::make_unique<SystemProviderImpl>(
std::make_unique<PowerManagerProviderImpl>(
&fake_client_, task_environment_.GetMainThreadTaskRunner()),
battery_monitor_.CreateInterfacePtrAndBind());
battery_monitor_.CreateRemoteAndBind());
FlushForTesting();
}
......
......@@ -79,7 +79,7 @@ void PlatformApiImpl::DummyAuthProvider::Reset() {}
PlatformApiImpl::PlatformApiImpl(
mojom::Client* client,
AssistantMediaSession* media_session,
device::mojom::BatteryMonitorPtr battery_monitor,
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor,
scoped_refptr<base::SequencedTaskRunner> main_thread_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> background_task_runner,
std::string pref_locale)
......
......@@ -19,6 +19,7 @@
#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
#include "libassistant/shared/public/platform_api.h"
#include "libassistant/shared/public/platform_auth.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
namespace chromeos {
......@@ -33,7 +34,7 @@ class PlatformApiImpl : public assistant_client::PlatformApi,
PlatformApiImpl(
mojom::Client* client,
AssistantMediaSession* media_session,
device::mojom::BatteryMonitorPtr battery_monitor,
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor,
scoped_refptr<base::SequencedTaskRunner> main_thread_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> background_task_runner,
std::string pref_locale);
......
......@@ -387,8 +387,9 @@ void Service::CreateAssistantManagerService() {
DCHECK(client_);
device::mojom::BatteryMonitorPtr battery_monitor;
client_->RequestBatteryMonitor(mojo::MakeRequest(&battery_monitor));
mojo::PendingRemote<device::mojom::BatteryMonitor> battery_monitor;
client_->RequestBatteryMonitor(
battery_monitor.InitWithNewPipeAndPassReceiver());
// |assistant_manager_service_| is only created once.
DCHECK(url_loader_factory_info_);
......
......@@ -13,6 +13,7 @@
#include "content/public/test/test_navigation_observer.h"
#include "content/public/test/test_utils.h"
#include "content/shell/browser/shell.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
#include "services/device/public/mojom/battery_status.mojom.h"
......
......@@ -9,16 +9,16 @@
#include "base/bind.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
namespace device {
// static
void BatteryMonitorImpl::Create(mojom::BatteryMonitorRequest request) {
void BatteryMonitorImpl::Create(
mojo::PendingReceiver<mojom::BatteryMonitor> receiver) {
auto* impl = new BatteryMonitorImpl;
auto binding =
mojo::MakeStrongBinding(base::WrapUnique(impl), std::move(request));
impl->binding_ = binding;
impl->receiver_ =
mojo::MakeSelfOwnedReceiver(base::WrapUnique(impl), std::move(receiver));
}
BatteryMonitorImpl::BatteryMonitorImpl() : status_to_report_(false) {
......@@ -33,7 +33,7 @@ BatteryMonitorImpl::~BatteryMonitorImpl() {}
void BatteryMonitorImpl::QueryNextStatus(QueryNextStatusCallback callback) {
if (!callback_.is_null()) {
DVLOG(1) << "Overlapped call to QueryNextStatus!";
binding_->Close();
receiver_->Close();
return;
}
callback_ = std::move(callback);
......
......@@ -8,7 +8,8 @@
#include <memory>
#include "base/macros.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "services/device/battery/battery_status_service.h"
#include "services/device/public/mojom/battery_monitor.mojom.h"
......@@ -16,7 +17,7 @@ namespace device {
class BatteryMonitorImpl : public mojom::BatteryMonitor {
public:
static void Create(mojom::BatteryMonitorRequest request);
static void Create(mojo::PendingReceiver<mojom::BatteryMonitor> receiver);
BatteryMonitorImpl();
~BatteryMonitorImpl() override;
......@@ -29,7 +30,7 @@ class BatteryMonitorImpl : public mojom::BatteryMonitor {
void DidChange(const mojom::BatteryStatus& battery_status);
void ReportStatus();
mojo::StrongBindingPtr<mojom::BatteryMonitor> binding_;
mojo::SelfOwnedReceiverRef<mojom::BatteryMonitor> receiver_;
std::unique_ptr<BatteryStatusService::BatteryUpdateSubscription>
subscription_;
QueryNextStatusCallback callback_;
......
......@@ -10,6 +10,7 @@
#include "base/macros.h"
#include "base/run_loop.h"
#include "base/threading/thread_task_runner_handle.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/battery/battery_status_manager.h"
#include "services/device/battery/battery_status_service.h"
#include "services/device/device_service_test_base.h"
......@@ -96,7 +97,8 @@ class BatteryMonitorImplTest : public DeviceServiceTestBase {
battery_manager_ = battery_manager.get();
battery_service->SetBatteryManagerForTesting(std::move(battery_manager));
connector()->BindInterface(mojom::kServiceName, &battery_monitor_);
connector()->Connect(mojom::kServiceName,
battery_monitor_.BindNewPipeAndPassReceiver());
}
void TearDown() override {
......@@ -110,7 +112,7 @@ class BatteryMonitorImplTest : public DeviceServiceTestBase {
FakeBatteryStatusManager* battery_manager() { return battery_manager_; }
mojom::BatteryMonitorPtr battery_monitor_;
mojo::Remote<mojom::BatteryMonitor> battery_monitor_;
private:
FakeBatteryStatusManager* battery_manager_;
......
......@@ -180,7 +180,7 @@ void DeviceService::OnStart() {
->CreateInterfaceFactory<mojom::VibrationManager>());
#else
registry_.AddInterface<mojom::BatteryMonitor>(base::Bind(
&DeviceService::BindBatteryMonitorRequest, base::Unretained(this)));
&DeviceService::BindBatteryMonitorReceiver, base::Unretained(this)));
registry_.AddInterface<mojom::HidManager>(base::Bind(
&DeviceService::BindHidManagerRequest, base::Unretained(this)));
registry_.AddInterface<mojom::NFCProvider>(base::Bind(
......@@ -230,9 +230,9 @@ void DeviceService::OnBindInterface(
}
#if !defined(OS_ANDROID)
void DeviceService::BindBatteryMonitorRequest(
mojom::BatteryMonitorRequest request) {
BatteryMonitorImpl::Create(std::move(request));
void DeviceService::BindBatteryMonitorReceiver(
mojo::PendingReceiver<mojom::BatteryMonitor> receiver) {
BatteryMonitorImpl::Create(std::move(receiver));
}
void DeviceService::BindHidManagerRequest(mojom::HidManagerRequest request) {
......
......@@ -149,7 +149,8 @@ class DeviceService : public service_manager::Service {
#endif
#if !defined(OS_ANDROID)
void BindBatteryMonitorRequest(mojom::BatteryMonitorRequest request);
void BindBatteryMonitorReceiver(
mojo::PendingReceiver<mojom::BatteryMonitor> receiver);
void BindHidManagerRequest(mojom::HidManagerRequest request);
void BindNFCProviderReceiver(
mojo::PendingReceiver<mojom::NFCProvider> receiver);
......
......@@ -47,8 +47,9 @@ void BatteryDispatcher::UpdateBatteryStatus(
void BatteryDispatcher::StartListening(LocalFrame* frame) {
DCHECK(!monitor_.is_bound());
// See https://bit.ly/2S0zRAS for task types.
Platform::Current()->GetInterfaceProvider()->GetInterface(mojo::MakeRequest(
&monitor_, frame->GetTaskRunner(TaskType::kMiscPlatformAPI)));
Platform::Current()->GetInterfaceProvider()->GetInterface(
monitor_.BindNewPipeAndPassReceiver(
frame->GetTaskRunner(TaskType::kMiscPlatformAPI)));
QueryNextStatus();
}
......
......@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_MODULES_BATTERY_BATTERY_DISPATCHER_H_
#include "base/macros.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/battery_monitor.mojom-blink.h"
#include "third_party/blink/renderer/core/frame/platform_event_dispatcher.h"
#include "third_party/blink/renderer/modules/battery/battery_manager.h"
......@@ -37,7 +38,7 @@ class MODULES_EXPORT BatteryDispatcher final
void StartListening(LocalFrame* frame) override;
void StopListening() override;
device::mojom::blink::BatteryMonitorPtr monitor_;
mojo::Remote<device::mojom::blink::BatteryMonitor> monitor_;
BatteryStatus battery_status_;
bool has_latest_data_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment