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

Unified Diff: chrome/browser/usb/web_usb_permission_provider.cc

Issue 1854483002: Remove WebUSB descriptor data from device.mojom. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use_interface_associations
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/usb/web_usb_permission_provider.cc
diff --git a/chrome/browser/usb/web_usb_permission_provider.cc b/chrome/browser/usb/web_usb_permission_provider.cc
index c0727eb1da6049b8832269728181063418eda0a2..caa087162908d7284e4fedf9b24ac22c52441f69 100644
--- a/chrome/browser/usb/web_usb_permission_provider.cc
+++ b/chrome/browser/usb/web_usb_permission_provider.cc
@@ -15,16 +15,14 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
-#include "device/usb/public/interfaces/device.mojom.h"
+#include "device/usb/usb_device.h"
+#include "device/usb/webusb_descriptors.h"
using content::WebContents;
-using device::usb::WebUsbDescriptorSet;
-using device::usb::WebUsbConfigurationSubsetPtr;
-using device::usb::WebUsbFunctionSubsetPtr;
namespace {
-bool FindOriginInDescriptorSet(const WebUsbDescriptorSet* set,
+bool FindOriginInDescriptorSet(const device::WebUsbAllowedOrigins* set,
const GURL& origin,
const uint8_t* configuration_value,
const uint8_t* first_interface) {
@@ -34,24 +32,19 @@ bool FindOriginInDescriptorSet(const WebUsbDescriptorSet* set,
if (!set)
return false;
- for (size_t i = 0; i < set->origins.size(); ++i)
- if (origin.spec() == set->origins[i])
- return true;
- for (size_t i = 0; i < set->configurations.size(); ++i) {
- const WebUsbConfigurationSubsetPtr& config = set->configurations[i];
+ if (ContainsValue(set->origins, origin))
juncai 2016/04/01 17:05:24 add header: #include "base/stl_util.h" for using C
Reilly Grant (use Gerrit) 2016/04/01 21:56:33 Done.
+ return true;
+ for (const auto& configuration : set->configurations) {
if (configuration_value &&
- *configuration_value != config->configuration_value)
+ *configuration_value != configuration.configuration_value)
continue;
- for (size_t j = 0; i < config->origins.size(); ++j)
- if (origin.spec() == config->origins[j])
- return true;
- for (size_t j = 0; j < config->functions.size(); ++j) {
- const WebUsbFunctionSubsetPtr& function = config->functions[j];
- if (first_interface && *first_interface != function->first_interface)
+ if (ContainsValue(configuration.origins, origin))
+ return true;
+ for (const auto& function : configuration.functions) {
+ if (first_interface && *first_interface != function.first_interface)
continue;
- for (size_t k = 0; k < function->origins.size(); ++k)
- if (origin.spec() == function->origins[k])
- return true;
+ if (ContainsValue(function.origins, origin))
+ return true;
}
}
return false;
@@ -74,7 +67,7 @@ WebUSBPermissionProvider::GetWeakPtr() {
}
bool WebUSBPermissionProvider::HasDevicePermission(
- const device::usb::DeviceInfo& device_info) const {
+ scoped_refptr<const device::UsbDevice> device) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
WebContents* web_contents =
WebContents::FromRenderFrameHost(render_frame_host_);
@@ -87,18 +80,18 @@ bool WebUSBPermissionProvider::HasDevicePermission(
UsbChooserContext* chooser_context =
UsbChooserContextFactory::GetForProfile(profile);
- return FindOriginInDescriptorSet(device_info.webusb_allowed_origins.get(),
+ return FindOriginInDescriptorSet(device->webusb_allowed_origins(),
requesting_origin, nullptr, nullptr) &&
chooser_context->HasDevicePermission(requesting_origin,
- embedding_origin, device_info);
+ embedding_origin, device);
}
bool WebUSBPermissionProvider::HasConfigurationPermission(
uint8_t requested_configuration_value,
- const device::usb::DeviceInfo& device_info) const {
+ scoped_refptr<const device::UsbDevice> device) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
return FindOriginInDescriptorSet(
- device_info.webusb_allowed_origins.get(),
+ device->webusb_allowed_origins(),
render_frame_host_->GetLastCommittedURL().GetOrigin(),
&requested_configuration_value, nullptr);
}
@@ -106,10 +99,10 @@ bool WebUSBPermissionProvider::HasConfigurationPermission(
bool WebUSBPermissionProvider::HasFunctionPermission(
uint8_t requested_function,
uint8_t configuration_value,
- const device::usb::DeviceInfo& device_info) const {
+ scoped_refptr<const device::UsbDevice> device) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
return FindOriginInDescriptorSet(
- device_info.webusb_allowed_origins.get(),
+ device->webusb_allowed_origins(),
render_frame_host_->GetLastCommittedURL().GetOrigin(),
&configuration_value, &requested_function);
}

Powered by Google App Engine
This is Rietveld 408576698