aboutsummaryrefslogtreecommitdiff
path: root/www/chromium/files/patch-services_device_hid_hid__service__fido.h
diff options
context:
space:
mode:
Diffstat (limited to 'www/chromium/files/patch-services_device_hid_hid__service__fido.h')
-rw-r--r--www/chromium/files/patch-services_device_hid_hid__service__fido.h64
1 files changed, 43 insertions, 21 deletions
diff --git a/www/chromium/files/patch-services_device_hid_hid__service__fido.h b/www/chromium/files/patch-services_device_hid_hid__service__fido.h
index 77e12e42fe1c..c5af55c5d3c5 100644
--- a/www/chromium/files/patch-services_device_hid_hid__service__fido.h
+++ b/www/chromium/files/patch-services_device_hid_hid__service__fido.h
@@ -1,46 +1,68 @@
---- services/device/hid/hid_service_fido.h.orig 2022-02-07 13:39:41 UTC
+--- services/device/hid/hid_service_fido.h.orig 2022-10-28 16:39:00 UTC
+++ services/device/hid/hid_service_fido.h
-@@ -0,0 +1,43 @@
-+// Copyright 2020 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,65 @@
++// Copyright 2014 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
-+#ifndef SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_
-+#define SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_
++#ifndef SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
++#define SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
+
-+#include <string>
++#include <memory>
+
-+#include "base/memory/ref_counted.h"
++#include "base/compiler_specific.h"
++#include "base/files/scoped_file.h"
+#include "base/memory/weak_ptr.h"
++#include "base/task/sequenced_task_runner.h"
++#include "build/build_config.h"
++#include "build/chromeos_buildflags.h"
++#include "services/device/hid/hid_device_info.h"
+#include "services/device/hid/hid_service.h"
+
+namespace device {
+
+class HidServiceFido : public HidService {
-+public:
++ public:
+ HidServiceFido();
-+
-+ HidServiceFido(const HidServiceFido&) = delete;
-+ HidServiceFido& operator=(const HidServiceFido&) = delete;
-+
++ HidServiceFido(HidServiceFido&) = delete;
++ HidServiceFido& operator=(HidServiceFido&) = delete;
+ ~HidServiceFido() override;
+
-+ void Connect(const std::string &device_guid,
++ // HidService:
++ void Connect(const std::string& device_id,
+ bool allow_protected_reports,
+ bool allow_fido_reports,
-+ ConnectCallback connect) override;
++ ConnectCallback callback) override;
+ base::WeakPtr<HidService> GetWeakPtr() override;
+
-+private:
-+ class BlockingTaskHelper;
-+ const scoped_refptr<base::SequencedTaskRunner> task_runner_;
++ private:
++ struct ConnectParams;
++ class BlockingTaskRunnerHelper;
++
++// These functions implement the process of locating, requesting access to and
++// opening a device. Because this operation crosses multiple threads these
++// functions are static and the necessary parameters are passed as a single
++// struct.
++#if BUILDFLAG(IS_CHROMEOS_ASH)
++ static void OnPathOpenComplete(std::unique_ptr<ConnectParams> params,
++ base::ScopedFD fd);
++ static void OnPathOpenError(const std::string& device_path,
++ ConnectCallback callback,
++ const std::string& error_name,
++ const std::string& error_message);
++#else
++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++#endif
++ static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
+ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
-+ base::WeakPtrFactory<HidServiceFido> weak_factory_;
++
+ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
+ // a weak reference back to the service that owns it.
-+ std::unique_ptr<BlockingTaskHelper> helper_;
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++ base::WeakPtrFactory<HidServiceFido> weak_factory_{this};
+};
+
-+} // namespace device
++} // namespace device
+
-+#endif // SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_
++#endif // SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_