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); |
} |