OLD | NEW |
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/web_usb_permission_provider.h" | 5 #include "chrome/browser/usb/web_usb_permission_provider.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
8 | 9 |
9 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/usb/usb_chooser_context.h" | 11 #include "chrome/browser/usb/usb_chooser_context.h" |
11 #include "chrome/browser/usb/usb_chooser_context_factory.h" | 12 #include "chrome/browser/usb/usb_chooser_context_factory.h" |
12 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
13 #include "content/public/browser/render_frame_host.h" | 14 #include "content/public/browser/render_frame_host.h" |
14 #include "content/public/browser/web_contents.h" | 15 #include "content/public/browser/web_contents.h" |
15 #include "device/core/device_client.h" | 16 #include "device/core/device_client.h" |
16 | 17 |
17 using content::WebContents; | 18 using content::WebContents; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 | 86 |
86 mojo::Array<mojo::String> allowed_guids(0); | 87 mojo::Array<mojo::String> allowed_guids(0); |
87 for (size_t i = 0; i < requested_devices.size(); ++i) { | 88 for (size_t i = 0; i < requested_devices.size(); ++i) { |
88 const device::usb::DeviceInfoPtr& device = requested_devices[i]; | 89 const device::usb::DeviceInfoPtr& device = requested_devices[i]; |
89 if (FindOriginInDescriptorSet(device->webusb_allowed_origins.get(), | 90 if (FindOriginInDescriptorSet(device->webusb_allowed_origins.get(), |
90 requesting_origin, nullptr, nullptr) && | 91 requesting_origin, nullptr, nullptr) && |
91 chooser_context->HasDevicePermission(requesting_origin, | 92 chooser_context->HasDevicePermission(requesting_origin, |
92 embedding_origin, device->guid)) | 93 embedding_origin, device->guid)) |
93 allowed_guids.push_back(device->guid); | 94 allowed_guids.push_back(device->guid); |
94 } | 95 } |
95 callback.Run(allowed_guids.Pass()); | 96 callback.Run(std::move(allowed_guids)); |
96 } | 97 } |
97 | 98 |
98 void WebUSBPermissionProvider::HasConfigurationPermission( | 99 void WebUSBPermissionProvider::HasConfigurationPermission( |
99 uint8_t requested_configuration_value, | 100 uint8_t requested_configuration_value, |
100 device::usb::DeviceInfoPtr device, | 101 device::usb::DeviceInfoPtr device, |
101 const HasInterfacePermissionCallback& callback) { | 102 const HasInterfacePermissionCallback& callback) { |
102 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 103 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
103 callback.Run(FindOriginInDescriptorSet( | 104 callback.Run(FindOriginInDescriptorSet( |
104 device->webusb_allowed_origins.get(), | 105 device->webusb_allowed_origins.get(), |
105 render_frame_host_->GetLastCommittedURL().GetOrigin(), | 106 render_frame_host_->GetLastCommittedURL().GetOrigin(), |
106 &requested_configuration_value, nullptr)); | 107 &requested_configuration_value, nullptr)); |
107 } | 108 } |
108 | 109 |
109 void WebUSBPermissionProvider::HasInterfacePermission( | 110 void WebUSBPermissionProvider::HasInterfacePermission( |
110 uint8_t requested_interface, | 111 uint8_t requested_interface, |
111 uint8_t configuration_value, | 112 uint8_t configuration_value, |
112 device::usb::DeviceInfoPtr device, | 113 device::usb::DeviceInfoPtr device, |
113 const HasInterfacePermissionCallback& callback) { | 114 const HasInterfacePermissionCallback& callback) { |
114 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 115 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
115 callback.Run(FindOriginInDescriptorSet( | 116 callback.Run(FindOriginInDescriptorSet( |
116 device->webusb_allowed_origins.get(), | 117 device->webusb_allowed_origins.get(), |
117 render_frame_host_->GetLastCommittedURL().GetOrigin(), | 118 render_frame_host_->GetLastCommittedURL().GetOrigin(), |
118 &configuration_value, &requested_interface)); | 119 &configuration_value, &requested_interface)); |
119 } | 120 } |
120 | 121 |
121 void WebUSBPermissionProvider::Bind( | 122 void WebUSBPermissionProvider::Bind( |
122 mojo::InterfaceRequest<device::usb::PermissionProvider> request) { | 123 mojo::InterfaceRequest<device::usb::PermissionProvider> request) { |
123 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 124 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
124 bindings_.AddBinding(this, request.Pass()); | 125 bindings_.AddBinding(this, std::move(request)); |
125 } | 126 } |
OLD | NEW |