blob: aa6c04935e7cd8d0d0e456705e2fa05488969603 [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2021 The Chromium Authors
Michael van Ouwerkerked905122021-07-22 14:24:392// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_BLUETOOTH_CHROME_BLUETOOTH_DELEGATE_IMPL_CLIENT_H_
6#define CHROME_BROWSER_BLUETOOTH_CHROME_BLUETOOTH_DELEGATE_IMPL_CLIENT_H_
7
8#include <memory>
9
10#include "components/permissions/bluetooth_chooser_controller.h"
11#include "components/permissions/bluetooth_delegate_impl.h"
12#include "content/public/browser/bluetooth_delegate.h"
13
14namespace content {
15class RenderFrameHost;
16} // namespace content
17
18namespace permissions {
19class BluetoothChooserContext;
20} // namespace permissions
21
22// Provides embedder-level functionality to BluetoothDelegateImpl in Chrome.
23class ChromeBluetoothDelegateImplClient
24 : public permissions::BluetoothDelegateImpl::Client {
25 public:
26 ChromeBluetoothDelegateImplClient();
27 ~ChromeBluetoothDelegateImplClient() override;
28
29 ChromeBluetoothDelegateImplClient(const ChromeBluetoothDelegateImplClient&) =
30 delete;
31 ChromeBluetoothDelegateImplClient& operator=(
32 const ChromeBluetoothDelegateImplClient&) = delete;
33
34 // BluetoothDelegateImpl::Client implementation:
35 permissions::BluetoothChooserContext* GetBluetoothChooserContext(
36 content::RenderFrameHost* frame) override;
37 std::unique_ptr<content::BluetoothChooser> RunBluetoothChooser(
38 content::RenderFrameHost* frame,
39 const content::BluetoothChooser::EventHandler& event_handler) override;
40 std::unique_ptr<content::BluetoothScanningPrompt> ShowBluetoothScanningPrompt(
41 content::RenderFrameHost* frame,
42 const content::BluetoothScanningPrompt::EventHandler& event_handler)
43 override;
Alvin Jif6100132022-07-07 21:53:4344
45 void ShowBluetoothDevicePairDialog(
Chris Mumford4d1cf302021-10-05 23:02:4746 content::RenderFrameHost* frame,
47 const std::u16string& device_identifier,
Alvin Jif6100132022-07-07 21:53:4348 content::BluetoothDelegate::PairPromptCallback callback,
Alvin Jibab887b2022-07-27 00:59:5449 content::BluetoothDelegate::PairingKind pairing_kind,
Arthur Sonzognife132ee2024-01-15 11:01:0450 const std::optional<std::u16string>& pin) override;
Michael van Ouwerkerked905122021-07-22 14:24:3951};
52
53#endif // CHROME_BROWSER_BLUETOOTH_CHROME_BLUETOOTH_DELEGATE_IMPL_CLIENT_H_