| Index: extensions/common/permissions/usb_device_permission.h
|
| diff --git a/extensions/common/permissions/usb_device_permission.h b/extensions/common/permissions/usb_device_permission.h
|
| index 2658011861d09082a6bd3d98cce80dfc55655aea..464ce71fd35eb83e2e520d78ba018dd244459b67 100644
|
| --- a/extensions/common/permissions/usb_device_permission.h
|
| +++ b/extensions/common/permissions/usb_device_permission.h
|
| @@ -7,24 +7,53 @@
|
|
|
| #include <stdint.h>
|
|
|
| +#include <memory>
|
| +#include <set>
|
| +
|
| #include "extensions/common/permissions/api_permission.h"
|
| #include "extensions/common/permissions/set_disjunction_permission.h"
|
| #include "extensions/common/permissions/usb_device_permission_data.h"
|
|
|
| namespace extensions {
|
|
|
| +class Extension;
|
| +
|
| class UsbDevicePermission
|
| : public SetDisjunctionPermission<UsbDevicePermissionData,
|
| UsbDevicePermission> {
|
| public:
|
| struct CheckParam : public APIPermission::CheckParam {
|
| - CheckParam(uint16_t vendor_id, uint16_t product_id, int interface_id)
|
| - : vendor_id(vendor_id),
|
| - product_id(product_id),
|
| - interface_id(interface_id) {}
|
| + static std::unique_ptr<CheckParam> ForUsbDevice(
|
| + const Extension* extension,
|
| + const device::UsbDevice* device);
|
| + static std::unique_ptr<CheckParam> ForDeviceWithAnyInterfaceClass(
|
| + const Extension* extension,
|
| + uint16_t vendor_id,
|
| + uint16_t product_id,
|
| + int interface_id);
|
| + static std::unique_ptr<CheckParam> ForUsbDeviceAndInterface(
|
| + const Extension* extension,
|
| + const device::UsbDevice* device,
|
| + int interface_id);
|
| + static std::unique_ptr<CheckParam> ForHidDevice(const Extension* extension,
|
| + uint16_t vendor_id,
|
| + uint16_t product_id);
|
| +
|
| + CheckParam(const Extension* extesnion,
|
| + uint16_t vendor_id,
|
| + uint16_t product_id,
|
| + std::unique_ptr<std::set<int>> interface_classes,
|
| + int interface_id);
|
| + ~CheckParam();
|
| +
|
| const uint16_t vendor_id;
|
| const uint16_t product_id;
|
| + const std::unique_ptr<std::set<int>> interface_classes;
|
| const int interface_id;
|
| + const bool interface_class_allowed;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(CheckParam);
|
| };
|
|
|
| explicit UsbDevicePermission(const APIPermissionInfo* info);
|
|
|