Commit acc5363d authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert MultiDeviceSetup to new Mojo types

This CL converts MultiDeviceSetupPtr and
MultiDeviceSetupRequest to new Mojo types
using PendingRemote or Remote, PendingReceiver,
and ReceiverSet.

Bug: 955171
Change-Id: I3272aaf011e977fc5272988288df0e1930abac82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1824735
Commit-Queue: Julie Kim <jkim@igalia.com>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Reviewed-by: default avatarRyan Hansberry <hansberry@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701400}
parent 261c0fed
...@@ -195,7 +195,7 @@ void MultiDeviceNotificationPresenter::OnNotificationClicked( ...@@ -195,7 +195,7 @@ void MultiDeviceNotificationPresenter::OnNotificationClicked(
void MultiDeviceNotificationPresenter::ObserveMultiDeviceSetupIfPossible() { void MultiDeviceNotificationPresenter::ObserveMultiDeviceSetupIfPossible() {
// If already the delegate, there is nothing else to do. // If already the delegate, there is nothing else to do.
if (multidevice_setup_ptr_) if (multidevice_setup_remote_)
return; return;
const SessionControllerImpl* session_controller = const SessionControllerImpl* session_controller =
...@@ -220,14 +220,13 @@ void MultiDeviceNotificationPresenter::ObserveMultiDeviceSetupIfPossible() { ...@@ -220,14 +220,13 @@ void MultiDeviceNotificationPresenter::ObserveMultiDeviceSetupIfPossible() {
if (!service_instance_group) if (!service_instance_group)
return; return;
connector_->BindInterface( connector_->Connect(service_manager::ServiceFilter::ByNameInGroup(
service_manager::ServiceFilter::ByNameInGroup( chromeos::multidevice_setup::mojom::kServiceName,
chromeos::multidevice_setup::mojom::kServiceName, *service_instance_group),
*service_instance_group), multidevice_setup_remote_.BindNewPipeAndPassReceiver());
&multidevice_setup_ptr_);
// Add this object as the delegate of the MultiDeviceSetup Service. // Add this object as the delegate of the MultiDeviceSetup Service.
multidevice_setup_ptr_->SetAccountStatusChangeDelegate( multidevice_setup_remote_->SetAccountStatusChangeDelegate(
receiver_.BindNewPipeAndPassRemote()); receiver_.BindNewPipeAndPassRemote());
message_center_->AddObserver(this); message_center_->AddObserver(this);
...@@ -268,8 +267,8 @@ MultiDeviceNotificationPresenter::CreateNotification( ...@@ -268,8 +267,8 @@ MultiDeviceNotificationPresenter::CreateNotification(
} }
void MultiDeviceNotificationPresenter::FlushForTesting() { void MultiDeviceNotificationPresenter::FlushForTesting() {
if (multidevice_setup_ptr_) if (multidevice_setup_remote_)
multidevice_setup_ptr_.FlushForTesting(); multidevice_setup_remote_.FlushForTesting();
} }
} // namespace ash } // namespace ash
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "ui/message_center/message_center_observer.h" #include "ui/message_center/message_center_observer.h"
namespace message_center { namespace message_center {
...@@ -126,8 +127,8 @@ class ASH_EXPORT MultiDeviceNotificationPresenter ...@@ -126,8 +127,8 @@ class ASH_EXPORT MultiDeviceNotificationPresenter
// Status::kNoNotificationVisible if there isn't one. // Status::kNoNotificationVisible if there isn't one.
Status notification_status_ = Status::kNoNotificationVisible; Status notification_status_ = Status::kNoNotificationVisible;
chromeos::multidevice_setup::mojom::MultiDeviceSetupPtr mojo::Remote<chromeos::multidevice_setup::mojom::MultiDeviceSetup>
multidevice_setup_ptr_; multidevice_setup_remote_;
mojo::Receiver< mojo::Receiver<
chromeos::multidevice_setup::mojom::AccountStatusChangeDelegate> chromeos::multidevice_setup::mojom::AccountStatusChangeDelegate>
receiver_{this}; receiver_{this};
......
...@@ -490,9 +490,10 @@ service_manager::Connector* OobeUI::GetLoggedInUserMojoConnector() { ...@@ -490,9 +490,10 @@ service_manager::Connector* OobeUI::GetLoggedInUserMojoConnector() {
} }
void OobeUI::BindMultiDeviceSetup( void OobeUI::BindMultiDeviceSetup(
multidevice_setup::mojom::MultiDeviceSetupRequest request) { mojo::PendingReceiver<multidevice_setup::mojom::MultiDeviceSetup>
GetLoggedInUserMojoConnector()->BindInterface( receiver) {
multidevice_setup::mojom::kServiceName, std::move(request)); GetLoggedInUserMojoConnector()->Connect(
multidevice_setup::mojom::kServiceName, std::move(receiver));
} }
void OobeUI::BindPrivilegedHostDeviceSetter( void OobeUI::BindPrivilegedHostDeviceSetter(
......
...@@ -157,10 +157,11 @@ class OobeUI : public ui::MojoWebUIController { ...@@ -157,10 +157,11 @@ class OobeUI : public ui::MojoWebUIController {
// display type. // display type.
void ConfigureOobeDisplay(); void ConfigureOobeDisplay();
// Adds Mojo bindings for this WebUIController. // Adds Mojo receivers for this WebUIController.
service_manager::Connector* GetLoggedInUserMojoConnector(); service_manager::Connector* GetLoggedInUserMojoConnector();
void BindMultiDeviceSetup( void BindMultiDeviceSetup(
multidevice_setup::mojom::MultiDeviceSetupRequest request); mojo::PendingReceiver<multidevice_setup::mojom::MultiDeviceSetup>
receiver);
void BindPrivilegedHostDeviceSetter( void BindPrivilegedHostDeviceSetter(
multidevice_setup::mojom::PrivilegedHostDeviceSetterRequest request); multidevice_setup::mojom::PrivilegedHostDeviceSetterRequest request);
void BindCrosNetworkConfig( void BindCrosNetworkConfig(
......
...@@ -121,14 +121,15 @@ MultiDeviceSetupDialogUI::MultiDeviceSetupDialogUI(content::WebUI* web_ui) ...@@ -121,14 +121,15 @@ MultiDeviceSetupDialogUI::MultiDeviceSetupDialogUI(content::WebUI* web_ui)
MultiDeviceSetupDialogUI::~MultiDeviceSetupDialogUI() = default; MultiDeviceSetupDialogUI::~MultiDeviceSetupDialogUI() = default;
void MultiDeviceSetupDialogUI::BindMultiDeviceSetup( void MultiDeviceSetupDialogUI::BindMultiDeviceSetup(
chromeos::multidevice_setup::mojom::MultiDeviceSetupRequest request) { mojo::PendingReceiver<chromeos::multidevice_setup::mojom::MultiDeviceSetup>
receiver) {
service_manager::Connector* connector = service_manager::Connector* connector =
content::BrowserContext::GetConnectorFor( content::BrowserContext::GetConnectorFor(
web_ui()->GetWebContents()->GetBrowserContext()); web_ui()->GetWebContents()->GetBrowserContext());
DCHECK(connector); DCHECK(connector);
connector->BindInterface(chromeos::multidevice_setup::mojom::kServiceName, connector->Connect(chromeos::multidevice_setup::mojom::kServiceName,
std::move(request)); std::move(receiver));
} }
} // namespace multidevice_setup } // namespace multidevice_setup
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h" #include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/web_dialogs/web_dialog_ui.h" #include "ui/web_dialogs/web_dialog_ui.h"
namespace chromeos { namespace chromeos {
...@@ -61,7 +62,8 @@ class MultiDeviceSetupDialogUI : public ui::MojoWebDialogUI { ...@@ -61,7 +62,8 @@ class MultiDeviceSetupDialogUI : public ui::MojoWebDialogUI {
private: private:
void BindMultiDeviceSetup( void BindMultiDeviceSetup(
chromeos::multidevice_setup::mojom::MultiDeviceSetupRequest request); mojo::PendingReceiver<
chromeos::multidevice_setup::mojom::MultiDeviceSetup> receiver);
DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupDialogUI); DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupDialogUI);
}; };
......
...@@ -56,14 +56,15 @@ ProximityAuthUI::ProximityAuthUI( ...@@ -56,14 +56,15 @@ ProximityAuthUI::ProximityAuthUI(
ProximityAuthUI::~ProximityAuthUI() = default; ProximityAuthUI::~ProximityAuthUI() = default;
void ProximityAuthUI::BindMultiDeviceSetup( void ProximityAuthUI::BindMultiDeviceSetup(
chromeos::multidevice_setup::mojom::MultiDeviceSetupRequest request) { mojo::PendingReceiver<chromeos::multidevice_setup::mojom::MultiDeviceSetup>
receiver) {
service_manager::Connector* connector = service_manager::Connector* connector =
content::BrowserContext::GetConnectorFor( content::BrowserContext::GetConnectorFor(
web_ui()->GetWebContents()->GetBrowserContext()); web_ui()->GetWebContents()->GetBrowserContext());
DCHECK(connector); DCHECK(connector);
connector->BindInterface(chromeos::multidevice_setup::mojom::kServiceName, connector->Connect(chromeos::multidevice_setup::mojom::kServiceName,
std::move(request)); std::move(receiver));
} }
} // namespace multidevice } // namespace multidevice
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "content/public/browser/web_ui_controller.h" #include "content/public/browser/web_ui_controller.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/webui/mojo_web_ui_controller.h" #include "ui/webui/mojo_web_ui_controller.h"
namespace chromeos { namespace chromeos {
...@@ -36,7 +37,8 @@ class ProximityAuthUI : public ui::MojoWebUIController { ...@@ -36,7 +37,8 @@ class ProximityAuthUI : public ui::MojoWebUIController {
protected: protected:
void BindMultiDeviceSetup( void BindMultiDeviceSetup(
multidevice_setup::mojom::MultiDeviceSetupRequest request); mojo::PendingReceiver<multidevice_setup::mojom::MultiDeviceSetup>
receiver);
private: private:
DISALLOW_COPY_AND_ASSIGN(ProximityAuthUI); DISALLOW_COPY_AND_ASSIGN(ProximityAuthUI);
......
...@@ -12,12 +12,13 @@ MultiDeviceSetupBase::MultiDeviceSetupBase() = default; ...@@ -12,12 +12,13 @@ MultiDeviceSetupBase::MultiDeviceSetupBase() = default;
MultiDeviceSetupBase::~MultiDeviceSetupBase() = default; MultiDeviceSetupBase::~MultiDeviceSetupBase() = default;
void MultiDeviceSetupBase::BindRequest(mojom::MultiDeviceSetupRequest request) { void MultiDeviceSetupBase::BindReceiver(
bindings_.AddBinding(this, std::move(request)); mojo::PendingReceiver<mojom::MultiDeviceSetup> receiver) {
receivers_.Add(this, std::move(receiver));
} }
void MultiDeviceSetupBase::CloseAllBindings() { void MultiDeviceSetupBase::CloseAllReceivers() {
bindings_.CloseAllBindings(); receivers_.Clear();
} }
} // namespace multidevice_setup } // namespace multidevice_setup
......
...@@ -6,19 +6,20 @@ ...@@ -6,19 +6,20 @@
#define CHROMEOS_SERVICES_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_BASE_H_ #define CHROMEOS_SERVICES_MULTIDEVICE_SETUP_MULTIDEVICE_SETUP_BASE_H_
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
namespace chromeos { namespace chromeos {
namespace multidevice_setup { namespace multidevice_setup {
// MultiDeviceSetup implementation which accepts requests to bind to it. // MultiDeviceSetup implementation which accepts receivers to bind to it.
class MultiDeviceSetupBase : public mojom::MultiDeviceSetup { class MultiDeviceSetupBase : public mojom::MultiDeviceSetup {
public: public:
~MultiDeviceSetupBase() override; ~MultiDeviceSetupBase() override;
void BindRequest(mojom::MultiDeviceSetupRequest request); void BindReceiver(mojo::PendingReceiver<mojom::MultiDeviceSetup> receiver);
void CloseAllBindings(); void CloseAllReceivers();
// Sets the device with the given ID as the multi-device host for this // Sets the device with the given ID as the multi-device host for this
// account. // account.
...@@ -30,7 +31,7 @@ class MultiDeviceSetupBase : public mojom::MultiDeviceSetup { ...@@ -30,7 +31,7 @@ class MultiDeviceSetupBase : public mojom::MultiDeviceSetup {
MultiDeviceSetupBase(); MultiDeviceSetupBase();
private: private:
mojo::BindingSet<mojom::MultiDeviceSetup> bindings_; mojo::ReceiverSet<mojom::MultiDeviceSetup> receivers_;
DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupBase); DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupBase);
}; };
......
...@@ -59,16 +59,16 @@ MultiDeviceSetupService::MultiDeviceSetupService( ...@@ -59,16 +59,16 @@ MultiDeviceSetupService::MultiDeviceSetupService(
MultiDeviceSetupService::~MultiDeviceSetupService() { MultiDeviceSetupService::~MultiDeviceSetupService() {
// Subclasses may hold onto message response callbacks. It's important that // Subclasses may hold onto message response callbacks. It's important that
// all bindings are closed by the time those callbacks are destroyed, or they // all receivers are closed by the time those callbacks are destroyed, or they
// will DCHECK. // will DCHECK.
if (multidevice_setup_) if (multidevice_setup_)
multidevice_setup_->CloseAllBindings(); multidevice_setup_->CloseAllReceivers();
} }
void MultiDeviceSetupService::OnStart() { void MultiDeviceSetupService::OnStart() {
PA_LOG(VERBOSE) << "MultiDeviceSetupService::OnStart()"; PA_LOG(VERBOSE) << "MultiDeviceSetupService::OnStart()";
registry_.AddInterface( registry_.AddInterface(
base::BindRepeating(&MultiDeviceSetupBase::BindRequest, base::BindRepeating(&MultiDeviceSetupBase::BindReceiver,
base::Unretained(multidevice_setup_.get()))); base::Unretained(multidevice_setup_.get())));
registry_.AddInterface(base::BindRepeating( registry_.AddInterface(base::BindRepeating(
&PrivilegedHostDeviceSetterBase::BindRequest, &PrivilegedHostDeviceSetterBase::BindRequest,
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "chromeos/services/multidevice_setup/public/mojom/constants.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/constants.mojom.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "components/sync_preferences/testing_pref_service_syncable.h" #include "components/sync_preferences/testing_pref_service_syncable.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/service_manager/public/cpp/test/test_connector_factory.h" #include "services/service_manager/public/cpp/test/test_connector_factory.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -148,8 +149,9 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -148,8 +149,9 @@ class MultiDeviceSetupServiceTest : public testing::Test {
fake_gcm_device_info_provider_.get()); fake_gcm_device_info_provider_.get());
auto* connector = connector_factory_.GetDefaultConnector(); auto* connector = connector_factory_.GetDefaultConnector();
connector->BindInterface(mojom::kServiceName, &multidevice_setup_ptr_); connector->Connect(mojom::kServiceName,
multidevice_setup_ptr_.FlushForTesting(); multidevice_setup_remote_.BindNewPipeAndPassReceiver());
multidevice_setup_remote_.FlushForTesting();
connector->BindInterface(mojom::kServiceName, connector->BindInterface(mojom::kServiceName,
&privileged_host_device_setter_ptr_); &privileged_host_device_setter_ptr_);
...@@ -165,7 +167,7 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -165,7 +167,7 @@ class MultiDeviceSetupServiceTest : public testing::Test {
EXPECT_FALSE(last_debug_event_success_); EXPECT_FALSE(last_debug_event_success_);
base::RunLoop run_loop; base::RunLoop run_loop;
multidevice_setup_ptr_->TriggerEventForDebugging( multidevice_setup_remote_->TriggerEventForDebugging(
type, type,
base::BindOnce(&MultiDeviceSetupServiceTest::OnDebugEventTriggered, base::BindOnce(&MultiDeviceSetupServiceTest::OnDebugEventTriggered,
base::Unretained(this), run_loop.QuitClosure())); base::Unretained(this), run_loop.QuitClosure()));
...@@ -187,8 +189,8 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -187,8 +189,8 @@ class MultiDeviceSetupServiceTest : public testing::Test {
return fake_multidevice_setup_factory_->instance(); return fake_multidevice_setup_factory_->instance();
} }
mojom::MultiDeviceSetupPtr& multidevice_setup_ptr() { mojo::Remote<mojom::MultiDeviceSetup>& multidevice_setup_remote() {
return multidevice_setup_ptr_; return multidevice_setup_remote_;
} }
mojom::PrivilegedHostDeviceSetterPtr& privileged_host_device_setter_ptr() { mojom::PrivilegedHostDeviceSetterPtr& privileged_host_device_setter_ptr() {
...@@ -222,7 +224,7 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -222,7 +224,7 @@ class MultiDeviceSetupServiceTest : public testing::Test {
std::unique_ptr<MultiDeviceSetupService> service_; std::unique_ptr<MultiDeviceSetupService> service_;
base::Optional<bool> last_debug_event_success_; base::Optional<bool> last_debug_event_success_;
mojom::MultiDeviceSetupPtr multidevice_setup_ptr_; mojo::Remote<mojom::MultiDeviceSetup> multidevice_setup_remote_;
mojom::PrivilegedHostDeviceSetterPtr privileged_host_device_setter_ptr_; mojom::PrivilegedHostDeviceSetterPtr privileged_host_device_setter_ptr_;
DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupServiceTest); DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupServiceTest);
...@@ -242,44 +244,44 @@ TEST_F(MultiDeviceSetupServiceTest, CallFunctionsBeforeInitialization) { ...@@ -242,44 +244,44 @@ TEST_F(MultiDeviceSetupServiceTest, CallFunctionsBeforeInitialization) {
// SetAccountStatusChangeDelegate(). // SetAccountStatusChangeDelegate().
auto fake_account_status_change_delegate = auto fake_account_status_change_delegate =
std::make_unique<FakeAccountStatusChangeDelegate>(); std::make_unique<FakeAccountStatusChangeDelegate>();
multidevice_setup_ptr()->SetAccountStatusChangeDelegate( multidevice_setup_remote()->SetAccountStatusChangeDelegate(
fake_account_status_change_delegate->GenerateRemote()); fake_account_status_change_delegate->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// AddHostStatusObserver(). // AddHostStatusObserver().
auto fake_host_status_observer = std::make_unique<FakeHostStatusObserver>(); auto fake_host_status_observer = std::make_unique<FakeHostStatusObserver>();
multidevice_setup_ptr()->AddHostStatusObserver( multidevice_setup_remote()->AddHostStatusObserver(
fake_host_status_observer->GenerateRemote()); fake_host_status_observer->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// AddFeatureStateObserver(). // AddFeatureStateObserver().
auto fake_feature_state_observer = auto fake_feature_state_observer =
std::make_unique<FakeFeatureStateObserver>(); std::make_unique<FakeFeatureStateObserver>();
multidevice_setup_ptr()->AddFeatureStateObserver( multidevice_setup_remote()->AddFeatureStateObserver(
fake_feature_state_observer->GenerateRemote()); fake_feature_state_observer->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// GetEligibleHostDevices(). // GetEligibleHostDevices().
multidevice_setup_ptr()->GetEligibleHostDevices(base::DoNothing()); multidevice_setup_remote()->GetEligibleHostDevices(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// GetHostStatus(). // GetHostStatus().
multidevice_setup_ptr()->GetHostStatus(base::DoNothing()); multidevice_setup_remote()->GetHostStatus(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// SetFeatureEnabledState(). // SetFeatureEnabledState().
multidevice_setup_ptr()->SetFeatureEnabledState( multidevice_setup_remote()->SetFeatureEnabledState(
mojom::Feature::kBetterTogetherSuite, true /* enabled */, "authToken", mojom::Feature::kBetterTogetherSuite, true /* enabled */, "authToken",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// GetFeatureStates(). // GetFeatureStates().
multidevice_setup_ptr()->GetFeatureStates(base::DoNothing()); multidevice_setup_remote()->GetFeatureStates(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// RetrySetHostNow(). // RetrySetHostNow().
multidevice_setup_ptr()->RetrySetHostNow(base::DoNothing()); multidevice_setup_remote()->RetrySetHostNow(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
// None of these requests should have been processed yet, since initialization // None of these requests should have been processed yet, since initialization
// was not complete. // was not complete.
...@@ -298,16 +300,16 @@ TEST_F(MultiDeviceSetupServiceTest, CallFunctionsBeforeInitialization) { ...@@ -298,16 +300,16 @@ TEST_F(MultiDeviceSetupServiceTest, CallFunctionsBeforeInitialization) {
} }
TEST_F(MultiDeviceSetupServiceTest, SetThenRemoveBeforeInitialization) { TEST_F(MultiDeviceSetupServiceTest, SetThenRemoveBeforeInitialization) {
multidevice_setup_ptr()->SetHostDevice("deviceId1", "authToken", multidevice_setup_remote()->SetHostDevice("deviceId1", "authToken",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
privileged_host_device_setter_ptr()->SetHostDevice("deviceId2", privileged_host_device_setter_ptr()->SetHostDevice("deviceId2",
base::DoNothing()); base::DoNothing());
privileged_host_device_setter_ptr().FlushForTesting(); privileged_host_device_setter_ptr().FlushForTesting();
multidevice_setup_ptr()->RemoveHostDevice(); multidevice_setup_remote()->RemoveHostDevice();
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_FALSE(fake_multidevice_setup()); EXPECT_FALSE(fake_multidevice_setup());
...@@ -321,20 +323,20 @@ TEST_F(MultiDeviceSetupServiceTest, SetThenRemoveBeforeInitialization) { ...@@ -321,20 +323,20 @@ TEST_F(MultiDeviceSetupServiceTest, SetThenRemoveBeforeInitialization) {
} }
TEST_F(MultiDeviceSetupServiceTest, RemoveThenSetThenSetBeforeInitialization) { TEST_F(MultiDeviceSetupServiceTest, RemoveThenSetThenSetBeforeInitialization) {
multidevice_setup_ptr()->RemoveHostDevice(); multidevice_setup_remote()->RemoveHostDevice();
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
privileged_host_device_setter_ptr()->SetHostDevice("deviceId1", privileged_host_device_setter_ptr()->SetHostDevice("deviceId1",
base::DoNothing()); base::DoNothing());
privileged_host_device_setter_ptr().FlushForTesting(); privileged_host_device_setter_ptr().FlushForTesting();
multidevice_setup_ptr()->SetHostDevice("deviceId2", "authToken2", multidevice_setup_remote()->SetHostDevice("deviceId2", "authToken2",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
multidevice_setup_ptr()->SetHostDevice("deviceId3", "authToken3", multidevice_setup_remote()->SetHostDevice("deviceId3", "authToken3",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_FALSE(fake_multidevice_setup()); EXPECT_FALSE(fake_multidevice_setup());
...@@ -352,16 +354,16 @@ TEST_F(MultiDeviceSetupServiceTest, RemoveThenSetThenSetBeforeInitialization) { ...@@ -352,16 +354,16 @@ TEST_F(MultiDeviceSetupServiceTest, RemoveThenSetThenSetBeforeInitialization) {
TEST_F(MultiDeviceSetupServiceTest, TEST_F(MultiDeviceSetupServiceTest,
RemoveThenSetThenSetBeforeInitialization_NoAuthToken) { RemoveThenSetThenSetBeforeInitialization_NoAuthToken) {
multidevice_setup_ptr()->RemoveHostDevice(); multidevice_setup_remote()->RemoveHostDevice();
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
multidevice_setup_ptr()->SetHostDevice("deviceId1", "authToken1", multidevice_setup_remote()->SetHostDevice("deviceId1", "authToken1",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
multidevice_setup_ptr()->SetHostDevice("deviceId2", "authToken2", multidevice_setup_remote()->SetHostDevice("deviceId2", "authToken2",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
privileged_host_device_setter_ptr()->SetHostDevice("deviceId3", privileged_host_device_setter_ptr()->SetHostDevice("deviceId3",
base::DoNothing()); base::DoNothing());
...@@ -387,62 +389,62 @@ TEST_F(MultiDeviceSetupServiceTest, FinishInitializationFirst) { ...@@ -387,62 +389,62 @@ TEST_F(MultiDeviceSetupServiceTest, FinishInitializationFirst) {
// SetAccountStatusChangeDelegate(). // SetAccountStatusChangeDelegate().
auto fake_account_status_change_delegate = auto fake_account_status_change_delegate =
std::make_unique<FakeAccountStatusChangeDelegate>(); std::make_unique<FakeAccountStatusChangeDelegate>();
multidevice_setup_ptr()->SetAccountStatusChangeDelegate( multidevice_setup_remote()->SetAccountStatusChangeDelegate(
fake_account_status_change_delegate->GenerateRemote()); fake_account_status_change_delegate->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_TRUE(fake_multidevice_setup()->delegate()); EXPECT_TRUE(fake_multidevice_setup()->delegate());
// AddHostStatusObserver(). // AddHostStatusObserver().
auto fake_host_status_observer = std::make_unique<FakeHostStatusObserver>(); auto fake_host_status_observer = std::make_unique<FakeHostStatusObserver>();
multidevice_setup_ptr()->AddHostStatusObserver( multidevice_setup_remote()->AddHostStatusObserver(
fake_host_status_observer->GenerateRemote()); fake_host_status_observer->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_TRUE(fake_multidevice_setup()->HasAtLeastOneHostStatusObserver()); EXPECT_TRUE(fake_multidevice_setup()->HasAtLeastOneHostStatusObserver());
// AddFeatureStateObserver(). // AddFeatureStateObserver().
auto fake_feature_state_observer = auto fake_feature_state_observer =
std::make_unique<FakeFeatureStateObserver>(); std::make_unique<FakeFeatureStateObserver>();
multidevice_setup_ptr()->AddFeatureStateObserver( multidevice_setup_remote()->AddFeatureStateObserver(
fake_feature_state_observer->GenerateRemote()); fake_feature_state_observer->GenerateRemote());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_TRUE(fake_multidevice_setup()->HasAtLeastOneFeatureStateObserver()); EXPECT_TRUE(fake_multidevice_setup()->HasAtLeastOneFeatureStateObserver());
// GetEligibleHostDevices(). // GetEligibleHostDevices().
multidevice_setup_ptr()->GetEligibleHostDevices(base::DoNothing()); multidevice_setup_remote()->GetEligibleHostDevices(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->get_eligible_hosts_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->get_eligible_hosts_args().size());
// SetHostDevice(). // SetHostDevice().
multidevice_setup_ptr()->SetHostDevice("deviceId", "authToken", multidevice_setup_remote()->SetHostDevice("deviceId", "authToken",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->set_host_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->set_host_args().size());
// RemoveHostDevice(). // RemoveHostDevice().
multidevice_setup_ptr()->RemoveHostDevice(); multidevice_setup_remote()->RemoveHostDevice();
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->num_remove_host_calls()); EXPECT_EQ(1u, fake_multidevice_setup()->num_remove_host_calls());
// GetHostStatus(). // GetHostStatus().
multidevice_setup_ptr()->GetHostStatus(base::DoNothing()); multidevice_setup_remote()->GetHostStatus(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->get_host_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->get_host_args().size());
// SetFeatureEnabledState(). // SetFeatureEnabledState().
multidevice_setup_ptr()->SetFeatureEnabledState( multidevice_setup_remote()->SetFeatureEnabledState(
mojom::Feature::kBetterTogetherSuite, true /* enabled */, "authToken", mojom::Feature::kBetterTogetherSuite, true /* enabled */, "authToken",
base::DoNothing()); base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->set_feature_enabled_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->set_feature_enabled_args().size());
// GetFeatureStates(). // GetFeatureStates().
multidevice_setup_ptr()->GetFeatureStates(base::DoNothing()); multidevice_setup_remote()->GetFeatureStates(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->get_feature_states_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->get_feature_states_args().size());
// RetrySetHostNow(). // RetrySetHostNow().
multidevice_setup_ptr()->RetrySetHostNow(base::DoNothing()); multidevice_setup_remote()->RetrySetHostNow(base::DoNothing());
multidevice_setup_ptr().FlushForTesting(); multidevice_setup_remote().FlushForTesting();
EXPECT_EQ(1u, fake_multidevice_setup()->retry_set_host_now_args().size()); EXPECT_EQ(1u, fake_multidevice_setup()->retry_set_host_now_args().size());
// SetHostDevice(), without an auth token. // SetHostDevice(), without an auth token.
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "base/containers/flat_map.h" #include "base/containers/flat_map.h"
#include "chromeos/components/multidevice/remote_device.h" #include "chromeos/components/multidevice/remote_device.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chromeos { namespace chromeos {
...@@ -63,7 +64,8 @@ FakeMultiDeviceSetup::~FakeMultiDeviceSetup() { ...@@ -63,7 +64,8 @@ FakeMultiDeviceSetup::~FakeMultiDeviceSetup() {
} }
void FakeMultiDeviceSetup::BindHandle(mojo::ScopedMessagePipeHandle handle) { void FakeMultiDeviceSetup::BindHandle(mojo::ScopedMessagePipeHandle handle) {
BindRequest(mojom::MultiDeviceSetupRequest(std::move(handle))); BindReceiver(
mojo::PendingReceiver<mojom::MultiDeviceSetup>(std::move(handle)));
} }
void FakeMultiDeviceSetup::FlushForTesting() { void FakeMultiDeviceSetup::FlushForTesting() {
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "chromeos/services/multidevice_setup/multidevice_setup_base.h" #include "chromeos/services/multidevice_setup/multidevice_setup_base.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/remote_set.h" #include "mojo/public/cpp/bindings/remote_set.h"
...@@ -140,8 +139,6 @@ class FakeMultiDeviceSetup : public MultiDeviceSetupBase { ...@@ -140,8 +139,6 @@ class FakeMultiDeviceSetup : public MultiDeviceSetupBase {
mojom::PrivilegedHostDeviceSetter::SetHostDeviceCallback>> mojom::PrivilegedHostDeviceSetter::SetHostDeviceCallback>>
set_host_without_auth_args_; set_host_without_auth_args_;
mojo::BindingSet<mojom::MultiDeviceSetup> bindings_;
DISALLOW_COPY_AND_ASSIGN(FakeMultiDeviceSetup); DISALLOW_COPY_AND_ASSIGN(FakeMultiDeviceSetup);
}; };
......
...@@ -52,15 +52,16 @@ MultiDeviceSetupClientImpl::MultiDeviceSetupClientImpl( ...@@ -52,15 +52,16 @@ MultiDeviceSetupClientImpl::MultiDeviceSetupClientImpl(
multidevice::RemoteDeviceCache::Factory::Get()->BuildInstance()), multidevice::RemoteDeviceCache::Factory::Get()->BuildInstance()),
host_status_with_device_(GenerateDefaultHostStatusWithDevice()), host_status_with_device_(GenerateDefaultHostStatusWithDevice()),
feature_states_map_(GenerateDefaultFeatureStatesMap()) { feature_states_map_(GenerateDefaultFeatureStatesMap()) {
connector->BindInterface(mojom::kServiceName, &multidevice_setup_ptr_); connector->Connect(mojom::kServiceName,
multidevice_setup_ptr_->AddHostStatusObserver( multidevice_setup_remote_.BindNewPipeAndPassReceiver());
multidevice_setup_remote_->AddHostStatusObserver(
GenerateHostStatusObserverRemote()); GenerateHostStatusObserverRemote());
multidevice_setup_ptr_->AddFeatureStateObserver( multidevice_setup_remote_->AddFeatureStateObserver(
GenerateFeatureStatesObserverRemote()); GenerateFeatureStatesObserverRemote());
multidevice_setup_ptr_->GetHostStatus( multidevice_setup_remote_->GetHostStatus(
base::BindOnce(&MultiDeviceSetupClientImpl::OnHostStatusChanged, base::BindOnce(&MultiDeviceSetupClientImpl::OnHostStatusChanged,
base::Unretained(this))); base::Unretained(this)));
multidevice_setup_ptr_->GetFeatureStates( multidevice_setup_remote_->GetFeatureStates(
base::BindOnce(&MultiDeviceSetupClientImpl::OnFeatureStatesChanged, base::BindOnce(&MultiDeviceSetupClientImpl::OnFeatureStatesChanged,
base::Unretained(this))); base::Unretained(this)));
} }
...@@ -69,7 +70,7 @@ MultiDeviceSetupClientImpl::~MultiDeviceSetupClientImpl() = default; ...@@ -69,7 +70,7 @@ MultiDeviceSetupClientImpl::~MultiDeviceSetupClientImpl() = default;
void MultiDeviceSetupClientImpl::GetEligibleHostDevices( void MultiDeviceSetupClientImpl::GetEligibleHostDevices(
GetEligibleHostDevicesCallback callback) { GetEligibleHostDevicesCallback callback) {
multidevice_setup_ptr_->GetEligibleHostDevices(base::BindOnce( multidevice_setup_remote_->GetEligibleHostDevices(base::BindOnce(
&MultiDeviceSetupClientImpl::OnGetEligibleHostDevicesCompleted, &MultiDeviceSetupClientImpl::OnGetEligibleHostDevicesCompleted,
base::Unretained(this), std::move(callback))); base::Unretained(this), std::move(callback)));
} }
...@@ -78,12 +79,12 @@ void MultiDeviceSetupClientImpl::SetHostDevice( ...@@ -78,12 +79,12 @@ void MultiDeviceSetupClientImpl::SetHostDevice(
const std::string& host_device_id, const std::string& host_device_id,
const std::string& auth_token, const std::string& auth_token,
mojom::MultiDeviceSetup::SetHostDeviceCallback callback) { mojom::MultiDeviceSetup::SetHostDeviceCallback callback) {
multidevice_setup_ptr_->SetHostDevice(host_device_id, auth_token, multidevice_setup_remote_->SetHostDevice(host_device_id, auth_token,
std::move(callback)); std::move(callback));
} }
void MultiDeviceSetupClientImpl::RemoveHostDevice() { void MultiDeviceSetupClientImpl::RemoveHostDevice() {
multidevice_setup_ptr_->RemoveHostDevice(); multidevice_setup_remote_->RemoveHostDevice();
} }
const MultiDeviceSetupClient::HostStatusWithDevice& const MultiDeviceSetupClient::HostStatusWithDevice&
...@@ -96,8 +97,8 @@ void MultiDeviceSetupClientImpl::SetFeatureEnabledState( ...@@ -96,8 +97,8 @@ void MultiDeviceSetupClientImpl::SetFeatureEnabledState(
bool enabled, bool enabled,
const base::Optional<std::string>& auth_token, const base::Optional<std::string>& auth_token,
mojom::MultiDeviceSetup::SetFeatureEnabledStateCallback callback) { mojom::MultiDeviceSetup::SetFeatureEnabledStateCallback callback) {
multidevice_setup_ptr_->SetFeatureEnabledState(feature, enabled, auth_token, multidevice_setup_remote_->SetFeatureEnabledState(
std::move(callback)); feature, enabled, auth_token, std::move(callback));
} }
const MultiDeviceSetupClient::FeatureStatesMap& const MultiDeviceSetupClient::FeatureStatesMap&
...@@ -107,13 +108,14 @@ MultiDeviceSetupClientImpl::GetFeatureStates() const { ...@@ -107,13 +108,14 @@ MultiDeviceSetupClientImpl::GetFeatureStates() const {
void MultiDeviceSetupClientImpl::RetrySetHostNow( void MultiDeviceSetupClientImpl::RetrySetHostNow(
mojom::MultiDeviceSetup::RetrySetHostNowCallback callback) { mojom::MultiDeviceSetup::RetrySetHostNowCallback callback) {
multidevice_setup_ptr_->RetrySetHostNow(std::move(callback)); multidevice_setup_remote_->RetrySetHostNow(std::move(callback));
} }
void MultiDeviceSetupClientImpl::TriggerEventForDebugging( void MultiDeviceSetupClientImpl::TriggerEventForDebugging(
mojom::EventTypeForDebugging type, mojom::EventTypeForDebugging type,
mojom::MultiDeviceSetup::TriggerEventForDebuggingCallback callback) { mojom::MultiDeviceSetup::TriggerEventForDebuggingCallback callback) {
multidevice_setup_ptr_->TriggerEventForDebugging(type, std::move(callback)); multidevice_setup_remote_->TriggerEventForDebugging(type,
std::move(callback));
} }
void MultiDeviceSetupClientImpl::OnHostStatusChanged( void MultiDeviceSetupClientImpl::OnHostStatusChanged(
...@@ -165,7 +167,7 @@ MultiDeviceSetupClientImpl::GenerateFeatureStatesObserverRemote() { ...@@ -165,7 +167,7 @@ MultiDeviceSetupClientImpl::GenerateFeatureStatesObserverRemote() {
} }
void MultiDeviceSetupClientImpl::FlushForTesting() { void MultiDeviceSetupClientImpl::FlushForTesting() {
multidevice_setup_ptr_.FlushForTesting(); multidevice_setup_remote_.FlushForTesting();
} }
} // namespace multidevice_setup } // namespace multidevice_setup
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace service_manager { namespace service_manager {
class Connector; class Connector;
...@@ -93,7 +94,7 @@ class MultiDeviceSetupClientImpl : public MultiDeviceSetupClient, ...@@ -93,7 +94,7 @@ class MultiDeviceSetupClientImpl : public MultiDeviceSetupClient,
void FlushForTesting(); void FlushForTesting();
mojom::MultiDeviceSetupPtr multidevice_setup_ptr_; mojo::Remote<mojom::MultiDeviceSetup> multidevice_setup_remote_;
mojo::Receiver<mojom::HostStatusObserver> host_status_observer_receiver_{ mojo::Receiver<mojom::HostStatusObserver> host_status_observer_receiver_{
this}; this};
mojo::Receiver<mojom::FeatureStateObserver> feature_state_observer_receiver_{ mojo::Receiver<mojom::FeatureStateObserver> feature_state_observer_receiver_{
......
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