summaryrefslogtreecommitdiffstats
path: root/device
Commit message (Collapse)AuthorAgeFilesLines
* Use USE_UDEV instead of OS_LINUX when trying to use Udev functionalitydnicoara2014-09-262-7/+7
| | | | | | | | | | Fixes the Ozone builder where udev isn't available. BUG=none Review URL: https://codereview.chromium.org/604143002 Cr-Commit-Position: refs/heads/master@{#296866}
* Move string descriptor getters from UsbDeviceHandle to UsbDevice.reillyg2014-09-2511-220/+309
| | | | | | | | | | | | | | | | | | The common string descriptors: iManufacturer, iProduct and iSerialNumber should be accessible without opening the device. On Linux these can be read out of sysfs without having access to the usbfs device node. This is critical on Chrome OS because otherwise the permission broker needs to be asked for permission to access the device. On other platforms we fall back to opening the device temporarily. This will stop being the case on OS X when libusb is no longer used and on Windows this will be part of the initial enumeration process. BUG= TBR=dgozman@chromium.org Review URL: https://codereview.chromium.org/601073002 Cr-Commit-Position: refs/heads/master@{#296802}
* Add serialization support to the JS DataSender and DataReceiver.sammc2014-09-253-1/+58
| | | | | | | | | | | | | To support persistent serial connections on mojo, serial.Connection and its dependencies must be serializable to mojo structs so it can be stashed. This adds serialization support to the two serial.Connection dependencies: DataSender and DataReceiver. BUG=389016 Review URL: https://codereview.chromium.org/571333002 Cr-Commit-Position: refs/heads/master@{#296658}
* Replace forward_dependent_configs with public_depsBrett Wilson2014-09-231-2/+1
| | | | | | | | | | | | This is the new name. It has the same meaning but additionally with a "you can use the headers" permission. Rename direct_dependent_configs to public_configs. This is the new name with identical meaning. TBR=jamesr Review URL: https://codereview.chromium.org/595073002 Cr-Commit-Position: refs/heads/master@{#296302}
* Remove implicit conversions from scoped_refptr to T* in device/dcheng2014-09-192-2/+2
| | | | | | | | | | | This patch was generated by running the rewrite_scoped_refptr clang tool on a Mac build. BUG=110610 Review URL: https://codereview.chromium.org/584083002 Cr-Commit-Position: refs/heads/master@{#295732}
* Add a service to track devices selected by the user.reillyg2014-09-195-75/+113
| | | | | | | | | | | | | | | | | apps::SavedDevicesService tracks USB devices that have been selected by the user in the context of a given extension. Devices that can be identified accurately after they have been reconnected because they have a serial number are written out to ExtensionPrefs. All others are only remembered until they are disconnected. A new OnDisconnect observer function has been added to UsbDevice to enable this monitoring. BUG=346953 Review URL: https://codereview.chromium.org/580963002 Cr-Commit-Position: refs/heads/master@{#295708}
* [Easy Unlock] Move the existing Bluetooth utility code into the component.isherman2014-09-181-0/+3
| | | | | | | | | | | BUG=413488 TEST=none R=tengs@chromium.org, yoz@chromium.org, keybuk@chromium.org TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/563993002 Cr-Commit-Position: refs/heads/master@{#295408}
* Remove ikarienator from OWNERS files.thestig2014-09-171-1/+1
| | | | | | | | NOTRY=true Review URL: https://codereview.chromium.org/582503002 Cr-Commit-Position: refs/heads/master@{#295350}
* Remove implicit conversions from scoped_refptr to T* in devicedcheng2014-09-153-15/+15
| | | | | | | | | | | This patch was generated by running the rewrite_scoped_refptr clang tool on a ChromeOS build. BUG=110610 Review URL: https://codereview.chromium.org/575503003 Cr-Commit-Position: refs/heads/master@{#294898}
* Do not open or close IOHIDManager's IOHIDDeviceRefs.reillyg2014-09-132-9/+23
| | | | | | | | | | | | | | The IOHIDManager object manages the IOHIDDevice instances that it creates. Calling IOHIDDeviceOpen on such an instance is a no-op and calling IOHIDDeviceClose prevents the IOHIDManager from tracking the lifetime of the device. The solution is to never open nor close these devices. BUG=413976 Review URL: https://codereview.chromium.org/568873003 Cr-Commit-Position: refs/heads/master@{#294735}
* Reland: Convert device::UsbConfigDescriptor and friends to structs.reillyg2014-09-1315-591/+341
| | | | | | | | | | | | | | | | | | | These classes do not need to be classes and expecially don't need to be abstract classes as this leads to a complicated implementation and complicated tests. All USB devices no matter the platform will have the same descriptor data. This change follows the model of device::HidDeviceInfo. Relanding this patch (reverted in crrev.com/294640) after restoring the call to libusb_free_config_descriptor that was removed during refactoring and caused failures in the Linux ASan LSan tests. BUG= Review URL: https://codereview.chromium.org/568943002 Cr-Commit-Position: refs/heads/master@{#294734}
* Cleanup: Use base/files/file_util.h instead of base/file_util.h in [c-n]*/thestig2014-09-131-1/+1
| | | | | | | | | TBR=cpu@chromium.org,jochen@chromium.org,piman@chromium.org,rockot@chromium.org,rsleevi@chromium.org,vrk@chromium.org ,zea@chromium.org Review URL: https://codereview.chromium.org/563173002 Cr-Commit-Position: refs/heads/master@{#294712}
* Revert of Convert device::UsbConfigDescriptor and friends to structs. ↵weitaosu2014-09-1215-339/+591
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:60001 of https://codereview.chromium.org/562763002/) Reason for revert: This broken the Linux ASan LSan Tests: http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%283%29/builds/7506 http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/5717 Sample callstacks: Direct leak of 400 byte(s) in 10 object(s) allocated from: #0 0x55c6eb in __interceptor_malloc (/b/build/slave/Linux_ASan_LSan_Tests__3_/build/src/out/Release/browser_tests+0x55c6eb) #1 0xab24bb8 in raw_desc_to_config third_party/libusb/src/libusb/descriptor.c:501:45 #2 0xab24ab9 in libusb_get_active_config_descriptor third_party/libusb/src/libusb/descriptor.c:601:7 #3 0xab14aae in device::UsbDeviceImpl::GetConfiguration() device/usb/usb_device_impl.cc:199:9 #4 0xb37d57b in EnumerateOnFileThread(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>) chrome/browser/devtools/device/usb/android_usb_device.cc:262:42 #5 0xb38aebf in Run base/bind_internal.h:288:12 #6 0xb38aebf in base::internal::InvokeHelper\u003Cfalse, void, base::internal::RunnableAdapter\u003Cvoid (*)(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>)>, void (crypto::RSAPrivateKey* const&, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, base::MessageLoopProxy*)>::MakeItSo(base::internal::RunnableAdapter\u003Cvoid (*)(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>)>, crypto::RSAPrivateKey* const&, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, base::MessageLoopProxy*) base/bind_internal.h:927 #7 0x2d58bff in Run base/callback.h:401:12 #8 0x2d58bff in base::debug::TaskAnnotator::RunTask(char const*, char const*, base::PendingTask const&) base/debug/task_annotator.cc:62 #9 0x2ca519c in base::MessageLoop::RunTask(base::PendingTask const&) base/message_loop/message_loop.cc:446:3 #10 0x2ca629e in DeferOrRunPendingTask base/message_loop/message_loop.cc:456:5 #11 0x2ca629e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:565 #12 0x2c23ddf in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:232:21 #13 0x2cd57b4 in base::RunLoop::Run() base/run_loop.cc:49:3 #14 0x2ca39c4 in base::MessageLoop::Run() base/message_loop/message_loop.cc:308:3 #15 0x50fd018 in content::BrowserThreadImpl::FileThreadRun(base::MessageLoop*) content/browser/browser_thread_impl.cc:190:3 #16 0x50fdca7 in content::BrowserThreadImpl::Run(base::MessageLoop*) content/browser/browser_thread_impl.cc:244:14 #17 0x2d1ebc8 in base::Thread::ThreadMain() base/threading/thread.cc:228:5 #18 0x2d12b20 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:80:3 #19 0x7f4d560a3e99 in start_thread /build/buildd/eglibc-2.15/nptl/pthread_create.c:308 Direct leak of 400 byte(s) in 10 object(s) allocated from: #0 0x55c6eb in __interceptor_malloc (/b/build/slave/Linux_ASan_LSan_Tests__1_/build/src/out/Release/browser_tests+0x55c6eb) #1 0xab24bb8 in raw_desc_to_config third_party/libusb/src/libusb/descriptor.c:501:45 #2 0xab24ab9 in libusb_get_active_config_descriptor third_party/libusb/src/libusb/descriptor.c:601:7 #3 0xab14aae in device::UsbDeviceImpl::GetConfiguration() device/usb/usb_device_impl.cc:199:9 #4 0xb37d57b in EnumerateOnFileThread(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>) chrome/browser/devtools/device/usb/android_usb_device.cc:262:42 #5 0xb38aebf in Run base/bind_internal.h:288:12 #6 0xb38aebf in base::internal::InvokeHelper\u003Cfalse, void, base::internal::RunnableAdapter\u003Cvoid (*)(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>)>, void (crypto::RSAPrivateKey* const&, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, base::MessageLoopProxy*)>::MakeItSo(base::internal::RunnableAdapter\u003Cvoid (*)(crypto::RSAPrivateKey*, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, scoped_refptr\u003Cbase::MessageLoopProxy>)>, crypto::RSAPrivateKey* const&, base::Callback\u003Cvoid (std::__1::vector\u003Cscoped_refptr\u003CAndroidUsbDevice>, std::__1::allocator\u003Cscoped_refptr\u003CAndroidUsbDevice> > > const&)> const&, base::MessageLoopProxy*) base/bind_internal.h:927 #7 0x2d58bff in Run base/callback.h:401:12 #8 0x2d58bff in base::debug::TaskAnnotator::RunTask(char const*, char const*, base::PendingTask const&) base/debug/task_annotator.cc:62 #9 0x2ca519c in base::MessageLoop::RunTask(base::PendingTask const&) base/message_loop/message_loop.cc:446:3 #10 0x2ca629e in DeferOrRunPendingTask base/message_loop/message_loop.cc:456:5 #11 0x2ca629e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:565 #12 0x2c23ddf in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:232:21 #13 0x2cd57b4 in base::RunLoop::Run() base/run_loop.cc:49:3 #14 0x2ca39c4 in base::MessageLoop::Run() base/message_loop/message_loop.cc:308:3 #15 0x50fd018 in content::BrowserThreadImpl::FileThreadRun(base::MessageLoop*) content/browser/browser_thread_impl.cc:190:3 #16 0x50fdca7 in content::BrowserThreadImpl::Run(base::MessageLoop*) content/browser/browser_thread_impl.cc:244:14 #17 0x2d1ebc8 in base::Thread::ThreadMain() base/threading/thread.cc:228:5 #18 0x2d12b20 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:80:3 #19 0x7f4aef980e99 in start_thread /build/buildd/eglibc-2.15/nptl/pthread_create.c:308 Original issue's description: > Convert device::UsbConfigDescriptor and friends to structs. > > These classes do not need to be classes and expecially don't need to be > abstract classes as this leads to a complicated implementation and > complicated tests. All USB devices no matter the platform will have the > same descriptor data. > > This change follows the model of device::HidDeviceInfo. > > BUG= > > Committed: https://crrev.com/be9e363a3af57bd313fbb96ec3b5fa02cef769b5 > Cr-Commit-Position: refs/heads/master@{#294594} TBR=dgozman@chromium.org,rockot@chromium.org,rpaquay@chromium.org,pfeldman@chromium.org,reillyg@chromium.org NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/567003002 Cr-Commit-Position: refs/heads/master@{#294640}
* Convert device::UsbConfigDescriptor and friends to structs.reillyg2014-09-1215-591/+339
| | | | | | | | | | | | | | | These classes do not need to be classes and expecially don't need to be abstract classes as this leads to a complicated implementation and complicated tests. All USB devices no matter the platform will have the same descriptor data. This change follows the model of device::HidDeviceInfo. BUG= Review URL: https://codereview.chromium.org/562763002 Cr-Commit-Position: refs/heads/master@{#294594}
* Make some fields non-nullable in serial.mojom and data_stream.mojom.sammc2014-09-114-14/+13
| | | | | | | | | | This also removes some null checks for the now non-nullable fields. BUG=407683 Review URL: https://codereview.chromium.org/562563002 Cr-Commit-Position: refs/heads/master@{#294277}
* Grant ownership of device things to reillygrockot2014-09-101-0/+1
| | | | | | | | | | BUG=None NOTRY=True TBR=rpaquay@chromium.org Review URL: https://codereview.chromium.org/557123003 Cr-Commit-Position: refs/heads/master@{#294073}
* Mark gtest and gmock as testonly in GN.Brett Wilson2014-09-081-0/+1
| | | | | | | | | | | This updates the targets that depend on these to also be test-only. BUG=http://crbug.com/412064 R=jamesr@chromium.org, tfarina@chromium.org Review URL: https://codereview.chromium.org/551933002 Cr-Commit-Position: refs/heads/master@{#293808}
* Fix a crash in SerialIoHandler.sammc2014-09-081-6/+7
| | | | | | | | | | | | | | | | | When a receive error occurs, the SerialConnection pauses receives, which triggers a call to CancelRead(). This should be a no-op as this occurs after the previous read completed with an error, but pending_read_buffer_ isn't cleared until after the error is reported to SerialConnection. Thus, on posix, a call to ReadDone is enqueued, but the pending read is cleared before it runs, leading to a crash. This change clears pending_read_buffer_ and pending_write_buffer_ before calling Done() or DoneWithError(). BUG=410331 Review URL: https://codereview.chromium.org/551713002 Cr-Commit-Position: refs/heads/master@{#293684}
* Make the device::HidService destructor protected.reillyg2014-09-063-11/+11
| | | | | | | | | | | | This prevents anything other than device::HidService::Destroyer from calling the destructor. For example, scoped_ptr, as was the case in HidConnectionTest. BUG= Review URL: https://codereview.chromium.org/542153004 Cr-Commit-Position: refs/heads/master@{#293623}
* Move tools/usb_gadget.gyp to tools/usb_gadget/usb_gadget.gyp.reillyg2014-09-061-1/+1
| | | | | | | | | | | This placement more closely matches the GN layout. BUG=None R=rockot@chromium.org,tfarina@chromium.org Review URL: https://codereview.chromium.org/526593003 Cr-Commit-Position: refs/heads/master@{#293622}
* Move system.* family of APIs to extensions/thiago.santos2014-09-051-0/+1
| | | | | | | | | | | | As side effect, this APIs will also be available for the app_shell. The patch also removes the dependence this API has on the g_browser_process and thus, no longer will depend on chrome/. BUG=392842 Review URL: https://codereview.chromium.org/389633002 Cr-Commit-Position: refs/heads/master@{#293512}
* Fix HidService lifetime issuesrockot2014-09-058-18/+59
| | | | | | | | | | | This reverts HidService to being a singleton instance for now. BUG=401234 TBR=rpaquay Review URL: https://codereview.chromium.org/523743005 Cr-Commit-Position: refs/heads/master@{#293464}
* Random fixes for scoped_refptr operator T* removal.dcheng2014-09-051-8/+8
| | | | | | | | | BUG=110610 TBR=caitkp, michaeln, rockot, sievers, sky, willchan Review URL: https://codereview.chromium.org/543893002 Cr-Commit-Position: refs/heads/master@{#293453}
* Hook up resources to the chrome GN build.Brett Wilson2014-09-041-1/+0
| | | | | | | | | | | | | | | | It also hooks up libpdf which chrome requires at startup. Adds the enable_hidpi and use_athena build flags. Adds a locales list. This makes the chrome target actually runnable from a GN build. R=jamesr@chromium.org Review URL: https://codereview.chromium.org/541153002 Cr-Commit-Position: refs/heads/master@{#293360}
* USB interrupt and bulk transfer tests using an echo gadget.reillyg2014-09-044-4/+171
| | | | | | | | | | | | | Add tests for interrupt and bulk USB transfers using a gadget device that echos packets back to the host. This change depends on the removal of the //content dependency in usb_service so that it no longer depends explicitly on BrowserThread::FILE for I/O operations. BUG= Review URL: https://codereview.chromium.org/516003002 Cr-Commit-Position: refs/heads/master@{#293324}
* Fixups in components/ for scoped_refptr operator T* removal.dcheng2014-09-042-3/+6
| | | | | | | | | BUG=110610 TBR=rpaquay@chromium.org Review URL: https://codereview.chromium.org/536623003 Cr-Commit-Position: refs/heads/master@{#293255}
* Merge components/usb_service into device/usb.reillyg2014-09-0430-27/+2727
| | | | | | | | | | | Unify these two parts of out USB device support. The //device tree is the cannonical location for hardware device APIs. BUG= Review URL: https://codereview.chromium.org/497363004 Cr-Commit-Position: refs/heads/master@{#293246}
* Add more generic filters to the chrome.hid.getDevices API.reillyg2014-08-296-0/+253
| | | | | | | | | | | | | | Instead of specifying each of the USB vendor and product ID pairs an app has permission to open this API extension allows filtering of devices by vendor and product IDs as well as HID usage pages and usages. The 'vendorId' and 'productId' properties of GetDevicesOptions are still supported for backwards compatibility. BUG= Review URL: https://codereview.chromium.org/514923002 Cr-Commit-Position: refs/heads/master@{#292577}
* Remove BrowserThread dependency from usb_service.reillyg2014-08-295-1/+110
| | | | | | | | | | | | | | | | | Instead of explicitly depending on specific browser threads the USB service can assume that it is instantiated on BrowserThread::FILE (or equivalent) and save a TaskRunner reference from this instantiation for later use when called from other threads. To reach BrowserThread::UI (required for DBus on Chrome OS) a reference to the appropriate TaskRunner must be provided when calling UsbService::GetInstance(). BUG= Review URL: https://codereview.chromium.org/507503002 Cr-Commit-Position: refs/heads/master@{#292546}
* Remove implicit conversions from scoped_refptr to T* in device/dcheng2014-08-2810-14/+14
| | | | | | | | | | | This patch was generated by running the rewrite_scoped_refptr clang tool on a Linux build. BUG=110610 Review URL: https://codereview.chromium.org/507053002 Cr-Commit-Position: refs/heads/master@{#292298}
* Revert of Adding Select Action Bar Unit test case for input (patchset #3 of ↵Albert J. Wong2014-08-284-50/+10
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/506423003/) Reason for revert: Failed compile on Android builders. Original issue's description: > [Android] Add unit tests for SelectActionBar appearance > > The SelectActionBar currently lacks test coverage. Add several test > cases covering the appearance of the bar when interacting with an input > field. > > Committed: https://chromium.googlesource.com/chromium/src/+/0bc56569817a24acea46748c599d77b59157d84d BR=jdduke@chromium.org,aurimas@chromium.org,ajith.v@samsung.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/514493004 Cr-Commit-Position: refs/heads/master@{#292276}
* Fix HidService lifetime issues.rockot2014-08-274-10/+50
| | | | | | | | | | | | | | | | | | | This reverts HidService to a singleton instance, adding two gross and presently hard-to-avoid properties: 1. Its instance getter takes a UI message loop proxy 2. Its lifetime is bound by the message loop of its origin thread The purpose of this is to preserve the necessary threading discipline required by both the chrome.hid API implementation and the permission_broker DBus client while ensuring that the HidService is created and destroyed on the same thread. BUG=401234 Review URL: https://codereview.chromium.org/464753002 Cr-Commit-Position: refs/heads/master@{#292273}
* Implement the host side of serial connection I/O on data pipe.sammc2014-08-2711-115/+347
| | | | | | | | | | | | | | This change adds DataSource and DataSink interface request parameters to SerialService::Connect, passes them through to SerialConnection instances via SerialConnectionFactory; the SerialConnection now uses a DataSourceSender and a DataSinkReceiver for implementing serial receive and send, respectively. BUG=389016 Review URL: https://codereview.chromium.org/488363002 Cr-Commit-Position: refs/heads/master@{#292104}
* Part 3: Merged FakedDBusThreadManager with DBusThreadManager.zelidrag2014-08-274-29/+28
| | | | | | | | | | BUG=401192 TEST=existing tests TBR=sky,stevenjb,keybuk Review URL: https://codereview.chromium.org/477663004 Cr-Commit-Position: refs/heads/master@{#292072}
* Don't pass buffers to HidConnection::Read because it knows the size.reillyg2014-08-269-405/+403
| | | | | | | | | | | | | | | | | | The HidConnection knows the appropriate read buffer size and the platform-specific implementation may already have a buffer that it is waiting to return to the next caller. Passing a buffer in is therefore unnecessary, one can be provided in the callback. By standardizing on a buffer format which always includes the report ID as the first byte (even when it is zero) most of the buffer copying can be removed except in the case of OS X's persistent read buffer and getting feature reports on Windows. BUG= Review URL: https://codereview.chromium.org/499713002 Cr-Commit-Position: refs/heads/master@{#291954}
* Mojom: Blanket change to mark all pointer/handle fields as nullable.yzshen2014-08-262-9/+9
| | | | | | | | | | | | | | | | | | The purpose is to make those APIs have the same semantics as before. And then we can selectively turn fields into non-nullable. Mojom files that are not included in this change: - surface-related files: the owner (jamesr) has landed some non-nullable fixes. It is possible that he has fully reviewed them. (I will confirm with him.) - test files: have been examined. BUG=324170 TEST=None Review URL: https://codereview.chromium.org/502853002 Cr-Commit-Position: refs/heads/master@{#291862}
* Store HID report sizes as uint16_t.reillyg2014-08-244-22/+22
| | | | | | | | | | | | | | | | 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}
* Find HID report IDs in output and feature reports on Windows.reillyg@chromium.org2014-08-222-43/+89
| | | | | | | | | | | | | | A device may only have HID output or feature reports. In this case we missed report IDs associated with this reports. This patch uses Window's HID descriptor parser to scan though all report types looking for HID collection information. BUG= Review URL: https://codereview.chromium.org/502573002 Cr-Commit-Position: refs/heads/master@{#291553} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291553 0039d316-1c4b-4281-b951-d872f2087c98
* [EasyUnlock] Add a private API for establishing an insecure Bluetooth ↵isherman@chromium.org2014-08-224-1/+37
| | | | | | | | | | | | | | | | | | | | connection. This is needed to avoid a pairing request prompt when connecting to a service on a system that tries to upgrade the connection from general bonding to general bonding with MITM protection, which according to Android and ChromeOS Bluetooth experts is the correct behavior. BUG=403069 TEST=chrome.easyUnlockPrivate.connectToBluetoothServiceInsecurely() should work just like chrome.bluetoothSocket.connect(), but not show a pairing request prompt when pairing with Android L. R=tengs@chromium.org, keybuk@chromium.org Review URL: https://codereview.chromium.org/491753002 Cr-Commit-Position: refs/heads/master@{#291353} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291353 0039d316-1c4b-4281-b951-d872f2087c98
* Mojo: Add PlatformSupport argument to mojo::embedder::Init().viettrungluu@chromium.org2014-08-201-2/+2
| | | | | | | | | | | | Also add InitWithSimplePlatformSupport() to test_embedder.h. Use that for all tests, for now (this won't be right in the long run). R=darin@chromium.org Review URL: https://codereview.chromium.org/489593004 Cr-Commit-Position: refs/heads/master@{#290856} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290856 0039d316-1c4b-4281-b951-d872f2087c98
* Mojom cpp bindings: Enable non-nullable check.yzshen@chromium.org2014-08-201-3/+3
| | | | | | | | | | BUG=324170 TEST=All tests pass Review URL: https://codereview.chromium.org/472083003 Cr-Commit-Position: refs/heads/master@{#290792} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290792 0039d316-1c4b-4281-b951-d872f2087c98
* Add data pipe wrappers to be used to implement serial send.sammc@chromium.org2014-08-199-0/+1256
| | | | | | | | | BUG=389016 Review URL: https://codereview.chromium.org/466623003 Cr-Commit-Position: refs/heads/master@{#290507} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290507 0039d316-1c4b-4281-b951-d872f2087c98
* Make udev target disappear on linux when use_udev==0spang@chromium.org2014-08-182-1/+9
| | | | | | | | | | | | | | | So we don't break builds that don't use it by running pkg-config, and so we don't accidently link against it when it is disabled. The embedded=1 build has OS=="linux" use_udev==0 for small devices such as the chromecast. BUG=403162 Review URL: https://codereview.chromium.org/467983002 Cr-Commit-Position: refs/heads/master@{#290377} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290377 0039d316-1c4b-4281-b951-d872f2087c98
* device/bluetooth: Release |adapter_| in BluetoothSocketChromeOS::Close.armansito@chromium.org2014-08-181-0/+9
| | | | | | | | | | | | | | | | | Calling close on a connected BluetoothSocketChromeOS instance posts a task on the socket thread, which holds a reference to the socket until the task is executed. Since the socket holds a reference to the BluetoothAdapter, this might cause the adapter to outlive DBusThreadManager during shut down. This patch addresses this issue by releasing the reference to the adapter during ::Close. BUG=400488 TEST=device_unittests, BluetoothTest app. R=isherman@chromium.org, keybuk@chromium.org Review URL: https://codereview.chromium.org/474753002 Cr-Commit-Position: refs/heads/master@{#290362} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290362 0039d316-1c4b-4281-b951-d872f2087c98
* Fix HID input report sizes on Windows for devices without report IDs.reillyg@chromium.org2014-08-186-15/+22
| | | | | | | | | | | | | | | | | | | | | Unlike Linux and OS X, Windows always writes a report ID into the buffer passed to ReadFile. If the device does not use report IDs the first byte of the buffer will always be zero. Because of this, and contrary to the MSDN documentation, the maximum report size reported in the HIDP_CAPS structure always includes a byte for the report ID. This patch fixes the interpretation of the values in HIDP_CAPS and the size of the buffer passed to ReadFile. To prevent uninitialized bytes from being passed back to an app when a shorter report is read the true number of bytes read is provided to the completion callback on all platforms. BUG=404253 Review URL: https://codereview.chromium.org/474273004 Cr-Commit-Position: refs/heads/master@{#290337} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290337 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Bluetooth Classic device polling issue.rpaquay@chromium.org2014-08-162-6/+44
| | | | | | | | | | | | | | | | | | | With the recent device polling changes (https://codereview.chromium.org/424093004/), any failure in enumerating devices/services prevents the background polling task from reporting changes (to avoid reporting inconsistent configuration). However, when devices are offline and polling is done in "discovery" mode, enumerating services fails because the underlying SDP request fails. The workaround if to ask for cached services only instead, so that at least the services already previously known are returned and the polling operation can succeed. BUG=396337 Review URL: https://codereview.chromium.org/476823003 Cr-Commit-Position: refs/heads/master@{#290061} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290061 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome.usbPrivate API for use by USB device WEBUI.reillyg@chromium.org2014-08-141-3/+16
| | | | | | | | | | | | | | | This private API exposes more information about connected USB devices than the public chrome.usb API. It is designed for use by WEBUI components that wish to display information about connected to devices to the user such as the dialog box shown by the proposed chrome.usb.getUserSelectedDevices API. BUG=346953 Review URL: https://codereview.chromium.org/463493006 Cr-Commit-Position: refs/heads/master@{#289530} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289530 0039d316-1c4b-4281-b951-d872f2087c98
* Added switch that let us 'un-stub' certain dbus clients.zelidrag@chromium.org2014-08-141-1/+4
| | | | | | | | | | | | | | | | | | | Usage: chrome --dbus-stub --dbus-unstub-clients=client_1[,client_2[,...]] where <client_n> is in from the set of (bluetooth, cras, cros_disks, cryptohome, debug_daemon, easy_unlock, lorgnette_manager, shill, gsm_sms, imageburner, introspectable, modem_messaging, nfc, permission_broker, power_manager, session_manager, sms, system_clock, update_engine) BUG=401192 TEST=manual + DBusClientBundle.UnstubFlagParser Review URL: https://codereview.chromium.org/444263002 Cr-Commit-Position: refs/heads/master@{#289485} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289485 0039d316-1c4b-4281-b951-d872f2087c98
* Add data pipe wrappers to be used to implement serial receive.sammc@chromium.org2014-08-1111-0/+1165
| | | | | | | | | BUG=389016 Review URL: https://codereview.chromium.org/437933002 Cr-Commit-Position: refs/heads/master@{#288692} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288692 0039d316-1c4b-4281-b951-d872f2087c98
* Ignore double cancels of serial reads and writes.sammc@chromium.org2014-08-111-2/+2
| | | | | | | | | | | | | | Previously, two CancelRead calls on the same message loop tick would cause QueueReadCompleted to be called twice, triggering a second call to ReadCompleted with pending_read_buffer_ cleared. With this change, extra calls to CancelRead and CancelWrite have no effect. BUG=401252 Review URL: https://codereview.chromium.org/461533002 Cr-Commit-Position: refs/heads/master@{#288653} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288653 0039d316-1c4b-4281-b951-d872f2087c98