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

Unified Diff: services/device/fingerprint/fingerprint_impl_chromeos.h

Issue 2664353002: Host fingerprint mojo service within the device service. (Closed)
Patch Set: comments Created 3 years, 10 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
Index: services/device/fingerprint/fingerprint_impl_chromeos.h
diff --git a/services/device/fingerprint/fingerprint_impl_chromeos.h b/services/device/fingerprint/fingerprint_impl_chromeos.h
new file mode 100644
index 0000000000000000000000000000000000000000..85228c438adc9c5a7732cbfc8903daf3ce0171e4
--- /dev/null
+++ b/services/device/fingerprint/fingerprint_impl_chromeos.h
@@ -0,0 +1,83 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_DEVICE_FINGERPRINT_FINGERPRINT_IMPL_CHROMEOS_H_
+#define SERVICES_DEVICE_FINGERPRINT_FINGERPRINT_IMPL_CHROMEOS_H_
+
+#include <stdint.h>
+
+#include "base/macros.h"
+#include "services/device/public/interfaces/fingerprint.mojom.h"
+
+namespace dbus {
+class ObjectPath;
+}
+
+namespace device {
+
+// Implementation of Fingerprint interface for ChromeOS platform.
+// This is used to connect to biod(through dbus) and perform fingerprint related
+// operations. It observes signals from biod.
+class FingerprintImplChromeOS : public mojom::Fingerprint {
+ public:
+ explicit FingerprintImplChromeOS();
+ ~FingerprintImplChromeOS() override;
+
+ // mojom::Fingerprint:
+ void GetFingerprintsList(
+ const GetFingerprintsListCallback& callback) override;
+ void StartEnroll(const std::string& user_id,
+ const std::string& label) override;
+ void CancelCurrentEnroll() override;
+ void GetLabel(int32_t index, const GetLabelCallback& callback) override;
+ void SetLabel(const std::string& label, int32_t index) override;
+ void RemoveEnrollment(int32_t index) override;
+ void StartAuthentication() override;
+ void EndCurrentAuthentication() override;
+ void DestroyAllEnrollments() override;
+ void AddFingerprintObserver(mojom::FingerprintObserverPtr observer) override;
+
+ private:
+ friend class FingerprintImplChromeOSTest;
+
+ void BiodBiometricClientRestarted();
+ void BiometricsScanEventReceived(uint32_t scan_result, bool is_complete);
+ void BiometricsAttemptEventReceived(
+ uint32_t scan_result,
+ const std::vector<std::string>& recognized_user_ids);
+ void BiometricsFailureReceived();
+
+ void OnFingerprintObserverDisconnected(mojom::FingerprintObserver* observer);
+ void OnStartEnroll(const dbus::ObjectPath& enroll_path);
+ void OnStartAuthentication(const dbus::ObjectPath& auth_path);
+ void OnGetFingerprintsList(
+ const GetFingerprintsListCallback& callback,
+ const std::vector<dbus::ObjectPath>& enrollment_paths);
+ void OnGetLabelFromEnrollmentPath(const GetFingerprintsListCallback& callback,
+ size_t num_enrollments,
+ std::vector<std::string>* out_labels,
+ const std::string& label);
+
+ void OnGetLabel(int32_t index,
+ const GetLabelCallback& callback,
+ const std::vector<dbus::ObjectPath>& enrollment_paths);
+ void OnSetLabel(const std::string& new_label,
+ int index,
+ const std::vector<dbus::ObjectPath>& enrollment_paths);
+ void OnRemoveEnrollment(
+ int index,
+ const std::vector<dbus::ObjectPath>& enrollment_paths);
+
+ std::vector<mojom::FingerprintObserverPtr> observers_;
+ std::unique_ptr<dbus::ObjectPath> current_enroll_path_;
+ std::unique_ptr<dbus::ObjectPath> current_auth_path_;
+
+ base::WeakPtrFactory<FingerprintImplChromeOS> weak_ptr_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(FingerprintImplChromeOS);
+};
+
+} // namespace device
+
+#endif // SERVICES_DEVICE_FINGERPRINT_FINGERPRINT_IMPL_CHROMEOS_H_
« no previous file with comments | « services/device/fingerprint/fingerprint_export.h ('k') | services/device/fingerprint/fingerprint_impl_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698