summaryrefslogtreecommitdiffstats
path: root/device/hid/hid_report_descriptor.cc
Commit message (Collapse)AuthorAgeFilesLines
* Include raw HID report descriptor in HID device info.reillyg2015-01-131-2/+2
| | | | | | | | | | | | | | | | This change includes the raw HID report descriptor in the HidDeviceInfo class and exposes it to apps and extensions using the chrome.hid API. For simplicity on OS X the platform APIs for collecting information from the report descriptor are no longer used and instead the parsing code from Linux is used. On Windows the raw HID report descriptor is not available because Windows exposes HID devices on a per-top-level collection basis. BUG=442818 Review URL: https://codereview.chromium.org/801833003 Cr-Commit-Position: refs/heads/master@{#311192}
* Fix type truncation warnings in HID code.pkasting2014-10-181-14/+16
| | | | | | | | | | | | | | | | GetShortData() and IOHIDElementGetUsage() both return uint32s, so raise the size of various containing types to uint32. I tried to look in the USB HID spec to see if any of the affected fields here were limited to e.g. <2^16, meaning that it'd be safe to just cast down to the existing uint16s instead, but I couldn't find any limits. BUG=81439 TEST=none Review URL: https://codereview.chromium.org/656583003 Cr-Commit-Position: refs/heads/master@{#300201}
* Store HID report sizes as uint16_t.reillyg2014-08-241-10/+10
| | | | | | | | | | | | | | | | HID report sizes are unsigned values. In addition they should (because of the limited size of USB control transfers) never be larger than 64k. In reality that would be an absolutely enormous report and unlikely to ever been seen in the wild. By limiting the storage size for report lengths to a uint16_t we therefore also limit our exposure to being convinced to allocate unreasonably large buffers by a malicious device. The Windows HID parser already limits report sizes to a USHORT value. BUG= Review URL: https://codereview.chromium.org/492963007 Cr-Commit-Position: refs/heads/master@{#291624}
* hid: Remove size from receive APIs and return report ID separately.reillyg@chromium.org2014-07-281-20/+4
| | | | | | | | | | | | | | | | | | | The size parameter is unnecessary when calling chrome.hid.receive and chrome.hid.receiveFeatureReport because, since the caller does not know which report ID will be returned, it should always be set to the maximum input or feature report size provided by the device. The size of the report ID is now not included in the maximum report sizes for the device since it no longer effects buffer size. In addition increase consistency by always providing the report ID to the chrome.hid.receive callback instead of including it as the first byte of the data buffer only if it is non-zero. BUG= Review URL: https://codereview.chromium.org/413913003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285989 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 281282 "Revert 281133 "chrome.hid: enrich model with repo..."csharp@chromium.org2014-07-031-29/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests still failed, undoing revert. > Revert 281133 "chrome.hid: enrich model with report IDs" > > Speculative revert to try and fix Win browser tests. > > > chrome.hid: enrich model with report IDs > > > > - add report IDs and max report size > > - don't expose sensitive usages > > > > BUG=364423 > > R=rockot@chromium.org > > TESTS=run device_unittests (HidReportDescriptorTest) > > > > Review URL: https://codereview.chromium.org/317783010 > > TBR=jracle@logitech.com > > Review URL: https://codereview.chromium.org/369923002 TBR=csharp@chromium.org Review URL: https://codereview.chromium.org/364213005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281300 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 281133 "chrome.hid: enrich model with report IDs"csharp@chromium.org2014-07-031-141/+29
| | | | | | | | | | | | | | | | | | | | | Speculative revert to try and fix Win browser tests. > chrome.hid: enrich model with report IDs > > - add report IDs and max report size > - don't expose sensitive usages > > BUG=364423 > R=rockot@chromium.org > TESTS=run device_unittests (HidReportDescriptorTest) > > Review URL: https://codereview.chromium.org/317783010 TBR=jracle@logitech.com Review URL: https://codereview.chromium.org/369923002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281282 0039d316-1c4b-4281-b951-d872f2087c98
* chrome.hid: enrich model with report IDsjracle@logitech.com2014-07-031-29/+141
| | | | | | | | | | | | | - add report IDs and max report size - don't expose sensitive usages BUG=364423 R=rockot@chromium.org TESTS=run device_unittests (HidReportDescriptorTest) Review URL: https://codereview.chromium.org/317783010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281133 0039d316-1c4b-4281-b951-d872f2087c98
* HID: Support top-level collection usages in device info.rockot@chromium.org2014-04-251-0/+61
This CL exists as an effort to actually land https://codereview.chromium.org/225513005/. This applies a small fix to the hid_service_win.cc module. BUG=359560 TBR=rpaquay TBR=jracle@logitech.com Review URL: https://codereview.chromium.org/256673002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266066 0039d316-1c4b-4281-b951-d872f2087c98