device/fido: fix timeouts for BLE devices.

It doesn't look like timeouts for BLE devices ever worked:
|FidoBleDevice::OnTimeout| would set the state, but that doesn't do
anything by itself and the state would be ignored if the callback ever
actually happened. In ca2c9afa, a DCHECK was added that caught this in
testing (see bug).

This change fixes the timeout handling. I don't believe that a similar
issue exists for |FidoBleTransaction| because it does trigger its
callback on timeout and that callback will delete the
|FidoBleTransaction|, thus no more callbacks can enter it.

Bug: 955199
Change-Id: Id838ed28946144959534b1a05993557fbf5694d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1582274
Commit-Queue: Adam Langley <agl@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Martin Kreichgauer <martinkr@google.com>
Cr-Commit-Position: refs/heads/master@{#653875}
2 files changed