OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/renderer_host/media/media_stream_manager.h" | 5 #include "content/browser/renderer_host/media/media_stream_manager.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 262 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
263 base::Bind(&MediaStreamManager::CancelRequest, | 263 base::Bind(&MediaStreamManager::CancelRequest, |
264 base::Unretained(this), *label)); | 264 base::Unretained(this), *label)); |
265 return; | 265 return; |
266 } | 266 } |
267 | 267 |
268 // TODO(miu): We should ask the device manager whether a device with id | 268 // TODO(miu): We should ask the device manager whether a device with id |
269 // |device_id| actually exists. Note that no such MediaStreamProvider API for | 269 // |device_id| actually exists. Note that no such MediaStreamProvider API for |
270 // this currently exists. Also, we don't have a user-friendly device name for | 270 // this currently exists. Also, we don't have a user-friendly device name for |
271 // the infobar UI. | 271 // the infobar UI. |
272 StreamDeviceInfoArray devices; | |
273 if (content::IsAudioMediaType(options.audio_type)) { | 272 if (content::IsAudioMediaType(options.audio_type)) { |
274 // TODO(justinlin): Updating the state to requested and pending are no-ops | 273 // TODO(justinlin): Updating the state to requested and pending are no-ops |
275 // in terms of the media manager, but these are the state changes we want to | 274 // in terms of the media manager, but these are the state changes we want to |
276 // support in terms of extensions (which is registered as an observer). | 275 // support in terms of extensions (which is registered as an observer). |
277 request.setState(options.audio_type, | 276 request.setState(options.audio_type, |
278 content::MEDIA_REQUEST_STATE_REQUESTED); | 277 content::MEDIA_REQUEST_STATE_REQUESTED); |
279 request.setState(options.audio_type, | 278 request.setState(options.audio_type, |
280 content::MEDIA_REQUEST_STATE_PENDING_APPROVAL); | 279 content::MEDIA_REQUEST_STATE_PENDING_APPROVAL); |
281 devices.push_back( | 280 ui_controller_->AddAvailableDevicesToRequest( |
282 StreamDeviceInfo(options.audio_type, device_id, device_id, false)); | 281 *label, options.audio_type, StreamDeviceInfoArray( |
| 282 1, StreamDeviceInfo(options.audio_type, device_id, device_id, |
| 283 false))); |
283 } | 284 } |
284 if (content::IsVideoMediaType(options.video_type)) { | 285 if (content::IsVideoMediaType(options.video_type)) { |
285 request.setState(options.video_type, | 286 request.setState(options.video_type, |
286 content::MEDIA_REQUEST_STATE_REQUESTED); | 287 content::MEDIA_REQUEST_STATE_REQUESTED); |
287 request.setState(options.video_type, | 288 request.setState(options.video_type, |
288 content::MEDIA_REQUEST_STATE_PENDING_APPROVAL); | 289 content::MEDIA_REQUEST_STATE_PENDING_APPROVAL); |
289 devices.push_back( | 290 ui_controller_->AddAvailableDevicesToRequest( |
290 StreamDeviceInfo(options.video_type, device_id, device_id, false)); | 291 *label, options.video_type, StreamDeviceInfoArray( |
| 292 1, StreamDeviceInfo(options.video_type, device_id, device_id, |
| 293 false))); |
291 } | 294 } |
292 | |
293 // Bypass the user authorization dropdown for tab capture. | |
294 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | |
295 base::Bind(&MediaStreamManager::DevicesAccepted, | |
296 base::Unretained(this), *label, devices)); | |
297 } | 295 } |
298 | 296 |
299 void MediaStreamManager::CancelRequest(const std::string& label) { | 297 void MediaStreamManager::CancelRequest(const std::string& label) { |
300 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 298 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
301 | 299 |
302 DeviceRequests::iterator it = requests_.find(label); | 300 DeviceRequests::iterator it = requests_.find(label); |
303 if (it != requests_.end()) { | 301 if (it != requests_.end()) { |
304 // The request isn't complete, notify the UI immediately. | 302 // The request isn't complete, notify the UI immediately. |
305 ui_controller_->CancelUIRequest(label); | 303 ui_controller_->CancelUIRequest(label); |
306 | 304 |
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1042 it != requests_.end(); ++it) { | 1040 it != requests_.end(); ++it) { |
1043 if (it->second.type == DeviceRequest::ENUMERATE_DEVICES && | 1041 if (it->second.type == DeviceRequest::ENUMERATE_DEVICES && |
1044 Requested(it->second.options, stream_type)) { | 1042 Requested(it->second.options, stream_type)) { |
1045 return true; | 1043 return true; |
1046 } | 1044 } |
1047 } | 1045 } |
1048 return false; | 1046 return false; |
1049 } | 1047 } |
1050 | 1048 |
1051 } // namespace media_stream | 1049 } // namespace media_stream |
OLD | NEW |