Index: content/browser/bluetooth/bluetooth_allowed_devices_map.cc |
diff --git a/content/browser/bluetooth/bluetooth_allowed_devices_map.cc b/content/browser/bluetooth/bluetooth_allowed_devices_map.cc |
index 9075fe82bb38d61cc150e5915a6b1fd943ee3467..36fce42211f7ca4144c06d9983eb86d6fd042761 100644 |
--- a/content/browser/bluetooth/bluetooth_allowed_devices_map.cc |
+++ b/content/browser/bluetooth/bluetooth_allowed_devices_map.cc |
@@ -60,7 +60,7 @@ const std::string& BluetoothAllowedDevicesMap::AddDevice( |
VLOG(1) << "Device already in map of allowed devices."; |
return origin_to_device_address_to_id_map_[origin][device_address]; |
} |
- const std::string device_id = GenerateDeviceId(origin); |
+ const std::string device_id = GenerateDeviceId(); |
VLOG(1) << "Id generated for device: " << device_id; |
origin_to_device_address_to_id_map_[origin][device_address] = device_id; |
@@ -68,6 +68,8 @@ const std::string& BluetoothAllowedDevicesMap::AddDevice( |
origin_to_device_id_to_services_map_[origin][device_id] = |
UnionOfServices(filters, optional_services); |
+ CHECK(device_id_set_.insert(device_id).second); |
+ |
return origin_to_device_address_to_id_map_[origin][device_address]; |
} |
@@ -88,6 +90,9 @@ void BluetoothAllowedDevicesMap::RemoveDevice( |
CHECK(origin_to_device_id_to_address_map_.erase(origin)); |
CHECK(origin_to_device_id_to_services_map_.erase(origin)); |
} |
+ |
+ // 3. Remove from set of ids. |
+ CHECK(device_id_set_.erase(device_id)); |
} |
const std::string& BluetoothAllowedDevicesMap::GetDeviceId( |
@@ -123,14 +128,9 @@ const std::string& BluetoothAllowedDevicesMap::GetDeviceAddress( |
: id_iter->second; |
} |
-std::string BluetoothAllowedDevicesMap::GenerateDeviceId( |
- const url::Origin& origin) { |
+std::string BluetoothAllowedDevicesMap::GenerateDeviceId() { |
std::string device_id = GetBase64Id(); |
- auto id_map_iter = origin_to_device_id_to_address_map_.find(origin); |
- if (id_map_iter == origin_to_device_id_to_address_map_.end()) { |
- return device_id; |
- } |
- while (ContainsKey(id_map_iter->second, device_id)) { |
+ while (ContainsKey(device_id_set_, device_id)) { |
LOG(WARNING) << "Generated repeated id."; |
device_id = GetBase64Id(); |
} |