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 2b337cafa7849329481813673e58f75d98338f05..21d2aa4ce2e1ce7c0da8cbdc3fbe1b9887938152 100644 |
| --- a/content/browser/renderer_host/media/media_stream_manager.cc |
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc |
| @@ -183,7 +183,7 @@ class MediaStreamManager::DeviceRequest { |
| public: |
| DeviceRequest(MediaStreamRequester* requester, |
| int requesting_process_id, |
| - int requesting_view_id, |
| + int requesting_frame_id, |
| int page_request_id, |
| const GURL& security_origin, |
| bool have_permission, |
| @@ -193,7 +193,7 @@ class MediaStreamManager::DeviceRequest { |
| const ResourceContext::SaltCallback& salt_callback) |
| : requester(requester), |
| requesting_process_id(requesting_process_id), |
| - requesting_view_id(requesting_view_id), |
| + requesting_frame_id(requesting_frame_id), |
| page_request_id(page_request_id), |
| security_origin(security_origin), |
| have_permission(have_permission), |
| @@ -230,7 +230,7 @@ class MediaStreamManager::DeviceRequest { |
| const std::string& requested_video_device_id) { |
| DCHECK(!ui_request_); |
| ui_request_.reset(new MediaStreamRequest(requesting_process_id, |
| - requesting_view_id, |
| + requesting_frame_id, |
| page_request_id, |
| security_origin, |
| user_gesture, |
| @@ -243,12 +243,12 @@ class MediaStreamManager::DeviceRequest { |
| // Creates a tab capture specific MediaStreamRequest object that is used by |
| // this request when UI is asked for permission and device selection. |
| - void CreateTabCatureUIRequest(int target_render_process_id, |
| - int target_render_view_id, |
| - const std::string& tab_capture_id) { |
| + void CreateTabCaptureUIRequest(int target_render_process_id, |
| + int target_render_frame_id, |
| + const std::string& tab_capture_id) { |
| DCHECK(!ui_request_); |
| ui_request_.reset(new MediaStreamRequest(target_render_process_id, |
| - target_render_view_id, |
| + target_render_frame_id, |
| page_request_id, |
| security_origin, |
| user_gesture, |
| @@ -283,17 +283,10 @@ class MediaStreamManager::DeviceRequest { |
| if (!ui_request_) |
| return; |
| - // If we appended a device_id scheme, we want to remove it when notifying |
| - // observers which may be in different modules since this scheme is only |
| - // used internally within the content module. |
| - std::string device_id = |
| - WebContentsCaptureUtil::StripWebContentsDeviceScheme( |
|
tommi (sloooow) - chröme
2014/07/09 07:46:55
I'm not familiar with what this does/did. Are the
miu
2014/07/09 19:48:07
A couple years ago, MediaStreamImpl/Dispatcher/Man
ncarter (slow)
2014/07/10 01:17:51
FWIW, jam@ and I were chatting about this a few we
tommi (sloooow) - chröme
2014/07/10 13:12:55
Great. The fewer mysteries the better.
|
| - ui_request_->tab_capture_device_id); |
| - |
| media_observer->OnMediaRequestStateChanged( |
| - ui_request_->render_process_id, ui_request_->render_view_id, |
| + ui_request_->render_process_id, ui_request_->render_frame_id, |
| ui_request_->page_request_id, ui_request_->security_origin, |
| - MediaStreamDevice(stream_type, device_id, device_id), new_state); |
| + stream_type, new_state); |
| } |
| MediaRequestState state(MediaStreamType stream_type) const { |
| @@ -309,13 +302,13 @@ class MediaStreamManager::DeviceRequest { |
| // specifies the target renderer from which audio and video is captured. |
| const int requesting_process_id; |
| - // The render view id that requested this stream to be generated and that |
| + // The render frame id that requested this stream to be generated and that |
| // will receive a handle to the MediaStream. This may be different from |
| - // MediaStreamRequest::render_view_id which in the tab capture case |
| + // MediaStreamRequest::render_frame_id which in the tab capture case |
| // specifies the target renderer from which audio and video is captured. |
| - const int requesting_view_id; |
| + const int requesting_frame_id; |
| - // An ID the render view provided to identify this request. |
| + // An ID the render frame provided to identify this request. |
| const int page_request_id; |
| const GURL security_origin; |
| @@ -414,7 +407,7 @@ AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { |
| std::string MediaStreamManager::MakeMediaAccessRequest( |
| int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| int page_request_id, |
| const StreamOptions& options, |
| const GURL& security_origin, |
| @@ -425,7 +418,7 @@ std::string MediaStreamManager::MakeMediaAccessRequest( |
| // suggests that this is the wrong design. Can this be refactored? |
| DeviceRequest* request = new DeviceRequest(NULL, |
| render_process_id, |
| - render_view_id, |
| + render_frame_id, |
| page_request_id, |
| security_origin, |
| true, |
| @@ -451,7 +444,7 @@ std::string MediaStreamManager::MakeMediaAccessRequest( |
| void MediaStreamManager::GenerateStream(MediaStreamRequester* requester, |
| int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| const ResourceContext::SaltCallback& sc, |
| int page_request_id, |
| const StreamOptions& options, |
| @@ -466,7 +459,7 @@ void MediaStreamManager::GenerateStream(MediaStreamRequester* requester, |
| DeviceRequest* request = new DeviceRequest(requester, |
| render_process_id, |
| - render_view_id, |
| + render_frame_id, |
| page_request_id, |
| security_origin, |
| true, |
| @@ -489,13 +482,13 @@ void MediaStreamManager::GenerateStream(MediaStreamRequester* requester, |
| } |
| void MediaStreamManager::CancelRequest(int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| int page_request_id) { |
| for (DeviceRequests::const_iterator request_it = requests_.begin(); |
| request_it != requests_.end(); ++request_it) { |
| const DeviceRequest* request = request_it->second; |
| if (request->requesting_process_id == render_process_id && |
| - request->requesting_view_id == render_view_id && |
| + request->requesting_frame_id == render_frame_id && |
| request->page_request_id == page_request_id) { |
| CancelRequest(request_it->first); |
| return; |
| @@ -557,19 +550,19 @@ void MediaStreamManager::CancelAllRequests(int render_process_id) { |
| } |
| void MediaStreamManager::StopStreamDevice(int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| const std::string& device_id) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| - DVLOG(1) << "StopStreamDevice({render_view_id = " << render_view_id << "} " |
| + DVLOG(1) << "StopStreamDevice({render_frame_id = " << render_frame_id << "} " |
| << ", {device_id = " << device_id << "})"; |
| - // Find the first request for this |render_process_id| and |render_view_id| |
| + // Find the first request for this |render_process_id| and |render_frame_id| |
| // of type MEDIA_GENERATE_STREAM that has requested to use |device_id| and |
| // stop it. |
| for (DeviceRequests::iterator request_it = requests_.begin(); |
| - request_it != requests_.end(); ++request_it) { |
| + request_it != requests_.end(); ++request_it) { |
| DeviceRequest* request = request_it->second; |
| if (request->requesting_process_id != render_process_id || |
| - request->requesting_view_id != render_view_id || |
| + request->requesting_frame_id != render_frame_id || |
| request->request_type != MEDIA_GENERATE_STREAM) { |
| continue; |
| } |
| @@ -648,7 +641,7 @@ void MediaStreamManager::CloseDevice(MediaStreamType type, int session_id) { |
| std::string MediaStreamManager::EnumerateDevices( |
| MediaStreamRequester* requester, |
| int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| const ResourceContext::SaltCallback& sc, |
| int page_request_id, |
| MediaStreamType type, |
| @@ -662,7 +655,7 @@ std::string MediaStreamManager::EnumerateDevices( |
| DeviceRequest* request = new DeviceRequest(requester, |
| render_process_id, |
| - render_view_id, |
| + render_frame_id, |
| page_request_id, |
| security_origin, |
| have_permission, |
| @@ -733,8 +726,7 @@ void MediaStreamManager::DoEnumerateDevices(const std::string& label) { |
| DVLOG(1) << "Enumerate Devices ({label = " << label << "})"; |
| } |
| -void MediaStreamManager::EnumerateAudioOutputDevices( |
| - const std::string& label) { |
| +void MediaStreamManager::EnumerateAudioOutputDevices(const std::string& label) { |
| DCHECK(device_task_runner_->BelongsToCurrentThread()); |
| scoped_ptr<media::AudioDeviceNames> device_names( |
| @@ -786,7 +778,7 @@ void MediaStreamManager::AudioOutputDevicesEnumerated( |
| void MediaStreamManager::OpenDevice(MediaStreamRequester* requester, |
| int render_process_id, |
| - int render_view_id, |
| + int render_frame_id, |
| const ResourceContext::SaltCallback& sc, |
| int page_request_id, |
| const std::string& device_id, |
| @@ -810,7 +802,7 @@ void MediaStreamManager::OpenDevice(MediaStreamRequester* requester, |
| } |
| DeviceRequest* request = new DeviceRequest(requester, |
| render_process_id, |
| - render_view_id, |
| + render_frame_id, |
| page_request_id, |
| security_origin, |
| true, |
| @@ -910,7 +902,7 @@ void MediaStreamManager::StopRemovedDevice(const MediaStreamDevice& device) { |
| session_ids.push_back(device_it->session_id); |
| if (it->second->requester) { |
| it->second->requester->DeviceStopped( |
| - it->second->requesting_view_id, |
| + it->second->requesting_frame_id, |
| it->first, |
| *device_it); |
| } |
| @@ -1295,17 +1287,10 @@ bool MediaStreamManager::SetupTabCaptureRequest(DeviceRequest* request) { |
| // Customize options for a WebContents based capture. |
| int target_render_process_id = 0; |
| - int target_render_view_id = 0; |
| - |
| - // TODO(justinlin): Can't plumb audio mirroring using stream type right |
| - // now, so plumbing by device_id. Will revisit once it's refactored. |
| - // http://crbug.com/163100 |
| - std::string tab_capture_device_id = |
| - WebContentsCaptureUtil::AppendWebContentsDeviceScheme(capture_device_id); |
| + int target_render_frame_id = 0; |
| bool has_valid_device_id = WebContentsCaptureUtil::ExtractTabCaptureTarget( |
| - tab_capture_device_id, &target_render_process_id, |
| - &target_render_view_id); |
| + capture_device_id, &target_render_process_id, &target_render_frame_id); |
| if (!has_valid_device_id || |
| (request->audio_type() != MEDIA_TAB_AUDIO_CAPTURE && |
| request->audio_type() != MEDIA_NO_SERVICE) || |
| @@ -1314,15 +1299,15 @@ bool MediaStreamManager::SetupTabCaptureRequest(DeviceRequest* request) { |
| return false; |
| } |
| - request->CreateTabCatureUIRequest(target_render_process_id, |
| - target_render_view_id, |
| - tab_capture_device_id); |
| + request->CreateTabCaptureUIRequest(target_render_process_id, |
| + target_render_frame_id, |
| + capture_device_id); |
| DVLOG(3) << "SetupTabCaptureRequest " |
| - << ", {tab_capture_device_id = " << tab_capture_device_id << "}" |
| + << ", {capture_device_id = " << capture_device_id << "}" |
| << ", {target_render_process_id = " << target_render_process_id |
| << "}" |
| - << ", {target_render_view_id = " << target_render_view_id << "}"; |
| + << ", {target_render_frame_id = " << target_render_frame_id << "}"; |
| return true; |
| } |
| @@ -1394,7 +1379,7 @@ bool MediaStreamManager::FindExistingRequestedDeviceInfo( |
| it != requests_.end() ; ++it) { |
| const DeviceRequest* request = it->second; |
| if (request->requesting_process_id == new_request.requesting_process_id && |
| - request->requesting_view_id == new_request.requesting_view_id && |
| + request->requesting_frame_id == new_request.requesting_frame_id && |
| request->request_type == new_request.request_type) { |
| for (StreamDeviceInfoArray::const_iterator device_it = |
| request->devices.begin(); |
| @@ -1431,7 +1416,7 @@ void MediaStreamManager::FinalizeGenerateStream(const std::string& label, |
| } |
| request->requester->StreamGenerated( |
| - request->requesting_view_id, |
| + request->requesting_frame_id, |
| request->page_request_id, |
| label, audio_devices, video_devices); |
| } |
| @@ -1442,7 +1427,7 @@ void MediaStreamManager::FinalizeRequestFailed( |
| content::MediaStreamRequestResult result) { |
| if (request->requester) |
| request->requester->StreamGenerationFailed( |
| - request->requesting_view_id, |
| + request->requesting_frame_id, |
| request->page_request_id, |
| result); |
| @@ -1457,7 +1442,7 @@ void MediaStreamManager::FinalizeRequestFailed( |
| void MediaStreamManager::FinalizeOpenDevice(const std::string& label, |
| DeviceRequest* request) { |
| const StreamDeviceInfoArray& requested_devices = request->devices; |
| - request->requester->DeviceOpened(request->requesting_view_id, |
| + request->requester->DeviceOpened(request->requesting_frame_id, |
| request->page_request_id, |
| label, requested_devices.front()); |
| } |
| @@ -1480,7 +1465,7 @@ void MediaStreamManager::FinalizeEnumerateDevices(const std::string& label, |
| ClearDeviceLabels(&request->devices); |
| request->requester->DevicesEnumerated( |
| - request->requesting_view_id, |
| + request->requesting_frame_id, |
| request->page_request_id, |
| label, |
| request->devices); |
| @@ -1817,8 +1802,6 @@ void MediaStreamManager::HandleAccessRequestResponse( |
| StreamDeviceInfo device_info; |
| device_info.device = *device_it; |
| - // TODO(justinlin): Nicer way to do this? |
| - // Re-append the device's id since we lost it when posting request to UI. |
| 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; |
| @@ -1847,7 +1830,7 @@ void MediaStreamManager::HandleAccessRequestResponse( |
| } |
| // If this is request for a new MediaStream, a device is only opened once |
| - // per render view. This is so that the permission to use a device can be |
| + // per render frame. This is so that the permission to use a device can be |
| // revoked by a single call to StopStreamDevice regardless of how many |
| // MediaStreams it is being used in. |
| if (request->request_type == MEDIA_GENERATE_STREAM) { |
| @@ -1900,7 +1883,7 @@ void MediaStreamManager::StopMediaStreamFromBrowser(const std::string& label) { |
| if (request->requester) { |
| for (StreamDeviceInfoArray::iterator device_it = request->devices.begin(); |
| device_it != request->devices.end(); ++device_it) { |
| - request->requester->DeviceStopped(request->requesting_view_id, |
| + request->requester->DeviceStopped(request->requesting_frame_id, |
| label, |
| *device_it); |
| } |