Commit 618f3c99 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert SpeakerIdEnrollmentClient to new Mojo types

This CL converts SpeakerIdEnrollmentClient to new Mojo types
using PendingRemote, Remote, and Receiver.

Bug: 955171
Change-Id: I1132efd95d7a748e27903698bb2c45d22b5d3f96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1871594Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarAlexander Alekseev <alemate@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarTao Wu <wutao@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#711583}
parent 98156e14
...@@ -35,7 +35,9 @@ ...@@ -35,7 +35,9 @@
#include "chromeos/services/assistant/service.h" #include "chromeos/services/assistant/service.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/dns/mock_host_resolver.h" #include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/default_handlers.h" #include "net/test/embedded_test_server/default_handlers.h"
#include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/embedded_test_server.h"
...@@ -264,15 +266,17 @@ class FakeAssistantSettings ...@@ -264,15 +266,17 @@ class FakeAssistantSettings
void StartSpeakerIdEnrollment( void StartSpeakerIdEnrollment(
bool skip_cloud_enrollment, bool skip_cloud_enrollment,
chromeos::assistant::mojom::SpeakerIdEnrollmentClientPtr client) mojo::PendingRemote<chromeos::assistant::mojom::SpeakerIdEnrollmentClient>
override { client) override {
if (speaker_id_enrollment_mode_ == SpeakerIdEnrollmentMode::IMMEDIATE) { if (speaker_id_enrollment_mode_ == SpeakerIdEnrollmentMode::IMMEDIATE) {
client->OnSpeakerIdEnrollmentDone(); mojo::Remote<chromeos::assistant::mojom::SpeakerIdEnrollmentClient>(
std::move(client))
->OnSpeakerIdEnrollmentDone();
return; return;
} }
ASSERT_FALSE(speaker_id_enrollment_client_); ASSERT_FALSE(speaker_id_enrollment_client_);
processed_hotwords_ = 0; processed_hotwords_ = 0;
speaker_id_enrollment_client_ = std::move(client); speaker_id_enrollment_client_.Bind(std::move(client));
speaker_id_enrollment_state_ = SpeakerIdEnrollmentState::REQUESTED; speaker_id_enrollment_state_ = SpeakerIdEnrollmentState::REQUESTED;
} }
...@@ -305,7 +309,8 @@ class FakeAssistantSettings ...@@ -305,7 +309,8 @@ class FakeAssistantSettings
// Speaker ID enrollment state: // Speaker ID enrollment state:
SpeakerIdEnrollmentState speaker_id_enrollment_state_ = SpeakerIdEnrollmentState speaker_id_enrollment_state_ =
SpeakerIdEnrollmentState::IDLE; SpeakerIdEnrollmentState::IDLE;
assistant::mojom::SpeakerIdEnrollmentClientPtr speaker_id_enrollment_client_; mojo::Remote<assistant::mojom::SpeakerIdEnrollmentClient>
speaker_id_enrollment_client_;
int processed_hotwords_ = 0; int processed_hotwords_ = 0;
// Set of opt ins given by the user. // Set of opt ins given by the user.
......
...@@ -49,12 +49,12 @@ constexpr StaticOobeScreenId AssistantOptInFlowScreenView::kScreenId; ...@@ -49,12 +49,12 @@ constexpr StaticOobeScreenId AssistantOptInFlowScreenView::kScreenId;
AssistantOptInFlowScreenHandler::AssistantOptInFlowScreenHandler( AssistantOptInFlowScreenHandler::AssistantOptInFlowScreenHandler(
JSCallsContainer* js_calls_container) JSCallsContainer* js_calls_container)
: BaseScreenHandler(kScreenId, js_calls_container), client_binding_(this) { : BaseScreenHandler(kScreenId, js_calls_container) {
set_user_acted_method_path("login.AssistantOptInFlowScreen.userActed"); set_user_acted_method_path("login.AssistantOptInFlowScreen.userActed");
} }
AssistantOptInFlowScreenHandler::~AssistantOptInFlowScreenHandler() { AssistantOptInFlowScreenHandler::~AssistantOptInFlowScreenHandler() {
if (client_binding_) if (client_receiver_.is_bound())
StopSpeakerIdEnrollment(); StopSpeakerIdEnrollment();
if (ash::AssistantState::Get()) if (ash::AssistantState::Get())
ash::AssistantState::Get()->RemoveObserver(this); ash::AssistantState::Get()->RemoveObserver(this);
...@@ -312,8 +312,8 @@ void AssistantOptInFlowScreenHandler::SendGetSettingsRequest() { ...@@ -312,8 +312,8 @@ void AssistantOptInFlowScreenHandler::SendGetSettingsRequest() {
void AssistantOptInFlowScreenHandler::StopSpeakerIdEnrollment() { void AssistantOptInFlowScreenHandler::StopSpeakerIdEnrollment() {
settings_manager_->StopSpeakerIdEnrollment(base::DoNothing()); settings_manager_->StopSpeakerIdEnrollment(base::DoNothing());
// Close the binding so it can be used again if enrollment is retried. // Reset the receiver so it can be used again if enrollment is retried.
client_binding_.Close(); client_receiver_.reset();
} }
void AssistantOptInFlowScreenHandler::ReloadContent(const base::Value& dict) { void AssistantOptInFlowScreenHandler::ReloadContent(const base::Value& dict) {
...@@ -524,10 +524,9 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction( ...@@ -524,10 +524,9 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
prefs->SetBoolean(assistant::prefs::kAssistantHotwordEnabled, true); prefs->SetBoolean(assistant::prefs::kAssistantHotwordEnabled, true);
} }
assistant::mojom::SpeakerIdEnrollmentClientPtr client_ptr;
client_binding_.Bind(mojo::MakeRequest(&client_ptr));
settings_manager_->StartSpeakerIdEnrollment( settings_manager_->StartSpeakerIdEnrollment(
flow_type_ == ash::FlowType::kSpeakerIdRetrain, std::move(client_ptr)); flow_type_ == ash::FlowType::kSpeakerIdRetrain,
client_receiver_.BindNewPipeAndPassRemote());
} }
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
#include "chromeos/services/assistant/public/mojom/settings.mojom.h" #include "chromeos/services/assistant/public/mojom/settings.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
namespace chromeos { namespace chromeos {
...@@ -163,7 +163,8 @@ class AssistantOptInFlowScreenHandler ...@@ -163,7 +163,8 @@ class AssistantOptInFlowScreenHandler
// Whether the screen has been initialized. // Whether the screen has been initialized.
bool initialized_ = false; bool initialized_ = false;
mojo::Binding<assistant::mojom::SpeakerIdEnrollmentClient> client_binding_; mojo::Receiver<assistant::mojom::SpeakerIdEnrollmentClient> client_receiver_{
this};
mojo::Remote<assistant::mojom::AssistantSettingsManager> settings_manager_; mojo::Remote<assistant::mojom::AssistantSettingsManager> settings_manager_;
base::WeakPtrFactory<AssistantOptInFlowScreenHandler> weak_factory_{this}; base::WeakPtrFactory<AssistantOptInFlowScreenHandler> weak_factory_{this};
......
...@@ -123,7 +123,7 @@ void AssistantSettingsManagerImpl::UpdateSettings( ...@@ -123,7 +123,7 @@ void AssistantSettingsManagerImpl::UpdateSettings(
void AssistantSettingsManagerImpl::StartSpeakerIdEnrollment( void AssistantSettingsManagerImpl::StartSpeakerIdEnrollment(
bool skip_cloud_enrollment, bool skip_cloud_enrollment,
mojom::SpeakerIdEnrollmentClientPtr client) { mojo::PendingRemote<mojom::SpeakerIdEnrollmentClient> client) {
DCHECK(HasStarted(assistant_manager_service_)); DCHECK(HasStarted(assistant_manager_service_));
DCHECK(main_task_runner()->RunsTasksInCurrentSequence()); DCHECK(main_task_runner()->RunsTasksInCurrentSequence());
...@@ -132,7 +132,7 @@ void AssistantSettingsManagerImpl::StartSpeakerIdEnrollment( ...@@ -132,7 +132,7 @@ void AssistantSettingsManagerImpl::StartSpeakerIdEnrollment(
if (!assistant_manager_service_->assistant_manager_internal()) if (!assistant_manager_service_->assistant_manager_internal())
return; return;
speaker_id_enrollment_client_ = std::move(client); speaker_id_enrollment_client_.Bind(std::move(client));
assistant_client::SpeakerIdEnrollmentConfig client_config; assistant_client::SpeakerIdEnrollmentConfig client_config;
client_config.user_id = kUserID; client_config.user_id = kUserID;
......
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
#include "chromeos/services/assistant/assistant_settings_manager.h" #include "chromeos/services/assistant/assistant_settings_manager.h"
#include "chromeos/services/assistant/public/mojom/settings.mojom.h" #include "chromeos/services/assistant/public/mojom/settings.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace ash { namespace ash {
class AssistantStateBase; class AssistantStateBase;
...@@ -56,7 +58,7 @@ class AssistantSettingsManagerImpl : public AssistantSettingsManager { ...@@ -56,7 +58,7 @@ class AssistantSettingsManagerImpl : public AssistantSettingsManager {
UpdateSettingsCallback callback) override; UpdateSettingsCallback callback) override;
void StartSpeakerIdEnrollment( void StartSpeakerIdEnrollment(
bool skip_cloud_enrollment, bool skip_cloud_enrollment,
mojom::SpeakerIdEnrollmentClientPtr client) override; mojo::PendingRemote<mojom::SpeakerIdEnrollmentClient> client) override;
void StopSpeakerIdEnrollment( void StopSpeakerIdEnrollment(
StopSpeakerIdEnrollmentCallback callback) override; StopSpeakerIdEnrollmentCallback callback) override;
void SyncSpeakerIdEnrollmentStatus() override; void SyncSpeakerIdEnrollmentStatus() override;
...@@ -80,7 +82,7 @@ class AssistantSettingsManagerImpl : public AssistantSettingsManager { ...@@ -80,7 +82,7 @@ class AssistantSettingsManagerImpl : public AssistantSettingsManager {
ServiceContext* const context_; ServiceContext* const context_;
AssistantManagerServiceImpl* const assistant_manager_service_; AssistantManagerServiceImpl* const assistant_manager_service_;
mojom::SpeakerIdEnrollmentClientPtr speaker_id_enrollment_client_; mojo::Remote<mojom::SpeakerIdEnrollmentClient> speaker_id_enrollment_client_;
// Whether the speaker id enrollment has complete for the user. // Whether the speaker id enrollment has complete for the user.
bool speaker_id_enrollment_done_ = false; bool speaker_id_enrollment_done_ = false;
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <utility> #include <utility>
#include "chromeos/services/assistant/public/proto/settings_ui.pb.h" #include "chromeos/services/assistant/public/proto/settings_ui.pb.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos { namespace chromeos {
namespace assistant { namespace assistant {
...@@ -33,8 +34,10 @@ void FakeAssistantSettingsManagerImpl::UpdateSettings( ...@@ -33,8 +34,10 @@ void FakeAssistantSettingsManagerImpl::UpdateSettings(
void FakeAssistantSettingsManagerImpl::StartSpeakerIdEnrollment( void FakeAssistantSettingsManagerImpl::StartSpeakerIdEnrollment(
bool skip_cloud_enrollment, bool skip_cloud_enrollment,
mojom::SpeakerIdEnrollmentClientPtr client) { mojo::PendingRemote<mojom::SpeakerIdEnrollmentClient> client) {
client->OnSpeakerIdEnrollmentDone(); mojo::Remote<mojom::SpeakerIdEnrollmentClient> client_remote(
std::move(client));
client_remote->OnSpeakerIdEnrollmentDone();
} }
void FakeAssistantSettingsManagerImpl::StopSpeakerIdEnrollment( void FakeAssistantSettingsManagerImpl::StopSpeakerIdEnrollment(
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chromeos/services/assistant/assistant_settings_manager.h" #include "chromeos/services/assistant/assistant_settings_manager.h"
#include "chromeos/services/assistant/public/mojom/settings.mojom.h" #include "chromeos/services/assistant/public/mojom/settings.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
namespace chromeos { namespace chromeos {
...@@ -28,7 +29,7 @@ class FakeAssistantSettingsManagerImpl : public AssistantSettingsManager { ...@@ -28,7 +29,7 @@ class FakeAssistantSettingsManagerImpl : public AssistantSettingsManager {
UpdateSettingsCallback callback) override; UpdateSettingsCallback callback) override;
void StartSpeakerIdEnrollment( void StartSpeakerIdEnrollment(
bool skip_cloud_enrollment, bool skip_cloud_enrollment,
mojom::SpeakerIdEnrollmentClientPtr client) override; mojo::PendingRemote<mojom::SpeakerIdEnrollmentClient> client) override;
void StopSpeakerIdEnrollment( void StopSpeakerIdEnrollment(
StopSpeakerIdEnrollmentCallback callback) override; StopSpeakerIdEnrollmentCallback callback) override;
void SyncSpeakerIdEnrollmentStatus() override {} void SyncSpeakerIdEnrollmentStatus() override {}
......
...@@ -37,7 +37,7 @@ interface AssistantSettingsManager { ...@@ -37,7 +37,7 @@ interface AssistantSettingsManager {
// |skip_cloud_enrollment| whether to skip Cloud Enrollment (e.g. for when // |skip_cloud_enrollment| whether to skip Cloud Enrollment (e.g. for when
// user explicictly requests voice match re-training). // user explicictly requests voice match re-training).
StartSpeakerIdEnrollment(bool skip_cloud_enrollment, StartSpeakerIdEnrollment(bool skip_cloud_enrollment,
SpeakerIdEnrollmentClient client); pending_remote<SpeakerIdEnrollmentClient> client);
// Stops speaker id enrollment. // Stops speaker id enrollment.
StopSpeakerIdEnrollment() => (); StopSpeakerIdEnrollment() => ();
......
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