commit | ec8e4e53a9d1a26180f5bf5f2901063608eb6936 | [log] [tgz] |
---|---|---|
author | Gordon Seto <gordonseto@google.com> | Wed Dec 01 00:33:23 2021 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Dec 01 00:33:23 2021 |
tree | f16e5fd77315e8c263b3b3a6bbedb7b7825e69b7 | |
parent | a51a177a0af3226f5be5fbcdac379a567b68e53a [diff] |
[CrOS Bluetooth] Fix AdapterStateController rapid enable toggling. Fix issue in AdapterStateController where if Bluetooth is enabled, then rapidly disabled, Bluetooth will re-enable itself. This is because when BluetoothAdapter::SetPowered() finishes and its success callback is fired, momentarily, the value it returns in BluetoothAdapter::IsPowered() is still the old value. Therefore, when AdapterStateController attempts to perform the next queued state change (disable) once the success callback finishes, it believes the adapter is already disabled because SetPowered() returns false, and performs no action, leaving the adapter in its current state (enabled). The UI updates to reflect the still-enabled-state, giving the impression that Bluetooth has re-enabled. This CL updates AdapterStateController to not attempt to perform the next queued state change when the success callback is fired, instead waiting until AdapterPoweredChanged() is called to ensure the adapter is in the correct state before performing the next state change. Bug: 1010321 Change-Id: I0cdd871d5452730838f1e74b13de39ef663efc32 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3309686 Commit-Queue: Gordon Seto <gordonseto@google.com> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org> Auto-Submit: Gordon Seto <gordonseto@google.com> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/main@{#946787}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.