| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Final blocker to wholly deleting base/memory/scoped_ptr.h.
BUG=554298
Review URL: https://codereview.chromium.org/1837483003
Cr-Commit-Position: refs/heads/master@{#383417}
|
|
|
|
|
|
|
|
|
|
| |
This patch added code to display a chooser UI on Android for WebUsb.
BUG=591735
Review URL: https://codereview.chromium.org/1739523002
Cr-Commit-Position: refs/heads/master@{#383351}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow up work from "bluetooth: android: Confirm the notify session after
the descriptor has been written." https://crrev.com/1712593002.
o Protects against reentrancy issue in OnStartNotifySessionSuccess
and OnStartNotifySessionError by swapping callbacks container.
o Adds unit test for StartNotifySession failure condition.
o Adds unit test for StartNotifySession after GATT objects deleted.
BUG=584369
Review URL: https://codereview.chromium.org/1779083002
Cr-Commit-Position: refs/heads/master@{#383285}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow up work from "bluetooth: android: Confirm the notify session after
the descriptor has been written." https://crrev.com/1712593002.
Support multiple descriptors with the same UUID.
BUG=584369, 576900
Review URL: https://codereview.chromium.org/1765773002
Cr-Commit-Position: refs/heads/master@{#383218}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The last in a series of patches putting input validation for the WebUSB
directly into Blink. This one adds bit vectors that track which
endpoints are available given the current set of claimed interfaces and
selected alternate interfaces.
BUG=593164
Review URL: https://codereview.chromium.org/1830833002
Cr-Commit-Position: refs/heads/master@{#383194}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The type converter for device::UsbInterfaceDescriptor neglected to set
interface_number on the new device::usb::InterfaceInfo. Aside from the
wrong data being exposed to apps now that Blink does more sanity
checking of API calls this breaks everything.
BUG=None
Review URL: https://codereview.chromium.org/1825303003
Cr-Commit-Position: refs/heads/master@{#382970}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DeviceManagerImpl::MaybeRunDeviceChangesCallback is supposed to wait
until there are changes to the set of connected devices before calling
the stored callback. A bug introduced in r379393 removed this check
which meant that calls to GetDeviceChanges would return immediately. As
most callers issue another call to this method when it returns this
would lead to an infinite loop.
This change adds a test case exercising this case.
BUG=None
Review URL: https://codereview.chromium.org/1826883002
Cr-Commit-Position: refs/heads/master@{#382924}
|
|
|
|
|
|
|
|
|
|
| |
Simplifying Objective-C. Only using MockCBPeripheral (and removing OCMock). Adding |using base::scoped_nsobject;|.
BUG=None
Review URL: https://codereview.chromium.org/1758863002
Cr-Commit-Position: refs/heads/master@{#382826}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a bluetooth low-energy (BLE) keyboard is paired with a
keyboard-less chrome os device, e.g., Mickey, on the OOBE screen and
a user uses a usb mouse to click the "Continue" button to proceed to
login screen, the bluetooth adapter of the device would be powered
off which makes the BLE keyboard un-usable.
The root cause of the issue is that a BLE device is not registered
under the bluetooth/hid subsystems in Linux as a classic bluetooth
device is. Instead, a BLE device is registered under the virtual
misc/hid subsystems. The OnContinueButtonClicked() in
hid_detection_screen.cc regards that there is no bluetooth device
used and thus switches off the bluetooth adapter.
For more details about an example BLE device in /dev/input/event2:
$ udevadm info -a /dev/input/event2
looking at device '/devices/virtual/misc/uhid/0005:0000:0000.0019/input/input26/event2':
...
looking at parent device '/devices/virtual/misc/uhid/0005:0000:0000.0019':
SUBSYSTEMS=="hid"
...
looking at parent device '/devices/virtual/misc/uhid':
SUBSYSTEMS=="misc"
...
For an example classic bluetooth device in /dev/input/event2:
$ udevadm info -a /dev/input/event2
looking at device '/devices/ff180000.serial/tty/ttyS0/hci0/hci0:11:23/0005:04E8:A006.0016/input/input23/event2':
...
looking at parent device '/devices/ff180000.serial/tty/ttyS0/hci0/hci0:11:23/0005:04E8:A006.0016':
SUBSYSTEMS=="hid"
...
looking at parent device '/devices/ff180000.serial/tty/ttyS0/hci0/hci0:11:23':
SUBSYSTEMS=="bluetooth"
...
This patch adds the additional condition about misc/hid subsystems
for BLE when determining bluetooth type.
BUG=chrome-os-partner:48868
TEST=Execute the steps below:
1. Boot a keyboard-less chrome os machine, e.g., Mickey, into OOBE.
2. Pair a BLE keyboard, e.g., Microsoft Universal Foldable Keyboard,
to the machine.
3. Plug in a usb mouse to click the "Continue" button on OOBE
to proceed to login screen.
4. Confirm that the bluetooth adapter is still powered on in the
system tray on the bottom right-hand corner and the BLE keyboard
works correctly.
Review URL: https://codereview.chromium.org/1820803002
Cr-Commit-Position: refs/heads/master@{#382781}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add GetUUIDs to device::BluetoothAdapter so that a client
can get the list of services registered on the adapter. This
can include standard profiles (e.g. A2DP) or UUIDs associated
with listening RFCOMM or L2CAP sockets.
BUG=b:26275233
R=rkc@chromium.org, scheib@chromium.org
Review URL: https://codereview.chromium.org/1781143002
Cr-Commit-Position: refs/heads/master@{#382641}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
device].
The former method is deprecated, the latter is not. They have the same
functionality.
https://developer.apple.com/library/mac/releasenotes/General/MacOSXLionAPIDiffs/IOBluetooth.html
BUG=592663
Review URL: https://codereview.chromium.org/1813533002
Cr-Commit-Position: refs/heads/master@{#381618}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Blink now tracks the currently selected device configuration and can
thus provide it as an IDL attribute without a getConfiguration() method
which has been removed.
This continues the trend of being able to handle errors in Blink before
calling methods on the Mojo interface.
BUG=593164
R=juncai@chromium.org
TBR=dgozman@chromium.org
Review URL: https://codereview.chromium.org/1784733002
Cr-Commit-Position: refs/heads/master@{#381288}
|
|
|
|
|
|
|
|
|
|
|
| |
Improve bluetooth_gatt_characteristic_unittest.cc readability
by keeping StartNotifySessions_ tests contiguous.
R=ortuno@chromium.org
Review URL: https://codereview.chromium.org/1784913004
Cr-Commit-Position: refs/heads/master@{#381109}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
written.
This change also implements WriteRemoteDescriptor and
ReadRemoteDescriptor. Because of this, I've also added quite a few
descriptor unit tests. These tests are pretty much the same as the
read/write tests for characteristics.
BUG=584369
Review URL: https://codereview.chromium.org/1712593002
Cr-Commit-Position: refs/heads/master@{#381088}
|
|
|
|
|
|
|
|
| |
BUG=566533
Review URL: https://codereview.chromium.org/1793983004
Cr-Commit-Position: refs/heads/master@{#381059}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch renamed the following three files:
web_usb_permission_bubble.cc/h -> web_usb_chooser_service.cc/h
//components/webusb/public/interfaces/webusb_permission_bubble.mojom ->
//device/usb/public/interfaces/chooser_service.mojom
The previous filenames are misleading and confusing,
since the word "bubble" in the original filename
is a Chrome UI concept, but these files are not UI
related. The new filenames better reflect the
responsibilities and roles of these files.
By moving
//components/webusb/public/interfaces/webusb_permission_bubble.mojom to
//device/usb/public/interfaces/chooser_service.mojom,
it removes the //components dependency of:
//content/renderer/usb/DEPS, the depencency breaks the DEP rule at:
//content/renderer/DEPS
This patch is a follow-up patch for:
https://codereview.chromium.org/1624573004/
The above patch is closed.
BUG=492204, 590268
Review URL: https://codereview.chromium.org/1742753002
Cr-Commit-Position: refs/heads/master@{#381004}
|
|
|
|
|
|
|
|
| |
BUG=520774
Review URL: https://codereview.chromium.org/1538173003
Cr-Commit-Position: refs/heads/master@{#380951}
|
|
|
|
|
|
|
|
|
|
| |
BUG=554298, 579269
R=danakj@chromium.org
TBR=avi@chromium.org,scheib@chromium.org,sdefresne@chromium.org
Review URL: https://codereview.chromium.org/1789723006
Cr-Commit-Position: refs/heads/master@{#380861}
|
|
|
|
|
|
|
|
|
|
|
| |
And what happens when the device doesn't have the expected
descriptor.
BUG=591864
Review URL: https://codereview.chromium.org/1758293003
Cr-Commit-Position: refs/heads/master@{#380538}
|
|
|
|
|
|
|
|
| |
BUG=554293
Review URL: https://codereview.chromium.org/1774443002
Cr-Commit-Position: refs/heads/master@{#380369}
|
|
|
|
|
|
|
|
|
| |
R=ortuno@chromium.org
BUG=None
Review URL: https://codereview.chromium.org/1472223002
Cr-Commit-Position: refs/heads/master@{#380229}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also removes the infinite recursion part of the ReferenceCycle test.
While it's nice not to crash like this, [unique.ptr.single.dtor] doesn't
actually require ~unique_ptr to reset the stored pointer to nullptr on
destruction. Thus, infinite recursion, while not useful, is allowed per
the spec.
BUG=554298,579269
Review URL: https://codereview.chromium.org/1763983002
Cr-Commit-Position: refs/heads/master@{#379962}
|
|
|
|
|
|
|
|
|
| |
BUG=585942
R=ben@chromium.org
Review URL: https://codereview.chromium.org/1765243002 .
Cr-Commit-Position: refs/heads/master@{#379839}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This interface allows a separate Mojo service to provide permissions
management for a DeviceManager instance. This will be useful if USB
device handling is ever moved into a separate process but until then it
adds needless complexity to the implementation because access checks are
made asynchronous. Make it a normal C++ interface for now.
BUG=None
Review URL: https://codereview.chromium.org/1742333003
Cr-Commit-Position: refs/heads/master@{#379393}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UsbChooserContext::HasDevicePermission was originally written to take
the device GUID. The problem with this is that it means that the
device::UsbDevice object has to be looked up based on that GUID and if
the device has been disconnected (as happens when trying to fire the
navigator.usb.ondisconnect event) then that lookup fails and so the
permission check always fails. Thus, no events are delivered. Instead,
since WebUsbPermissionProvider has it anyways, HasDevicePermission can
take the DeviceInfo object representing the device which has enough
information to do a permission check even if the device has been
disconnected.
BUG=None
Review URL: https://codereview.chromium.org/1747543002
Cr-Commit-Position: refs/heads/master@{#379161}
|
|
|
|
|
|
|
|
|
|
| |
This CL implements read & write remote GATT characteristic value for Windows and related unit tests.
BUG=579202
Review URL: https://codereview.chromium.org/1739383002
Cr-Commit-Position: refs/heads/master@{#379103}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also cleaned up a few stragglers from grepping the source: it's unclear
if these are just building with weird defines, don't build at all, only
build on obscure platforms, or something else… either way, Pass()
itself will be removed shortly after this.
BUG=557422
Review URL: https://codereview.chromium.org/1752233002
Cr-Commit-Position: refs/heads/master@{#378872}
|
|
|
|
|
|
|
|
|
| |
BUG=82385
R=scheib@chromium.org, thakis@chromium.org
Review URL: https://codereview.chromium.org/1745273005 .
Cr-Commit-Position: refs/heads/master@{#378627}
|
|
|
|
|
|
|
|
|
|
|
| |
This CL implements GetDescriptors() in BluetoothRemoteGattCharacteristicWin.
It also optimized previous codes by renaming interfaces, data structures and so on.
BUG=579202
Review URL: https://codereview.chromium.org/1728163006
Cr-Commit-Position: refs/heads/master@{#378552}
|
|
|
|
|
|
|
|
|
|
| |
Followup changes requested by tedchoc on https://codereview.chromium.org/1711393002
BUG=543060
Review URL: https://codereview.chromium.org/1745463002
Cr-Commit-Position: refs/heads/master@{#378022}
|
|
|
|
|
|
|
|
|
|
|
| |
Register for BluetoothAdapter.ACTION_STATE_CHANGED and reflect the
state changes in the device chooser dialog.
BUG=543060
Review URL: https://codereview.chromium.org/1711393002
Cr-Commit-Position: refs/heads/master@{#377982}
|
|
|
|
|
|
|
|
|
|
| |
This CL implements BluetoothRemoteGattServiceWin and related unit tests.
BUG=579202
Review URL: https://codereview.chromium.org/1690133002
Cr-Commit-Position: refs/heads/master@{#377893}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If libusb_close is called from the UsbEventHandler thread then it will
deadlock trying to reacquire libusb's open_devs_lock. To avoid this and
generally ensure that libusb calls happen on the FILE thread this patch
posts a task if the UsbDeviceHandleImpl destructor is not already
running on the FILE thread.
BUG=589592
Review URL: https://codereview.chromium.org/1736703002
Cr-Commit-Position: refs/heads/master@{#377821}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on linux
Two big changes:
1. On Linux, we check if Object Manager is supported before we try to initialize
the DBus clients. This solves the log spamming issue. On Chrome OS we initialize
the clients regardless of Object Manager support (we've always done this);
we keep the current behavior because by the time BluezDBusManager is
initialized Bluez is not ready and it appears as if Bluetooth is not supported
2. BluetoothAdapterBluez::CreateAdapter now takes a callback which runs after
we know whether Object Manager is supported or not and BluetoothAdapter is
initialized. Because of this change we fix all tests and users that assumed
BluetoothAdapterFactory::CreateAdapter was synchronous.
Design doc: https://docs.google.com/a/chromium.org/document/d/1xmMV7RsnEM6bejH-fYejAdE7q4BkucutuVFP7WI7mgY/edit?usp=sharing
BUG=583637
Review URL: https://codereview.chromium.org/1679983002
Cr-Commit-Position: refs/heads/master@{#377772}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL also renames the element type (WeakBinding/WeakInterfacePtr) to Element and hide them in the corresonding *Set class.
BUG=None
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Committed: https://crrev.com/632d319842096e6998d174e2f251865979ce2b72
Cr-Commit-Position: refs/heads/master@{#377384}
Review URL: https://codereview.chromium.org/1735583002
Cr-Commit-Position: refs/heads/master@{#377528}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BindingSet/InterfacePtrSet."
This reverts commit 632d319842096e6998d174e2f251865979ce2b72.
TBR=jam@chromium.org
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/1734803002 .
Cr-Commit-Position: refs/heads/master@{#377393}
|
|
|
|
|
|
|
|
|
|
|
| |
This CL also renames the element type (WeakBinding/WeakInterfacePtr) to Element and hide them in the corresonding *Set class.
BUG=None
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/1735583002
Cr-Commit-Position: refs/heads/master@{#377384}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds out of line copy constructors for classes that our
clang-plugin considers heavy. This is an effort to enable copy
constructor checks by default.
BUG=436357
R=reillyg@chromium.org, dcheng@chromium.org, thakis@chromium.org
Review URL: https://codereview.chromium.org/1729843003
Cr-Commit-Position: refs/heads/master@{#377367}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In OOBE, the device type is determined exclusively based on the
bluetooth class. However, some keyboards do not advertise the
bluetooth class. Instead, the bluetooth appearance is advertised.
This patch utilizes the bluetooth appearance to determine the
device type if the bluetooth class information is missing.
Note that this patch only takes effect on keyboard-less devices
such as Mickey and Monroe.
BUG=578337, 546616
TEST=Execute the steps below:
1. Let a keyboard-less device boot into OOBE.
2. Unfold Microsoft Universal Foldable Keyboard to power it on.
3. Press Func 1 key on the keyboard for a few seconds until its
back light begins blinking.
4. Press "OS" key on the top right corner a few times until
Android logo lights on.
3. Observe the pairing takes effect and asks the user to type the
pin code. (Without this patch, the pairing never takes effect
since the particular keyboard is not considered as a keyboard.)
Review URL: https://codereview.chromium.org/1656253002
Cr-Commit-Position: refs/heads/master@{#377257}
|
|
|
|
|
|
|
|
| |
BUG=
Review URL: https://codereview.chromium.org/1712183002
Cr-Commit-Position: refs/heads/master@{#377208}
|
|
|
|
|
|
|
|
|
|
|
| |
This missing dependency causes flake in the GYP build.
BUG=None
R=rockot@chromium.org
Review URL: https://codereview.chromium.org/1719493003
Cr-Commit-Position: refs/heads/master@{#376599}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id:100001 of https://codereview.chromium.org/1568673002/ )
Reason for revert:
http://crbug.com/586824
Makes Chrome hang when using USB devices.
Original issue's description:
> Parse USB interface association descriptors.
>
> USB interface association descriptors are used to combine multiple
> interfaces into a single functional group. This patch adds support for
> parsing them out of the |extra_data| field left by libusb's parsing of
> configuration, interface and endpoint descriptors. The resulting
> association is then represented by setting the |first_interface| field
> of each interface in a function to the |interface_number| of the first
> interface in the function.
>
> WebUSB will use these associations to set permissions for an entire
> function with a single descriptor.
>
TBR=rockot@chromium.org,pfeldman@chromium.org,stevenjb@chromium.org,reillyg@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=492204, 586824
Review URL: https://codereview.chromium.org/1697863003
Cr-Commit-Position: refs/heads/master@{#375392}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rule I followed here is that anywhere we run extensions_unittests we
should probably also be running device_unittests.
An additional test guard was required for a Bluetooth test that requires
support for Bluetooth Low Energy, which is not available on the swarming
bots.
BUG=None
Review URL: https://codereview.chromium.org/1698523002
Cr-Commit-Position: refs/heads/master@{#375331}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A open message pipe to a DeviceImpl represents a physical resource, the
USB device connected to the host. Instead of continuing to support
handling messages sent on this pipe after the device is disconnected it
makes more sense to simply close it.
For efficiency and because DeviceImpls can outlive the DeviceManagerImpl
that created them a new observer interface is added to UsbDevice so that
the DeviceImpl can listed for the removal of the physical device all on
its own.
BUG=492204
Review URL: https://codereview.chromium.org/1695643002
Cr-Commit-Position: refs/heads/master@{#375329}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
USB interface association descriptors are used to combine multiple
interfaces into a single functional group. This patch adds support for
parsing them out of the |extra_data| field left by libusb's parsing of
configuration, interface and endpoint descriptors. The resulting
association is then represented by setting the |first_interface| field
of each interface in a function to the |interface_number| of the first
interface in the function.
WebUSB will use these associations to set permissions for an entire
function with a single descriptor.
BUG=492204
Review URL: https://codereview.chromium.org/1568673002
Cr-Commit-Position: refs/heads/master@{#375324}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Array<X> a; // Default construct an empty array.
Array<X> b(nullptr); // Construct a null array.
a.clear(); // Set to an empty array.
a = nullptr; // Set to a null array.
BUG=579634
TEST=None
Review URL: https://codereview.chromium.org/1693943002
Cr-Commit-Position: refs/heads/master@{#375304}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They are:
- weak_binding_set.h
- weak_interface_ptr_set.h
BUG=None
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/1692783002
Cr-Commit-Position: refs/heads/master@{#375180}
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of specifying a bunch of arbitrary defaults and then updating
them in the code building the structure. This makes them friendly to use
with C++11's emplace_back() method.
BUG=None
Review URL: https://codereview.chromium.org/1468423003
Cr-Commit-Position: refs/heads/master@{#375081}
|
|
|
|
|
|
|
|
| |
BUG=577486
Review URL: https://codereview.chromium.org/1680293002
Cr-Commit-Position: refs/heads/master@{#375063}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a USB device handle is closed any remaining claimed interfaces are
automatically released. This function needs the same thread hopping
logic used in ReleaseInterface to make sure that if there are no other
references to the InterfaceClaimer object (such as ones held by pending
transfers) it is released on the blocking thread.
BUG=None
Review URL: https://codereview.chromium.org/1695513002
Cr-Commit-Position: refs/heads/master@{#375019}
|