blob: cbbe2f037f202f7012bb8e5dcd64ca9e36dc6780 [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
10#include "base/macros.h"
11#include "chrome/browser/usb/web_usb_chooser.h"
12#include "components/bubble/bubble_reference.h"
13
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:
27 BubbleReference bubble_;
28
29 base::WeakPtrFactory<WebUsbChooserDesktop> weak_factory_;
30 DISALLOW_COPY_AND_ASSIGN(WebUsbChooserDesktop);
31};
32
33#endif // CHROME_BROWSER_USB_WEB_USB_CHOOSER_DESKTOP_H_