Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1404)

Unified Diff: content/renderer/bluetooth/web_bluetooth_impl.cc

Issue 2072423002: bluetooth: Remove device before dispatching event (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@my-origin
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/bluetooth/web_bluetooth_impl.cc
diff --git a/content/renderer/bluetooth/web_bluetooth_impl.cc b/content/renderer/bluetooth/web_bluetooth_impl.cc
index 49358d0bdb28e33e6ce5bb5a008e0586f355f699..aa864efdaed89ab1433db06cf5fcfb5c2f651d9f 100644
--- a/content/renderer/bluetooth/web_bluetooth_impl.cc
+++ b/content/renderer/bluetooth/web_bluetooth_impl.cc
@@ -183,8 +183,12 @@ void WebBluetoothImpl::OnRequestDeviceComplete(
void WebBluetoothImpl::GattServerDisconnected(const mojo::String& device_id) {
auto device_iter = connected_devices_.find(device_id);
if (device_iter != connected_devices_.end()) {
- device_iter->second->dispatchGattServerDisconnected();
+ // Remove device from the map before calling dispatchGattServerDisconnected
+ // to avoid deleting a device dispatchGattServerDisconnected might have
Jeffrey Yasskin 2016/06/18 05:00:14 s/deleting/removing/, s/added/re-connected/, and s
ortuno 2016/06/18 20:01:20 Done.
+ // added.
+ blink::WebBluetoothDevice* device = device_iter->second;
connected_devices_.erase(device_iter);
+ device->dispatchGattServerDisconnected();
}
}

Powered by Google App Engine
This is Rietveld 408576698