summaryrefslogtreecommitdiff
path: root/chromium/content/public/browser/hid_delegate.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/public/browser/hid_delegate.h')
-rw-r--r--chromium/content/public/browser/hid_delegate.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/chromium/content/public/browser/hid_delegate.h b/chromium/content/public/browser/hid_delegate.h
index e4cc2905082..758fdbf3a8d 100644
--- a/chromium/content/public/browser/hid_delegate.h
+++ b/chromium/content/public/browser/hid_delegate.h
@@ -8,6 +8,7 @@
#include <memory>
#include <vector>
+#include "base/observer_list_types.h"
#include "content/common/content_export.h"
#include "content/public/browser/hid_chooser.h"
#include "services/device/public/mojom/hid.mojom-forward.h"
@@ -26,6 +27,18 @@ class CONTENT_EXPORT HidDelegate {
public:
virtual ~HidDelegate() = default;
+ class Observer : public base::CheckedObserver {
+ public:
+ // Events forwarded from HidChooserContext::DeviceObserver:
+ virtual void OnDeviceAdded(const device::mojom::HidDeviceInfo&) = 0;
+ virtual void OnDeviceRemoved(const device::mojom::HidDeviceInfo&) = 0;
+ virtual void OnHidManagerConnectionError() = 0;
+
+ // Event forwarded from permissions::ChooserContextBase::PermissionObserver:
+ virtual void OnPermissionRevoked(const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) = 0;
+ };
+
// Shows a chooser for the user to select a HID device. |callback| will be
// run when the prompt is closed. Deleting the returned object will cancel the
// prompt.
@@ -58,6 +71,11 @@ class CONTENT_EXPORT HidDelegate {
// possible.
virtual device::mojom::HidManager* GetHidManager(
WebContents* web_contents) = 0;
+
+ // Functions to manage the set of Observer instances registered to this
+ // object.
+ virtual void AddObserver(RenderFrameHost* frame, Observer* observer) = 0;
+ virtual void RemoveObserver(RenderFrameHost* frame, Observer* observer) = 0;
};
} // namespace content