summaryrefslogtreecommitdiff
path: root/chromium/device
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-05-03 17:20:32 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-05-05 09:28:09 +0000
commitbb09965444b5bb20b096a291445170876225268d (patch)
treeb5f6596f7e6e941b1d7d72f0ce5181500c261529 /chromium/device
parent7324afb043a0b1e623d8e8eb906cdc53bdeb4685 (diff)
downloadqtwebengine-chromium-bb09965444b5bb20b096a291445170876225268d.tar.gz
BASELINE: Update Chromium to 58.0.3029.98
Change-Id: Ib913750d687f29e036959c62a0cabf2412a8faa7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/device')
-rw-r--r--chromium/device/usb/webusb_descriptors.cc10
-rw-r--r--chromium/device/usb/webusb_descriptors.h8
2 files changed, 15 insertions, 3 deletions
diff --git a/chromium/device/usb/webusb_descriptors.cc b/chromium/device/usb/webusb_descriptors.cc
index 57468182278..1bc243d114e 100644
--- a/chromium/device/usb/webusb_descriptors.cc
+++ b/chromium/device/usb/webusb_descriptors.cc
@@ -576,7 +576,9 @@ void ReadWebUsbDescriptors(scoped_refptr<UsbDeviceHandle> device_handle,
bool FindInWebUsbAllowedOrigins(
const device::WebUsbAllowedOrigins* allowed_origins,
- const GURL& origin) {
+ const GURL& origin,
+ base::Optional<uint8_t> config_value,
+ base::Optional<uint8_t> first_interface) {
if (!allowed_origins)
return false;
@@ -584,10 +586,16 @@ bool FindInWebUsbAllowedOrigins(
return true;
for (const auto& config : allowed_origins->configurations) {
+ if (config_value && *config_value != config.configuration_value)
+ continue;
+
if (base::ContainsValue(config.origins, origin))
return true;
for (const auto& function : config.functions) {
+ if (first_interface && *first_interface != function.first_interface)
+ continue;
+
if (base::ContainsValue(function.origins, origin))
return true;
}
diff --git a/chromium/device/usb/webusb_descriptors.h b/chromium/device/usb/webusb_descriptors.h
index c88b1f97389..34a7d614ca0 100644
--- a/chromium/device/usb/webusb_descriptors.h
+++ b/chromium/device/usb/webusb_descriptors.h
@@ -12,6 +12,7 @@
#include "base/callback_forward.h"
#include "base/memory/ref_counted.h"
+#include "base/optional.h"
#include "url/gurl.h"
namespace device {
@@ -70,10 +71,13 @@ void ReadWebUsbDescriptors(
void(std::unique_ptr<WebUsbAllowedOrigins> allowed_origins,
const GURL& landing_page)>& callback);
-// Check if the origin is allowed.
+// Check if the origin is allowed to access a given device, optionally filtering
+// by configuration and function.
bool FindInWebUsbAllowedOrigins(
const device::WebUsbAllowedOrigins* allowed_origins,
- const GURL& origin);
+ const GURL& origin,
+ base::Optional<uint8_t> configuration_value,
+ base::Optional<uint8_t> first_interface);
} // device