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

Convert FingerprintObserver to new Mojo types

This CL converts FingerprintObserverPtr and
FingerprintObserverRequest in chrome, services and ui to the new
Mojo type, and uses pending_remote<FingerprintObserver> in
fingerprint.mojom.

Bug: 955171
Change-Id: Ide42fdb94bc69b100b5fce68f672cc86ef6f7c27
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792464
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#696021}
parent ab8d1f2b
...@@ -177,7 +177,7 @@ ScreenLocker::Delegate::~Delegate() = default; ...@@ -177,7 +177,7 @@ ScreenLocker::Delegate::~Delegate() = default;
// ScreenLocker, public: // ScreenLocker, public:
ScreenLocker::ScreenLocker(const user_manager::UserList& users) ScreenLocker::ScreenLocker(const user_manager::UserList& users)
: users_(users), fingerprint_observer_binding_(this) { : users_(users) {
DCHECK(!screen_locker_); DCHECK(!screen_locker_);
screen_locker_ = this; screen_locker_ = this;
...@@ -190,9 +190,8 @@ ScreenLocker::ScreenLocker(const user_manager::UserList& users) ...@@ -190,9 +190,8 @@ ScreenLocker::ScreenLocker(const user_manager::UserList& users)
content::GetSystemConnector()->Connect( content::GetSystemConnector()->Connect(
device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver()); device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver());
device::mojom::FingerprintObserverPtr observer; fp_service_->AddFingerprintObserver(
fingerprint_observer_binding_.Bind(mojo::MakeRequest(&observer)); fingerprint_observer_receiver_.BindNewPipeAndPassRemote());
fp_service_->AddFingerprintObserver(std::move(observer));
GetLoginScreenCertProviderService()->pin_dialog_manager()->AddPinDialogHost( GetLoginScreenCertProviderService()->pin_dialog_manager()->AddPinDialogHost(
&security_token_pin_dialog_host_ash_impl_); &security_token_pin_dialog_host_ash_impl_);
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "chromeos/login/auth/challenge_response_key.h" #include "chromeos/login/auth/challenge_response_key.h"
#include "chromeos/login/auth/user_context.h" #include "chromeos/login/auth/user_context.h"
#include "components/user_manager/user.h" #include "components/user_manager/user.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"
#include "services/device/public/mojom/fingerprint.mojom.h" #include "services/device/public/mojom/fingerprint.mojom.h"
#include "ui/base/accelerators/accelerator.h" #include "ui/base/accelerators/accelerator.h"
...@@ -287,8 +287,8 @@ class ScreenLocker : public AuthStatusConsumer, ...@@ -287,8 +287,8 @@ class ScreenLocker : public AuthStatusConsumer,
scoped_refptr<input_method::InputMethodManager::State> saved_ime_state_; scoped_refptr<input_method::InputMethodManager::State> saved_ime_state_;
mojo::Remote<device::mojom::Fingerprint> fp_service_; mojo::Remote<device::mojom::Fingerprint> fp_service_;
mojo::Binding<device::mojom::FingerprintObserver> mojo::Receiver<device::mojom::FingerprintObserver>
fingerprint_observer_binding_; fingerprint_observer_receiver_{this};
// ViewsScreenLocker instance in use. // ViewsScreenLocker instance in use.
std::unique_ptr<ViewsScreenLocker> views_screen_locker_; std::unique_ptr<ViewsScreenLocker> views_screen_locker_;
......
...@@ -57,9 +57,7 @@ FingerprintSetupScreenHandler::FingerprintSetupScreenHandler( ...@@ -57,9 +57,7 @@ FingerprintSetupScreenHandler::FingerprintSetupScreenHandler(
content::GetSystemConnector()->Connect( content::GetSystemConnector()->Connect(
device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver()); device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver());
device::mojom::FingerprintObserverPtr observer; fp_service_->AddFingerprintObserver(receiver_.BindNewPipeAndPassRemote());
binding_.Bind(mojo::MakeRequest(&observer));
fp_service_->AddFingerprintObserver(std::move(observer));
} }
FingerprintSetupScreenHandler::~FingerprintSetupScreenHandler() = default; FingerprintSetupScreenHandler::~FingerprintSetupScreenHandler() = default;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,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 "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"
#include "services/device/public/mojom/fingerprint.mojom.h" #include "services/device/public/mojom/fingerprint.mojom.h"
...@@ -77,7 +77,7 @@ class FingerprintSetupScreenHandler ...@@ -77,7 +77,7 @@ class FingerprintSetupScreenHandler
FingerprintSetupScreen* screen_ = nullptr; FingerprintSetupScreen* screen_ = nullptr;
mojo::Remote<device::mojom::Fingerprint> fp_service_; mojo::Remote<device::mojom::Fingerprint> fp_service_;
mojo::Binding<device::mojom::FingerprintObserver> binding_{this}; mojo::Receiver<device::mojom::FingerprintObserver> receiver_{this};
int enrolled_finger_count_ = 0; int enrolled_finger_count_ = 0;
bool enroll_session_started_ = false; bool enroll_session_started_ = false;
......
...@@ -58,7 +58,7 @@ std::unique_ptr<base::DictionaryValue> GetFingerprintsInfo( ...@@ -58,7 +58,7 @@ std::unique_ptr<base::DictionaryValue> GetFingerprintsInfo(
} // namespace } // namespace
FingerprintHandler::FingerprintHandler(Profile* profile) FingerprintHandler::FingerprintHandler(Profile* profile)
: profile_(profile), binding_(this), session_observer_(this) { : profile_(profile), session_observer_(this) {
content::GetSystemConnector()->Connect( content::GetSystemConnector()->Connect(
device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver()); device::mojom::kServiceName, fp_service_.BindNewPipeAndPassReceiver());
user_id_ = ProfileHelper::Get()->GetUserIdHashFromProfile(profile); user_id_ = ProfileHelper::Get()->GetUserIdHashFromProfile(profile);
...@@ -111,14 +111,12 @@ void FingerprintHandler::OnJavascriptAllowed() { ...@@ -111,14 +111,12 @@ void FingerprintHandler::OnJavascriptAllowed() {
if (SessionManager::Get()) if (SessionManager::Get())
session_observer_.Add(SessionManager::Get()); session_observer_.Add(SessionManager::Get());
device::mojom::FingerprintObserverPtr observer; fp_service_->AddFingerprintObserver(receiver_.BindNewPipeAndPassRemote());
binding_.Bind(mojo::MakeRequest(&observer));
fp_service_->AddFingerprintObserver(std::move(observer));
} }
void FingerprintHandler::OnJavascriptDisallowed() { void FingerprintHandler::OnJavascriptDisallowed() {
session_observer_.RemoveAll(); session_observer_.RemoveAll();
binding_.Close(); receiver_.reset();
} }
void FingerprintHandler::OnRestarted() {} void FingerprintHandler::OnRestarted() {}
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h" #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "components/session_manager/core/session_manager_observer.h" #include "components/session_manager/core/session_manager_observer.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"
#include "services/device/public/mojom/fingerprint.mojom.h" #include "services/device/public/mojom/fingerprint.mojom.h"
...@@ -81,7 +81,7 @@ class FingerprintHandler : public ::settings::SettingsPageUIHandler, ...@@ -81,7 +81,7 @@ class FingerprintHandler : public ::settings::SettingsPageUIHandler,
std::string user_id_; std::string user_id_;
mojo::Remote<device::mojom::Fingerprint> fp_service_; mojo::Remote<device::mojom::Fingerprint> fp_service_;
mojo::Binding<device::mojom::FingerprintObserver> binding_; mojo::Receiver<device::mojom::FingerprintObserver> receiver_{this};
ScopedObserver<session_manager::SessionManager, ScopedObserver<session_manager::SessionManager,
session_manager::SessionManagerObserver> session_manager::SessionManagerObserver>
session_observer_; session_observer_;
......
...@@ -203,8 +203,10 @@ void FingerprintChromeOS::RequestType(RequestTypeCallback callback) { ...@@ -203,8 +203,10 @@ void FingerprintChromeOS::RequestType(RequestTypeCallback callback) {
} }
void FingerprintChromeOS::AddFingerprintObserver( void FingerprintChromeOS::AddFingerprintObserver(
mojom::FingerprintObserverPtr observer) { mojo::PendingRemote<mojom::FingerprintObserver> pending_observer) {
observer.set_connection_error_handler( mojo::Remote<mojom::FingerprintObserver> observer(
std::move(pending_observer));
observer.set_disconnect_handler(
base::Bind(&FingerprintChromeOS::OnFingerprintObserverDisconnected, base::Bind(&FingerprintChromeOS::OnFingerprintObserverDisconnected,
base::Unretained(this), observer.get())); base::Unretained(this), observer.get()));
observers_.push_back(std::move(observer)); observers_.push_back(std::move(observer));
......
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include "base/containers/queue.h" #include "base/containers/queue.h"
#include "base/macros.h" #include "base/macros.h"
#include "chromeos/dbus/biod/biod_client.h" #include "chromeos/dbus/biod/biod_client.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/fingerprint/fingerprint_export.h" #include "services/device/fingerprint/fingerprint_export.h"
#include "services/device/public/mojom/fingerprint.mojom.h" #include "services/device/public/mojom/fingerprint.mojom.h"
...@@ -55,7 +57,8 @@ class SERVICES_DEVICE_FINGERPRINT_EXPORT FingerprintChromeOS ...@@ -55,7 +57,8 @@ class SERVICES_DEVICE_FINGERPRINT_EXPORT FingerprintChromeOS
void EndCurrentAuthSession(EndCurrentAuthSessionCallback callback) override; void EndCurrentAuthSession(EndCurrentAuthSessionCallback callback) override;
void DestroyAllRecords(DestroyAllRecordsCallback callback) override; void DestroyAllRecords(DestroyAllRecordsCallback callback) override;
void RequestType(RequestTypeCallback callback) override; void RequestType(RequestTypeCallback callback) override;
void AddFingerprintObserver(mojom::FingerprintObserverPtr observer) override; void AddFingerprintObserver(mojo::PendingRemote<mojom::FingerprintObserver>
pending_observer) override;
private: private:
friend class FingerprintChromeOSTest; friend class FingerprintChromeOSTest;
...@@ -90,7 +93,7 @@ class SERVICES_DEVICE_FINGERPRINT_EXPORT FingerprintChromeOS ...@@ -90,7 +93,7 @@ class SERVICES_DEVICE_FINGERPRINT_EXPORT FingerprintChromeOS
// Start next request of GetRecordsForUser. // Start next request of GetRecordsForUser.
void StartNextRequest(); void StartNextRequest();
std::vector<mojom::FingerprintObserverPtr> observers_; std::vector<mojo::Remote<mojom::FingerprintObserver>> observers_;
// Saves record object path to label mapping for current GetRecordsForUser // Saves record object path to label mapping for current GetRecordsForUser
// request, and reset after the request is done. // request, and reset after the request is done.
......
...@@ -9,15 +9,18 @@ ...@@ -9,15 +9,18 @@
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "chromeos/dbus/biod/fake_biod_client.h" #include "chromeos/dbus/biod/fake_biod_client.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace device { namespace device {
class FakeFingerprintObserver : public mojom::FingerprintObserver { class FakeFingerprintObserver : public mojom::FingerprintObserver {
public: public:
explicit FakeFingerprintObserver(mojom::FingerprintObserverRequest request) explicit FakeFingerprintObserver(
: binding_(this, std::move(request)) {} mojo::PendingReceiver<mojom::FingerprintObserver> receiver)
: receiver_(this, std::move(receiver)) {}
~FakeFingerprintObserver() override {} ~FakeFingerprintObserver() override {}
// mojom::FingerprintObserver // mojom::FingerprintObserver
...@@ -45,7 +48,7 @@ class FakeFingerprintObserver : public mojom::FingerprintObserver { ...@@ -45,7 +48,7 @@ class FakeFingerprintObserver : public mojom::FingerprintObserver {
int session_failures() { return session_failures_; } int session_failures() { return session_failures_; }
private: private:
mojo::Binding<mojom::FingerprintObserver> binding_; mojo::Receiver<mojom::FingerprintObserver> receiver_;
int enroll_scan_dones_ = 0; // Count of enroll scan done signal received. int enroll_scan_dones_ = 0; // Count of enroll scan done signal received.
int auth_scan_dones_ = 0; // Count of auth scan done signal received. int auth_scan_dones_ = 0; // Count of auth scan done signal received.
int restarts_ = 0; // Count of restart signal received. int restarts_ = 0; // Count of restart signal received.
...@@ -133,9 +136,10 @@ class FingerprintChromeOSTest : public testing::Test { ...@@ -133,9 +136,10 @@ class FingerprintChromeOSTest : public testing::Test {
}; };
TEST_F(FingerprintChromeOSTest, FingerprintObserverTest) { TEST_F(FingerprintChromeOSTest, FingerprintObserverTest) {
mojom::FingerprintObserverPtr proxy; mojo::PendingRemote<mojom::FingerprintObserver> pending_observer;
FakeFingerprintObserver observer(mojo::MakeRequest(&proxy)); FakeFingerprintObserver observer(
fingerprint()->AddFingerprintObserver(std::move(proxy)); pending_observer.InitWithNewPipeAndPassReceiver());
fingerprint()->AddFingerprintObserver(std::move(pending_observer));
GenerateRestartSignal(); GenerateRestartSignal();
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
......
...@@ -84,7 +84,7 @@ interface Fingerprint { ...@@ -84,7 +84,7 @@ interface Fingerprint {
DestroyAllRecords() => (bool success); DestroyAllRecords() => (bool success);
// Adds fingerprint observers and notifies them when receiving signals. // Adds fingerprint observers and notifies them when receiving signals.
AddFingerprintObserver(FingerprintObserver observer); AddFingerprintObserver(pending_remote<FingerprintObserver> observer);
// Requests the type of biometric. // Requests the type of biometric.
RequestType() => (BiometricType type); RequestType() => (BiometricType type);
......
...@@ -46,7 +46,7 @@ power_manager::UserActivityType GetUserActivityTypeForEvent( ...@@ -46,7 +46,7 @@ power_manager::UserActivityType GetUserActivityTypeForEvent(
UserActivityPowerManagerNotifier::UserActivityPowerManagerNotifier( UserActivityPowerManagerNotifier::UserActivityPowerManagerNotifier(
UserActivityDetector* detector, UserActivityDetector* detector,
service_manager::Connector* connector) service_manager::Connector* connector)
: detector_(detector), fingerprint_observer_binding_(this) { : detector_(detector) {
detector_->AddObserver(this); detector_->AddObserver(this);
ui::DeviceDataManager::GetInstance()->AddObserver(this); ui::DeviceDataManager::GetInstance()->AddObserver(this);
chromeos::PowerManagerClient::Get()->AddObserver(this); chromeos::PowerManagerClient::Get()->AddObserver(this);
...@@ -57,9 +57,8 @@ UserActivityPowerManagerNotifier::UserActivityPowerManagerNotifier( ...@@ -57,9 +57,8 @@ UserActivityPowerManagerNotifier::UserActivityPowerManagerNotifier(
// I.e., when user tried to use fingerprint to unlock. // I.e., when user tried to use fingerprint to unlock.
connector->Connect(device::mojom::kServiceName, connector->Connect(device::mojom::kServiceName,
fingerprint_.BindNewPipeAndPassReceiver()); fingerprint_.BindNewPipeAndPassReceiver());
device::mojom::FingerprintObserverPtr observer; fingerprint_->AddFingerprintObserver(
fingerprint_observer_binding_.Bind(mojo::MakeRequest(&observer)); fingerprint_observer_receiver_.BindNewPipeAndPassRemote());
fingerprint_->AddFingerprintObserver(std::move(observer));
} }
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chromeos/dbus/power/power_manager_client.h" #include "chromeos/dbus/power/power_manager_client.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"
#include "services/device/public/mojom/fingerprint.mojom.h" #include "services/device/public/mojom/fingerprint.mojom.h"
#include "third_party/cros_system_api/dbus/service_constants.h" #include "third_party/cros_system_api/dbus/service_constants.h"
...@@ -68,8 +68,8 @@ class UI_CHROMEOS_EXPORT UserActivityPowerManagerNotifier ...@@ -68,8 +68,8 @@ class UI_CHROMEOS_EXPORT UserActivityPowerManagerNotifier
UserActivityDetector* detector_; // not owned UserActivityDetector* detector_; // not owned
mojo::Remote<device::mojom::Fingerprint> fingerprint_; mojo::Remote<device::mojom::Fingerprint> fingerprint_;
mojo::Binding<device::mojom::FingerprintObserver> mojo::Receiver<device::mojom::FingerprintObserver>
fingerprint_observer_binding_; fingerprint_observer_receiver_{this};
// Last time that the power manager was notified. // Last time that the power manager was notified.
base::TimeTicks last_notify_time_; base::TimeTicks last_notify_time_;
......
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