blob: 9dba9cb76371efb3ff6d0e1a8c59804366d24455 [file] [log] [blame]
Donna Wuc98e12a2018-08-16 07:24:021// Copyright 2018 The Chromium Authors. All rights reserved.
2// 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_USB_WEB_USB_CHOOSER_DESKTOP_H_
6#define CHROME_BROWSER_USB_WEB_USB_CHOOSER_DESKTOP_H_
7
8#include <memory>
9
Elly Fong-Jonesaa017fa2020-03-18 21:28:2210#include "base/callback_helpers.h"
Donna Wuc98e12a2018-08-16 07:24:0211#include "base/macros.h"
12#include "chrome/browser/usb/web_usb_chooser.h"
Donna Wuc98e12a2018-08-16 07:24:0213
14// Implementation of WebUsbChooser for desktop browsers that uses a bubble to
15// display the permission prompt.
16class WebUsbChooserDesktop : public WebUsbChooser {
17 public:
18 explicit WebUsbChooserDesktop(content::RenderFrameHost* render_frame_host);
19 ~WebUsbChooserDesktop() override;
20
21 // WebUsbChooser implementation
22 void ShowChooser(std::unique_ptr<UsbChooserController> controller) override;
23
24 base::WeakPtr<WebUsbChooser> GetWeakPtr() override;
25
26 private:
Elly Fong-Jonesaa017fa2020-03-18 21:28:2227 base::ScopedClosureRunner closure_runner_{base::DoNothing()};
Donna Wuc98e12a2018-08-16 07:24:0228
Jeremy Roman495db682019-07-12 16:03:2429 base::WeakPtrFactory<WebUsbChooserDesktop> weak_factory_{this};
Donna Wuc98e12a2018-08-16 07:24:0230 DISALLOW_COPY_AND_ASSIGN(WebUsbChooserDesktop);
31};
32
33#endif // CHROME_BROWSER_USB_WEB_USB_CHOOSER_DESKTOP_H_