summaryrefslogtreecommitdiffstats
path: root/device
diff options
context:
space:
mode:
authorrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-28 08:05:10 +0000
committerrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-28 08:05:10 +0000
commit2b2775d52044e81a7560ae742220631879b7bb82 (patch)
treea5668387f148aa0f5ea406d0ae48ea0d01cb3a1b /device
parent9205af997ead2ed499fdd7e575c27fcb4b9062e7 (diff)
downloadchromium_src-2b2775d52044e81a7560ae742220631879b7bb82.zip
chromium_src-2b2775d52044e81a7560ae742220631879b7bb82.tar.gz
chromium_src-2b2775d52044e81a7560ae742220631879b7bb82.tar.bz2
Block some HID devices from chrome.hid.
This blacklists some specific types of HID devices from being accessible to the chrome.hid API. Namely, any keyboard, mice, other pointer devices, or system control inputs (such as power and reset buttons) are blocked and cannot be enumerated or opened by the consumers of the API. BUG=355022 R=rpaquay Review URL: https://codereview.chromium.org/258733002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266482 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'device')
-rw-r--r--device/hid/hid_usage_and_page.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/device/hid/hid_usage_and_page.h b/device/hid/hid_usage_and_page.h
index e024b2b..98ac80d 100644
--- a/device/hid/hid_usage_and_page.h
+++ b/device/hid/hid_usage_and_page.h
@@ -46,6 +46,79 @@ struct HidUsageAndPage {
kPageMediaCenter = 0xFFBC
};
+ // These usage enumerations are derived from the HID Usage Tables v1.11 spec.
+ enum GenericDesktopUsage {
+ kGenericDesktopUndefined = 0,
+ kGenericDesktopPointer = 1,
+ kGenericDesktopMouse = 2,
+ kGenericDesktopJoystick = 4,
+ kGenericDesktopGamePad = 5,
+ kGenericDesktopKeyboard = 6,
+ kGenericDesktopKeypad = 7,
+ kGenericDesktopMultiAxisController = 8,
+ kGenericDesktopX = 0x30,
+ kGenericDesktopY = 0x31,
+ kGenericDesktopZ = 0x32,
+ kGenericDesktopRx = 0x33,
+ kGenericDesktopRy = 0x34,
+ kGenericDesktopRz = 0x35,
+ kGenericDesktopSlider = 0x36,
+ kGenericDesktopDial = 0x37,
+ kGenericDesktopWheel = 0x38,
+ kGenericDesktopHatSwitch = 0x39,
+ kGenericDesktopCountedBuffer = 0x3a,
+ kGenericDesktopByteCount = 0x3b,
+ kGenericDesktopMotionWakeup = 0x3c,
+ kGenericDesktopStart = 0x3d,
+ kGenericDesktopSelect = 0x3e,
+ kGenericDesktopVx = 0x40,
+ kGenericDesktopVy = 0x41,
+ kGenericDesktopVz = 0x42,
+ kGenericDesktopVbrx = 0x43,
+ kGenericDesktopVbry = 0x44,
+ kGenericDesktopVbrz = 0x45,
+ kGenericDesktopVno = 0x46,
+
+ kGenericDesktopSystemControl = 0x80,
+ kGenericDesktopSystemPowerDown = 0x81,
+ kGenericDesktopSystemSleep = 0x82,
+ kGenericDesktopSystemWakeUp = 0x83,
+ kGenericDesktopSystemContextMenu = 0x84,
+ kGenericDesktopSystemMainMenu = 0x85,
+ kGenericDesktopSystemAppMenu = 0x86,
+ kGenericDesktopSystemMenuHelp = 0x87,
+ kGenericDesktopSystemMenuExit = 0x88,
+ kGenericDesktopSystemMenuSelect = 0x89,
+ kGenericDesktopSystemMenuRight = 0x8a,
+ kGenericDesktopSystemMenuLeft = 0x8b,
+ kGenericDesktopSystemMenuUp = 0x8c,
+ kGenericDesktopSystemMenuDown = 0x8d,
+ kGenericDesktopSystemColdRestart = 0x8e,
+ kGenericDesktopSystemWarmRestart = 0x8f,
+
+ kGenericDesktopDPadUp = 0x90,
+ kGenericDesktopDPadDown = 0x91,
+ kGenericDesktopDPadLeft = 0x92,
+ kGenericDesktopDPadRight = 0x93,
+
+ kGenericDesktopSystemDock = 0xa0,
+ kGenericDesktopSystemUndock = 0xa1,
+ kGenericDesktopSystemSetup = 0xa2,
+ kGenericDesktopSystemBreak = 0xa3,
+ kGenericDesktopSystemDebuggerBreak = 0xa4,
+ kGenericDesktopApplicationBreak = 0xa5,
+ kGenericDesktopApplicationDebuggerBreak = 0xa6,
+ kGenericDesktopSystemSpeakerMute = 0xa7,
+ kGenericDesktopSystemHibernate = 0xa8,
+ kGenericDesktopSystemDisplayInvert = 0xb0,
+ kGenericDesktopSystemDisplayInternal = 0xb1,
+ kGenericDesktopSystemDisplayExternal = 0xb2,
+ kGenericDesktopSystemDisplayBoth = 0xb3,
+ kGenericDesktopSystemDisplayDual = 0xb4,
+ kGenericDesktopSystemDisplayToggle = 0xb5,
+ kGenericDesktopSystemDisplaySwap = 0xb6,
+ };
+
HidUsageAndPage(uint16_t usage, Page usage_page)
: usage(usage), usage_page(usage_page) {}
~HidUsageAndPage() {}