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 864e999d0b32e429081450bfa194e1ad953f465b..e0dee03d52a226cf682915df73a54fba64ddc470 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -64,13 +64,6 @@ static bool Requested(const StreamOptions& options, |
// TODO(xians): Merge DeviceRequest with MediaStreamRequest. |
class MediaStreamManager::DeviceRequest { |
public: |
- enum RequestType { |
- DEVICE_ACCESS = 0, |
- GENERATE_STREAM, |
- ENUMERATE_DEVICES, |
- OPEN_DEVICE |
- }; |
- |
DeviceRequest() |
: requester(NULL), |
type(GENERATE_STREAM), |
@@ -81,7 +74,7 @@ class MediaStreamManager::DeviceRequest { |
DeviceRequest(MediaStreamRequester* requester, |
const StreamOptions& request_options, |
- RequestType request_type, |
+ MediaStreamRequestType request_type, |
int render_process_id, |
int render_view_id, |
const GURL& request_security_origin) |
@@ -128,7 +121,7 @@ class MediaStreamManager::DeviceRequest { |
MediaStreamRequester* requester; // Can be NULL. |
StreamOptions options; |
- RequestType type; |
+ MediaStreamRequestType type; |
int render_process_id; |
int render_view_id; |
GURL security_origin; |
@@ -201,7 +194,7 @@ std::string MediaStreamManager::MakeMediaAccessRequest( |
// Create a new request based on options. |
DeviceRequest* request = new DeviceRequest(NULL, |
options, |
- DeviceRequest::DEVICE_ACCESS, |
+ DEVICE_ACCESS, |
render_process_id, |
render_view_id, |
security_origin); |
@@ -229,7 +222,7 @@ std::string MediaStreamManager::GenerateStream( |
// Create a new request based on options. |
DeviceRequest* request = new DeviceRequest(requester, options, |
- DeviceRequest::GENERATE_STREAM, |
+ GENERATE_STREAM, |
render_process_id, |
render_view_id, |
security_origin); |
@@ -250,7 +243,7 @@ std::string MediaStreamManager::GenerateStreamForDevice( |
// Create a new request based on options. |
DeviceRequest* request = new DeviceRequest(requester, options, |
- DeviceRequest::GENERATE_STREAM, |
+ GENERATE_STREAM, |
render_process_id, |
render_view_id, |
security_origin); |
@@ -337,7 +330,7 @@ void MediaStreamManager::StopGeneratedStream(const std::string& label) { |
// Find the request and close all open devices for the request. |
DeviceRequests::iterator it = requests_.find(label); |
if (it != requests_.end()) { |
- if (it->second->type == DeviceRequest::ENUMERATE_DEVICES) { |
+ if (it->second->type == ENUMERATE_DEVICES) { |
StopEnumerateDevices(label); |
return; |
} |
@@ -349,7 +342,7 @@ void MediaStreamManager::StopGeneratedStream(const std::string& label) { |
device_it != request->devices.end(); ++device_it) { |
GetDeviceManager(device_it->stream_type)->Close(device_it->session_id); |
} |
- if (request->type == DeviceRequest::GENERATE_STREAM && |
+ if (request->type == GENERATE_STREAM && |
RequestDone(*request)) { |
// Notify observers that this device is being closed. |
for (int i = MEDIA_NO_SERVICE + 1; i != NUM_MEDIA_TYPES; ++i) { |
@@ -402,7 +395,7 @@ std::string MediaStreamManager::EnumerateDevices( |
DeviceRequest* request = new DeviceRequest(requester, |
options, |
- DeviceRequest::ENUMERATE_DEVICES, |
+ ENUMERATE_DEVICES, |
render_process_id, |
render_view_id, |
security_origin); |
@@ -430,7 +423,7 @@ void MediaStreamManager::StopEnumerateDevices(const std::string& label) { |
DeviceRequests::iterator it = requests_.find(label); |
if (it != requests_.end()) { |
- DCHECK_EQ(it->second->type, DeviceRequest::ENUMERATE_DEVICES); |
+ DCHECK_EQ(it->second->type, ENUMERATE_DEVICES); |
// Delete the DeviceRequest. |
scoped_ptr<DeviceRequest> request(it->second); |
requests_.erase(it); |
@@ -461,7 +454,7 @@ std::string MediaStreamManager::OpenDevice( |
DeviceRequest* request = new DeviceRequest(requester, |
options, |
- DeviceRequest::OPEN_DEVICE, |
+ OPEN_DEVICE, |
render_process_id, |
render_view_id, |
security_origin); |
@@ -469,6 +462,8 @@ std::string MediaStreamManager::OpenDevice( |
const std::string& label = AddRequest(request); |
StartEnumeration(request); |
+ PostRequestToUI(label); |
+ |
return label; |
} |
@@ -590,7 +585,8 @@ void MediaStreamManager::PostRequestToUI(const std::string& label) { |
request->render_process_id, |
request->render_view_id, |
request->options, |
- request->security_origin); |
+ request->security_origin, |
+ request->type); |
} |
void MediaStreamManager::InitializeDeviceManagersOnIOThread() { |
@@ -668,10 +664,10 @@ void MediaStreamManager::Opened(MediaStreamType stream_type, |
} |
switch (request->type) { |
- case DeviceRequest::OPEN_DEVICE: |
+ case OPEN_DEVICE: |
request->requester->DeviceOpened(label, devices->front()); |
break; |
- case DeviceRequest::GENERATE_STREAM: { |
+ case GENERATE_STREAM: { |
// Partition the array of devices into audio vs video. |
StreamDeviceInfoArray audio_devices, video_devices; |
for (StreamDeviceInfoArray::const_iterator device_it = devices->begin(); |
@@ -730,7 +726,7 @@ void MediaStreamManager::DevicesEnumerated( |
if (it->second->getState(stream_type) == |
MEDIA_REQUEST_STATE_REQUESTED && |
Requested(it->second->options, stream_type)) { |
- if (it->second->type != DeviceRequest::ENUMERATE_DEVICES) |
+ if (it->second->type != ENUMERATE_DEVICES) |
it->second->setState(stream_type, MEDIA_REQUEST_STATE_PENDING_APPROVAL); |
label_list.push_back(it->first); |
} |
@@ -739,26 +735,10 @@ void MediaStreamManager::DevicesEnumerated( |
it != label_list.end(); ++it) { |
DeviceRequest* request = requests_[*it]; |
switch (request->type) { |
- case DeviceRequest::ENUMERATE_DEVICES: |
+ case ENUMERATE_DEVICES: |
if (need_update_clients && request->requester) |
request->requester->DevicesEnumerated(*it, devices); |
break; |
- case DeviceRequest::OPEN_DEVICE: |
- DCHECK(!request->requested_device_id.empty()); |
- for (StreamDeviceInfoArray::const_iterator device_it = devices.begin(); |
- device_it != devices.end(); ++device_it) { |
- if (request->requested_device_id == device_it->device_id) { |
- StreamDeviceInfo device = *device_it; |
- device.in_use = false; |
- device.session_id = |
- GetDeviceManager(device_it->stream_type)->Open(device); |
- request->setState(device_it->stream_type, |
- MEDIA_REQUEST_STATE_OPENING); |
- request->devices.push_back(device); |
- break; |
- } |
- } |
- break; |
default: |
ui_controller_->AddAvailableDevicesToRequest(*it, stream_type, |
devices); |
@@ -833,7 +813,7 @@ void MediaStreamManager::DevicesAccepted(const std::string& label, |
return; |
} |
- if (request_it->second->type == DeviceRequest::DEVICE_ACCESS) { |
+ if (request_it->second->type == DEVICE_ACCESS) { |
scoped_ptr<DeviceRequest> request(request_it->second); |
if (!request->callback.is_null()) { |
// Map the devices to MediaStreamDevices. |
@@ -899,7 +879,7 @@ void MediaStreamManager::SettingsError(const std::string& label) { |
if (request->requester) |
request->requester->StreamGenerationFailed(label); |
- if (request->type == DeviceRequest::DEVICE_ACCESS && |
+ if (request->type == DEVICE_ACCESS && |
!request->callback.is_null()) |
request->callback.Run(label, MediaStreamDevices()); |