diff options
| author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-05-03 17:20:32 +0200 |
|---|---|---|
| committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-05-05 09:28:09 +0000 |
| commit | bb09965444b5bb20b096a291445170876225268d (patch) | |
| tree | b5f6596f7e6e941b1d7d72f0ce5181500c261529 /chromium/device | |
| parent | 7324afb043a0b1e623d8e8eb906cdc53bdeb4685 (diff) | |
| download | qtwebengine-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.cc | 10 | ||||
| -rw-r--r-- | chromium/device/usb/webusb_descriptors.h | 8 |
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 |
