Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Side by Side Diff: chrome/browser/usb/usb_chooser_controller.h

Issue 2746313002: Remove RenderFrameHost pointer from ChooserController. (Closed)
Patch Set: Fix Android build and juncai@ comment. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/usb/usb_chooser_context.cc ('k') | chrome/browser/usb/usb_chooser_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_
6 #define CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_ 6 #define CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_
7 7
8 #include <unordered_map> 8 #include <unordered_map>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/scoped_observer.h" 15 #include "base/scoped_observer.h"
16 #include "chrome/browser/chooser_controller/chooser_controller.h" 16 #include "chrome/browser/chooser_controller/chooser_controller.h"
17 #include "device/usb/public/interfaces/chooser_service.mojom.h" 17 #include "device/usb/public/interfaces/chooser_service.mojom.h"
18 #include "device/usb/usb_service.h" 18 #include "device/usb/usb_service.h"
19 #include "url/gurl.h"
19 20
20 namespace content { 21 namespace content {
21 class RenderFrameHost; 22 class RenderFrameHost;
22 } 23 }
23 24
24 namespace device { 25 namespace device {
25 class UsbDevice; 26 class UsbDevice;
26 struct UsbDeviceFilter; 27 struct UsbDeviceFilter;
27 } 28 }
28 29
30 class UsbChooserContext;
31
29 // UsbChooserController creates a chooser for WebUSB. 32 // UsbChooserController creates a chooser for WebUSB.
30 // It is owned by ChooserBubbleDelegate. 33 // It is owned by ChooserBubbleDelegate.
31 class UsbChooserController : public ChooserController, 34 class UsbChooserController : public ChooserController,
32 public device::UsbService::Observer { 35 public device::UsbService::Observer {
33 public: 36 public:
34 UsbChooserController( 37 UsbChooserController(
35 content::RenderFrameHost* render_frame_host, 38 content::RenderFrameHost* render_frame_host,
36 const std::vector<device::UsbDeviceFilter>& device_filters, 39 const std::vector<device::UsbDeviceFilter>& device_filters,
37 const device::usb::ChooserService::GetPermissionCallback& callback); 40 const device::usb::ChooserService::GetPermissionCallback& callback);
38 ~UsbChooserController() override; 41 ~UsbChooserController() override;
(...skipping 13 matching lines...) Expand all
52 55
53 // device::UsbService::Observer: 56 // device::UsbService::Observer:
54 void OnDeviceAdded(scoped_refptr<device::UsbDevice> device) override; 57 void OnDeviceAdded(scoped_refptr<device::UsbDevice> device) override;
55 void OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) override; 58 void OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) override;
56 59
57 private: 60 private:
58 void GotUsbDeviceList( 61 void GotUsbDeviceList(
59 const std::vector<scoped_refptr<device::UsbDevice>>& devices); 62 const std::vector<scoped_refptr<device::UsbDevice>>& devices);
60 bool DisplayDevice(scoped_refptr<device::UsbDevice> device) const; 63 bool DisplayDevice(scoped_refptr<device::UsbDevice> device) const;
61 64
62 content::RenderFrameHost* const render_frame_host_; 65 std::vector<device::UsbDeviceFilter> filters_;
63 device::usb::ChooserService::GetPermissionCallback callback_; 66 device::usb::ChooserService::GetPermissionCallback callback_;
67 GURL requesting_origin_;
68 GURL embedding_origin_;
69 bool is_embedded_frame_;
70
71 base::WeakPtr<UsbChooserContext> chooser_context_;
64 ScopedObserver<device::UsbService, device::UsbService::Observer> 72 ScopedObserver<device::UsbService, device::UsbService::Observer>
65 usb_service_observer_; 73 usb_service_observer_;
66 std::vector<device::UsbDeviceFilter> filters_; 74
67 // Each pair is a (device, device name). 75 // Each pair is a (device, device name).
68 std::vector<std::pair<scoped_refptr<device::UsbDevice>, base::string16>> 76 std::vector<std::pair<scoped_refptr<device::UsbDevice>, base::string16>>
69 devices_; 77 devices_;
70 // Maps from device name to number of devices. 78 // Maps from device name to number of devices.
71 std::unordered_map<base::string16, int> device_name_map_; 79 std::unordered_map<base::string16, int> device_name_map_;
72 base::WeakPtrFactory<UsbChooserController> weak_factory_; 80 base::WeakPtrFactory<UsbChooserController> weak_factory_;
73 81
74 DISALLOW_COPY_AND_ASSIGN(UsbChooserController); 82 DISALLOW_COPY_AND_ASSIGN(UsbChooserController);
75 }; 83 };
76 84
77 #endif // CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_ 85 #endif // CHROME_BROWSER_USB_USB_CHOOSER_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/usb/usb_chooser_context.cc ('k') | chrome/browser/usb/usb_chooser_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698