| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ | 5 #ifndef EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ |
| 6 #define EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ | 6 #define EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> |
| 11 #include <set> |
| 12 |
| 10 #include "extensions/common/permissions/api_permission.h" | 13 #include "extensions/common/permissions/api_permission.h" |
| 11 #include "extensions/common/permissions/set_disjunction_permission.h" | 14 #include "extensions/common/permissions/set_disjunction_permission.h" |
| 12 #include "extensions/common/permissions/usb_device_permission_data.h" | 15 #include "extensions/common/permissions/usb_device_permission_data.h" |
| 13 | 16 |
| 14 namespace extensions { | 17 namespace extensions { |
| 15 | 18 |
| 19 class Extension; |
| 20 |
| 16 class UsbDevicePermission | 21 class UsbDevicePermission |
| 17 : public SetDisjunctionPermission<UsbDevicePermissionData, | 22 : public SetDisjunctionPermission<UsbDevicePermissionData, |
| 18 UsbDevicePermission> { | 23 UsbDevicePermission> { |
| 19 public: | 24 public: |
| 20 struct CheckParam : public APIPermission::CheckParam { | 25 struct CheckParam : public APIPermission::CheckParam { |
| 21 CheckParam(uint16_t vendor_id, uint16_t product_id, int interface_id) | 26 static std::unique_ptr<CheckParam> ForUsbDevice( |
| 22 : vendor_id(vendor_id), | 27 const Extension* extension, |
| 23 product_id(product_id), | 28 const device::UsbDevice* device); |
| 24 interface_id(interface_id) {} | 29 static std::unique_ptr<CheckParam> ForDeviceWithAnyInterfaceClass( |
| 30 const Extension* extension, |
| 31 uint16_t vendor_id, |
| 32 uint16_t product_id, |
| 33 int interface_id); |
| 34 static std::unique_ptr<CheckParam> ForUsbDeviceAndInterface( |
| 35 const Extension* extension, |
| 36 const device::UsbDevice* device, |
| 37 int interface_id); |
| 38 static std::unique_ptr<CheckParam> ForHidDevice(const Extension* extension, |
| 39 uint16_t vendor_id, |
| 40 uint16_t product_id); |
| 41 |
| 42 CheckParam(const Extension* extesnion, |
| 43 uint16_t vendor_id, |
| 44 uint16_t product_id, |
| 45 std::unique_ptr<std::set<int>> interface_classes, |
| 46 int interface_id); |
| 47 ~CheckParam(); |
| 48 |
| 25 const uint16_t vendor_id; | 49 const uint16_t vendor_id; |
| 26 const uint16_t product_id; | 50 const uint16_t product_id; |
| 51 const std::unique_ptr<std::set<int>> interface_classes; |
| 27 const int interface_id; | 52 const int interface_id; |
| 53 const bool interface_class_allowed; |
| 54 |
| 55 private: |
| 56 DISALLOW_COPY_AND_ASSIGN(CheckParam); |
| 28 }; | 57 }; |
| 29 | 58 |
| 30 explicit UsbDevicePermission(const APIPermissionInfo* info); | 59 explicit UsbDevicePermission(const APIPermissionInfo* info); |
| 31 ~UsbDevicePermission() override; | 60 ~UsbDevicePermission() override; |
| 32 | 61 |
| 33 // SetDisjunctionPermission overrides. | 62 // SetDisjunctionPermission overrides. |
| 34 bool FromValue(const base::Value* value, | 63 bool FromValue(const base::Value* value, |
| 35 std::string* error, | 64 std::string* error, |
| 36 std::vector<std::string>* unhandled_permissions) override; | 65 std::vector<std::string>* unhandled_permissions) override; |
| 37 | 66 |
| 38 // APIPermission overrides | 67 // APIPermission overrides |
| 39 PermissionIDSet GetPermissions() const override; | 68 PermissionIDSet GetPermissions() const override; |
| 40 }; | 69 }; |
| 41 | 70 |
| 42 } // namespace extensions | 71 } // namespace extensions |
| 43 | 72 |
| 44 #endif // EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ | 73 #endif // EXTENSIONS_COMMON_PERMISSIONS_USB_DEVICE_PERMISSION_H_ |
| OLD | NEW |