summaryrefslogtreecommitdiffstats
path: root/chrome/browser/usb/usb_tab_helper.cc
diff options
context:
space:
mode:
authorreillyg <reillyg@chromium.org>2016-03-04 15:29:41 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-04 23:30:56 +0000
commitd6d8ce13c1ab8141e85717f5832c4ad1af3128bb (patch)
tree3b3a395d6eb2d85cd37414b1b25b8ad31c80b1d9 /chrome/browser/usb/usb_tab_helper.cc
parent765e7b178b46af51727af1972fa08e1fd902f08a (diff)
downloadchromium_src-d6d8ce13c1ab8141e85717f5832c4ad1af3128bb.zip
chromium_src-d6d8ce13c1ab8141e85717f5832c4ad1af3128bb.tar.gz
chromium_src-d6d8ce13c1ab8141e85717f5832c4ad1af3128bb.tar.bz2
Convert the PermissionProvider Mojo interface to plain C++.
This interface allows a separate Mojo service to provide permissions management for a DeviceManager instance. This will be useful if USB device handling is ever moved into a separate process but until then it adds needless complexity to the implementation because access checks are made asynchronous. Make it a normal C++ interface for now. BUG=None Review URL: https://codereview.chromium.org/1742333003 Cr-Commit-Position: refs/heads/master@{#379393}
Diffstat (limited to 'chrome/browser/usb/usb_tab_helper.cc')
-rw-r--r--chrome/browser/usb/usb_tab_helper.cc14
1 files changed, 5 insertions, 9 deletions
diff --git a/chrome/browser/usb/usb_tab_helper.cc b/chrome/browser/usb/usb_tab_helper.cc
index 8e235e4..91977fd 100644
--- a/chrome/browser/usb/usb_tab_helper.cc
+++ b/chrome/browser/usb/usb_tab_helper.cc
@@ -38,11 +38,8 @@ void UsbTabHelper::CreateDeviceManager(
RenderFrameHost* render_frame_host,
mojo::InterfaceRequest<device::usb::DeviceManager> request) {
DCHECK(WebContents::FromRenderFrameHost(render_frame_host) == web_contents());
- device::usb::PermissionProviderPtr permission_provider;
- GetPermissionProvider(render_frame_host,
- mojo::GetProxy(&permission_provider));
- device::usb::DeviceManagerImpl::Create(std::move(permission_provider),
- std::move(request));
+ device::usb::DeviceManagerImpl::Create(
+ GetPermissionProvider(render_frame_host), std::move(request));
}
#if !defined(OS_ANDROID)
@@ -73,15 +70,14 @@ FrameUsbServices* UsbTabHelper::GetFrameUsbService(
return it->second.get();
}
-void UsbTabHelper::GetPermissionProvider(
- RenderFrameHost* render_frame_host,
- mojo::InterfaceRequest<device::usb::PermissionProvider> request) {
+base::WeakPtr<device::usb::PermissionProvider>
+UsbTabHelper::GetPermissionProvider(RenderFrameHost* render_frame_host) {
FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host);
if (!frame_usb_services->permission_provider) {
frame_usb_services->permission_provider.reset(
new WebUSBPermissionProvider(render_frame_host));
}
- frame_usb_services->permission_provider->Bind(std::move(request));
+ return frame_usb_services->permission_provider->GetWeakPtr();
}
#if !defined(OS_ANDROID)