Chromium Code Reviews| 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 2e0d77b2ebf1406c198a4cb19558fdeed7d4c268..e53c9c8512943564168c908b0c688ce6a2d44d3c 100644 |
| --- a/content/browser/renderer_host/media/media_stream_manager.cc |
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc |
| @@ -267,6 +267,7 @@ class MediaStreamManager::DeviceRequest { |
| ui_request_.reset(new MediaStreamRequest(requesting_process_id, |
| requesting_frame_id, |
| page_request_id, |
| + "", |
| security_origin, |
| user_gesture, |
| request_type, |
| @@ -285,6 +286,7 @@ class MediaStreamManager::DeviceRequest { |
| ui_request_.reset(new MediaStreamRequest(target_render_process_id, |
| target_render_frame_id, |
| page_request_id, |
| + tab_capture_id, |
| security_origin, |
| user_gesture, |
| request_type, |
| @@ -292,10 +294,10 @@ class MediaStreamManager::DeviceRequest { |
| "", |
| audio_type_, |
| video_type_)); |
| - ui_request_->tab_capture_device_id = tab_capture_id; |
| } |
| - const MediaStreamRequest* UIRequest() const { return ui_request_.get(); } |
| + bool HasUIRequest() const { return ui_request_.get() != NULL; } |
|
tommi (sloooow) - chröme
2015/01/23 10:44:04
nit: nullptr
perkj_chrome
2015/01/26 13:43:39
Done.
|
| + scoped_ptr<MediaStreamRequest> GetUIRequest() { return ui_request_.Pass(); } |
|
tommi (sloooow) - chröme
2015/01/23 10:44:04
Since this transfers ownership I'd like to give it
perkj_chrome
2015/01/26 13:43:39
Done.
|
| // Update the request state and notify observers. |
| void SetState(MediaStreamType stream_type, MediaRequestState new_state) { |
| @@ -365,6 +367,8 @@ class MediaStreamManager::DeviceRequest { |
| scoped_ptr<MediaStreamUIProxy> ui_proxy; |
| + std::string tab_capture_device_id; |
| + |
| private: |
| std::vector<MediaRequestState> state_; |
| scoped_ptr<MediaStreamRequest> ui_request_; |
| @@ -1163,7 +1167,7 @@ void MediaStreamManager::DeleteRequest(const std::string& label) { |
| void MediaStreamManager::PostRequestToUI(const std::string& label, |
| DeviceRequest* request) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| - DCHECK(request->UIRequest()); |
| + DCHECK(request->HasUIRequest()); |
| DVLOG(1) << "PostRequestToUI({label= " << label << "})"; |
| const MediaStreamType audio_type = request->audio_type(); |
| @@ -1203,7 +1207,7 @@ void MediaStreamManager::PostRequestToUI(const std::string& label, |
| } |
| request->ui_proxy->RequestAccess( |
| - *request->UIRequest(), |
| + request->GetUIRequest(), |
| base::Bind(&MediaStreamManager::HandleAccessRequestResponse, |
| base::Unretained(this), label)); |
| } |
| @@ -1340,6 +1344,7 @@ bool MediaStreamManager::SetupTabCaptureRequest(DeviceRequest* request) { |
| request->video_type() != MEDIA_NO_SERVICE)) { |
| return false; |
| } |
| + request->tab_capture_device_id = capture_device_id; |
| request->CreateTabCaptureUIRequest(target_render_process_id, |
| target_render_frame_id, |
| @@ -1913,7 +1918,7 @@ void MediaStreamManager::HandleAccessRequestResponse( |
| if (device_info.device.type == content::MEDIA_TAB_VIDEO_CAPTURE || |
| device_info.device.type == content::MEDIA_TAB_AUDIO_CAPTURE) { |
| - device_info.device.id = request->UIRequest()->tab_capture_device_id; |
| + device_info.device.id = request->tab_capture_device_id; |
| // Initialize the sample_rate and channel_layout here since for audio |
| // mirroring, we don't go through EnumerateDevices where these are usually |