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

Side by Side Diff: chrome/browser/usb/usb_tab_helper.cc

Issue 1739523002: WebUsb Android chooser UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase and added NoUnderlineClickableSpan.java to ui/android/BUILD.gn Created 4 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_tab_helper.h ('k') | chrome/browser/usb/web_usb_histograms.h » ('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 #include "chrome/browser/usb/usb_tab_helper.h" 5 #include "chrome/browser/usb/usb_tab_helper.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/usb/web_usb_chooser_service.h"
11 #include "chrome/browser/usb/web_usb_permission_provider.h" 10 #include "chrome/browser/usb/web_usb_permission_provider.h"
12 #include "device/usb/mojo/device_manager_impl.h" 11 #include "device/usb/mojo/device_manager_impl.h"
13 12
13 #if defined(OS_ANDROID)
14 #include "chrome/browser/android/usb/web_usb_chooser_service_android.h"
15 #else
16 #include "chrome/browser/usb/web_usb_chooser_service.h"
17 #endif // defined(OS_ANDROID)
18
14 using content::RenderFrameHost; 19 using content::RenderFrameHost;
15 using content::WebContents; 20 using content::WebContents;
16 21
17 DEFINE_WEB_CONTENTS_USER_DATA_KEY(UsbTabHelper); 22 DEFINE_WEB_CONTENTS_USER_DATA_KEY(UsbTabHelper);
18 23
19 struct FrameUsbServices { 24 struct FrameUsbServices {
20 scoped_ptr<WebUSBPermissionProvider> permission_provider; 25 scoped_ptr<WebUSBPermissionProvider> permission_provider;
26 #if defined(OS_ANDROID)
27 scoped_ptr<WebUsbChooserServiceAndroid> chooser_service;
28 #else
21 scoped_ptr<WebUsbChooserService> chooser_service; 29 scoped_ptr<WebUsbChooserService> chooser_service;
30 #endif // defined(OS_ANDROID)
22 }; 31 };
23 32
24 // static 33 // static
25 UsbTabHelper* UsbTabHelper::GetOrCreateForWebContents( 34 UsbTabHelper* UsbTabHelper::GetOrCreateForWebContents(
26 WebContents* web_contents) { 35 WebContents* web_contents) {
27 UsbTabHelper* tab_helper = FromWebContents(web_contents); 36 UsbTabHelper* tab_helper = FromWebContents(web_contents);
28 if (!tab_helper) { 37 if (!tab_helper) {
29 CreateForWebContents(web_contents); 38 CreateForWebContents(web_contents);
30 tab_helper = FromWebContents(web_contents); 39 tab_helper = FromWebContents(web_contents);
31 } 40 }
32 return tab_helper; 41 return tab_helper;
33 } 42 }
34 43
35 UsbTabHelper::~UsbTabHelper() {} 44 UsbTabHelper::~UsbTabHelper() {}
36 45
37 void UsbTabHelper::CreateDeviceManager( 46 void UsbTabHelper::CreateDeviceManager(
38 RenderFrameHost* render_frame_host, 47 RenderFrameHost* render_frame_host,
39 mojo::InterfaceRequest<device::usb::DeviceManager> request) { 48 mojo::InterfaceRequest<device::usb::DeviceManager> request) {
40 DCHECK(WebContents::FromRenderFrameHost(render_frame_host) == web_contents()); 49 DCHECK(WebContents::FromRenderFrameHost(render_frame_host) == web_contents());
41 device::usb::DeviceManagerImpl::Create( 50 device::usb::DeviceManagerImpl::Create(
42 GetPermissionProvider(render_frame_host), std::move(request)); 51 GetPermissionProvider(render_frame_host), std::move(request));
43 } 52 }
44 53
45 #if !defined(OS_ANDROID)
46 void UsbTabHelper::CreateChooserService( 54 void UsbTabHelper::CreateChooserService(
47 content::RenderFrameHost* render_frame_host, 55 content::RenderFrameHost* render_frame_host,
48 mojo::InterfaceRequest<device::usb::ChooserService> request) { 56 mojo::InterfaceRequest<device::usb::ChooserService> request) {
49 GetChooserService(render_frame_host, std::move(request)); 57 GetChooserService(render_frame_host, std::move(request));
50 } 58 }
51 #endif // !defined(OS_ANDROID)
52 59
53 UsbTabHelper::UsbTabHelper(WebContents* web_contents) 60 UsbTabHelper::UsbTabHelper(WebContents* web_contents)
54 : content::WebContentsObserver(web_contents) {} 61 : content::WebContentsObserver(web_contents) {}
55 62
56 void UsbTabHelper::RenderFrameDeleted(RenderFrameHost* render_frame_host) { 63 void UsbTabHelper::RenderFrameDeleted(RenderFrameHost* render_frame_host) {
57 frame_usb_services_.erase(render_frame_host); 64 frame_usb_services_.erase(render_frame_host);
58 } 65 }
59 66
60 FrameUsbServices* UsbTabHelper::GetFrameUsbService( 67 FrameUsbServices* UsbTabHelper::GetFrameUsbService(
61 content::RenderFrameHost* render_frame_host) { 68 content::RenderFrameHost* render_frame_host) {
(...skipping 11 matching lines...) Expand all
73 base::WeakPtr<device::usb::PermissionProvider> 80 base::WeakPtr<device::usb::PermissionProvider>
74 UsbTabHelper::GetPermissionProvider(RenderFrameHost* render_frame_host) { 81 UsbTabHelper::GetPermissionProvider(RenderFrameHost* render_frame_host) {
75 FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host); 82 FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host);
76 if (!frame_usb_services->permission_provider) { 83 if (!frame_usb_services->permission_provider) {
77 frame_usb_services->permission_provider.reset( 84 frame_usb_services->permission_provider.reset(
78 new WebUSBPermissionProvider(render_frame_host)); 85 new WebUSBPermissionProvider(render_frame_host));
79 } 86 }
80 return frame_usb_services->permission_provider->GetWeakPtr(); 87 return frame_usb_services->permission_provider->GetWeakPtr();
81 } 88 }
82 89
83 #if !defined(OS_ANDROID)
84 void UsbTabHelper::GetChooserService( 90 void UsbTabHelper::GetChooserService(
85 content::RenderFrameHost* render_frame_host, 91 content::RenderFrameHost* render_frame_host,
86 mojo::InterfaceRequest<device::usb::ChooserService> request) { 92 mojo::InterfaceRequest<device::usb::ChooserService> request) {
87 FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host); 93 FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host);
88 if (!frame_usb_services->chooser_service) { 94 if (!frame_usb_services->chooser_service) {
89 frame_usb_services->chooser_service.reset( 95 frame_usb_services->chooser_service.reset(
96 #if defined(OS_ANDROID)
97 new WebUsbChooserServiceAndroid(render_frame_host));
98 #else
90 new WebUsbChooserService(render_frame_host)); 99 new WebUsbChooserService(render_frame_host));
100 #endif // defined(OS_ANDROID)
91 } 101 }
92 frame_usb_services->chooser_service->Bind(std::move(request)); 102 frame_usb_services->chooser_service->Bind(std::move(request));
93 } 103 }
94 #endif // !defined(OS_ANDROID)
OLDNEW
« no previous file with comments | « chrome/browser/usb/usb_tab_helper.h ('k') | chrome/browser/usb/web_usb_histograms.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698