| Index: content/browser/renderer_host/media/media_stream_manager.cc
|
| diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
|
| index 9a2779ba604c63ddf4024415f13cd94b90d56fc4..2b337cafa7849329481813673e58f75d98338f05 100644
|
| --- a/content/browser/renderer_host/media/media_stream_manager.cc
|
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc
|
| @@ -1100,24 +1100,34 @@ std::string MediaStreamManager::AddRequest(DeviceRequest* request) {
|
| std::string unique_label;
|
| do {
|
| unique_label = RandomLabel();
|
| - } while (requests_.find(unique_label) != requests_.end());
|
| + } while (FindRequest(unique_label) != NULL);
|
|
|
| - requests_.insert(std::make_pair(unique_label, request));
|
| + requests_.push_back(std::make_pair(unique_label, request));
|
|
|
| return unique_label;
|
| }
|
|
|
| MediaStreamManager::DeviceRequest*
|
| MediaStreamManager::FindRequest(const std::string& label) const {
|
| - DeviceRequests::const_iterator request_it = requests_.find(label);
|
| - return request_it == requests_.end() ? NULL : request_it->second;
|
| + for (DeviceRequests::const_iterator request_it = requests_.begin();
|
| + request_it != requests_.end(); ++request_it) {
|
| + if (request_it->first == label)
|
| + return request_it->second;
|
| + }
|
| + return NULL;
|
| }
|
|
|
| void MediaStreamManager::DeleteRequest(const std::string& label) {
|
| DVLOG(1) << "DeleteRequest({label= " << label << "})";
|
| - DeviceRequests::iterator it = requests_.find(label);
|
| - scoped_ptr<DeviceRequest> request(it->second);
|
| - requests_.erase(it);
|
| + for (DeviceRequests::iterator request_it = requests_.begin();
|
| + request_it != requests_.end(); ++request_it) {
|
| + if (request_it->first == label) {
|
| + scoped_ptr<DeviceRequest> request(request_it->second);
|
| + requests_.erase(request_it);
|
| + return;
|
| + }
|
| + }
|
| + NOTREACHED();
|
| }
|
|
|
| void MediaStreamManager::PostRequestToUI(const std::string& label,
|
| @@ -1648,7 +1658,7 @@ void MediaStreamManager::DevicesEnumerated(
|
| // to be invalid so that the next media request will trigger the
|
| // enumeration again. See issue/317673.
|
| cache->valid = !devices.empty();
|
| - }
|
| + }
|
|
|
| if (need_update_clients && monitoring_started_)
|
| NotifyDevicesChanged(stream_type, devices);
|
|
|