| Index: content/renderer/media/media_stream_impl.cc
|
| diff --git a/content/renderer/media/media_stream_impl.cc b/content/renderer/media/media_stream_impl.cc
|
| index 9c6d33b8332b98664509e5ff20adcb13153996f7..a0b3cf284e102c5c4dcd1cd91ef5582e53d02d24 100644
|
| --- a/content/renderer/media/media_stream_impl.cc
|
| +++ b/content/renderer/media/media_stream_impl.cc
|
| @@ -342,7 +342,6 @@ void MediaStreamImpl::OnStreamGenerated(
|
| web_stream->setExtraData(
|
| new MediaStream(
|
| dependency_factory_,
|
| - base::Bind(&MediaStreamImpl::OnLocalMediaStreamStop, AsWeakPtr()),
|
| *web_stream));
|
|
|
| // Wait for the tracks to be started successfully or to fail.
|
| @@ -365,9 +364,8 @@ void MediaStreamImpl::OnStreamGenerationFailed(
|
| DVLOG(1) << "Request ID not found";
|
| return;
|
| }
|
| - CompleteGetUserMediaRequest(request_info->web_stream,
|
| - &request_info->request,
|
| - result);
|
| +
|
| + GetUserMediaRequestFailed(&request_info->request, result);
|
| DeleteUserMediaRequestInfo(request_info);
|
| }
|
|
|
| @@ -399,19 +397,6 @@ void MediaStreamImpl::OnDeviceStopped(
|
| break;
|
| }
|
| }
|
| -
|
| - // Remove the reference to this source from all |user_media_requests_|.
|
| - // TODO(perkj): The below is not necessary once we don't need to support
|
| - // MediaStream::Stop().
|
| - UserMediaRequests::iterator it = user_media_requests_.begin();
|
| - while (it != user_media_requests_.end()) {
|
| - (*it)->RemoveSource(source);
|
| - if ((*it)->AreAllSourcesRemoved()) {
|
| - it = user_media_requests_.erase(it);
|
| - } else {
|
| - ++it;
|
| - }
|
| - }
|
| }
|
|
|
| void MediaStreamImpl::InitializeSourceObject(
|
| @@ -533,14 +518,12 @@ void MediaStreamImpl::OnCreateNativeTracksCompleted(
|
| DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete("
|
| << "{request_id = " << request->request_id << "} "
|
| << "{result = " << result << "})";
|
| - CompleteGetUserMediaRequest(request->web_stream, &request->request,
|
| - result);
|
| - if (result != MEDIA_DEVICE_OK) {
|
| - // TODO(perkj): Once we don't support MediaStream::Stop the |request_info|
|
| - // can be deleted even if the request succeeds.
|
| - DeleteUserMediaRequestInfo(request);
|
| - StopUnreferencedSources(true);
|
| - }
|
| + if (result == content::MEDIA_DEVICE_OK)
|
| + GetUserMediaRequestSucceeded(request->web_stream, &request->request);
|
| + else
|
| + GetUserMediaRequestFailed(&request->request, result);
|
| +
|
| + DeleteUserMediaRequestInfo(request);
|
| }
|
|
|
| void MediaStreamImpl::OnDevicesEnumerated(
|
| @@ -566,17 +549,19 @@ void MediaStreamImpl::OnDeviceOpenFailed(int request_id) {
|
| NOTIMPLEMENTED();
|
| }
|
|
|
| -void MediaStreamImpl::CompleteGetUserMediaRequest(
|
| +void MediaStreamImpl::GetUserMediaRequestSucceeded(
|
| const blink::WebMediaStream& stream,
|
| + blink::WebUserMediaRequest* request_info) {
|
| + DVLOG(1) << "MediaStreamImpl::GetUserMediaRequestSucceeded";
|
| + request_info->requestSucceeded(stream);
|
| +}
|
| +
|
| +void MediaStreamImpl::GetUserMediaRequestFailed(
|
| blink::WebUserMediaRequest* request_info,
|
| content::MediaStreamRequestResult result) {
|
| -
|
| - DVLOG(1) << "MediaStreamImpl::CompleteGetUserMediaRequest("
|
| - << "result=" << result;
|
| -
|
| switch (result) {
|
| case MEDIA_DEVICE_OK:
|
| - request_info->requestSucceeded(stream);
|
| + NOTREACHED();
|
| break;
|
| case MEDIA_DEVICE_PERMISSION_DENIED:
|
| request_info->requestDenied();
|
| @@ -627,16 +612,6 @@ const blink::WebMediaStreamSource* MediaStreamImpl::FindLocalSource(
|
| return NULL;
|
| }
|
|
|
| -bool MediaStreamImpl::IsSourceInRequests(
|
| - const blink::WebMediaStreamSource& source) const {
|
| - for (UserMediaRequests::const_iterator req_it = user_media_requests_.begin();
|
| - req_it != user_media_requests_.end(); ++req_it) {
|
| - if ((*req_it)->IsSourceUsed(source))
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| MediaStreamImpl::UserMediaRequestInfo*
|
| MediaStreamImpl::FindUserMediaRequestInfo(int request_id) {
|
| UserMediaRequests::iterator it = user_media_requests_.begin();
|
| @@ -658,16 +633,6 @@ MediaStreamImpl::FindUserMediaRequestInfo(
|
| return NULL;
|
| }
|
|
|
| -MediaStreamImpl::UserMediaRequestInfo*
|
| -MediaStreamImpl::FindUserMediaRequestInfo(const std::string& label) {
|
| - UserMediaRequests::iterator it = user_media_requests_.begin();
|
| - for (; it != user_media_requests_.end(); ++it) {
|
| - if ((*it)->generated && (*it)->web_stream.id() == base::UTF8ToUTF16(label))
|
| - return (*it);
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| void MediaStreamImpl::DeleteUserMediaRequestInfo(
|
| UserMediaRequestInfo* request) {
|
| UserMediaRequests::iterator it = user_media_requests_.begin();
|
| @@ -720,20 +685,10 @@ void MediaStreamImpl::FrameWillClose(blink::WebFrame* frame) {
|
| }
|
| }
|
|
|
| -void MediaStreamImpl::OnLocalMediaStreamStop(
|
| - const std::string& label) {
|
| - DVLOG(1) << "MediaStreamImpl::OnLocalMediaStreamStop(" << label << ")";
|
| -
|
| - UserMediaRequestInfo* user_media_request = FindUserMediaRequestInfo(label);
|
| - if (user_media_request) {
|
| - DeleteUserMediaRequestInfo(user_media_request);
|
| - }
|
| - StopUnreferencedSources(true);
|
| -}
|
| -
|
| void MediaStreamImpl::OnLocalSourceStopped(
|
| const blink::WebMediaStreamSource& source) {
|
| DCHECK(CalledOnValidThread());
|
| + DVLOG(1) << "MediaStreamImpl::OnLocalSourceStopped";
|
|
|
| bool device_found = false;
|
| for (LocalStreamSources::iterator device_it = local_sources_.begin();
|
| @@ -746,19 +701,6 @@ void MediaStreamImpl::OnLocalSourceStopped(
|
| }
|
| CHECK(device_found);
|
|
|
| - // Remove the reference to this source from all |user_media_requests_|.
|
| - // TODO(perkj): The below is not necessary once we don't need to support
|
| - // MediaStream::Stop().
|
| - UserMediaRequests::iterator it = user_media_requests_.begin();
|
| - while (it != user_media_requests_.end()) {
|
| - (*it)->RemoveSource(source);
|
| - if ((*it)->AreAllSourcesRemoved()) {
|
| - it = user_media_requests_.erase(it);
|
| - } else {
|
| - ++it;
|
| - }
|
| - }
|
| -
|
| MediaStreamSource* source_impl =
|
| static_cast<MediaStreamSource*> (source.extraData());
|
| media_stream_dispatcher_->StopStreamDevice(source_impl->device_info());
|
| @@ -779,18 +721,6 @@ void MediaStreamImpl::StopLocalSource(
|
| source_impl->StopSource();
|
| }
|
|
|
| -void MediaStreamImpl::StopUnreferencedSources(bool notify_dispatcher) {
|
| - LocalStreamSources::iterator source_it = local_sources_.begin();
|
| - while (source_it != local_sources_.end()) {
|
| - if (!IsSourceInRequests(source_it->source)) {
|
| - StopLocalSource(source_it->source, notify_dispatcher);
|
| - source_it = local_sources_.erase(source_it);
|
| - } else {
|
| - ++source_it;
|
| - }
|
| - }
|
| -}
|
| -
|
| scoped_refptr<WebRtcAudioRenderer> MediaStreamImpl::CreateRemoteAudioRenderer(
|
| webrtc::MediaStreamInterface* stream,
|
| int render_frame_id) {
|
| @@ -912,7 +842,7 @@ void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
|
|
|
| void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted(
|
| MediaStreamSource* source, bool success) {
|
| - DVLOG(1) << "OnTrackStarted";
|
| + DVLOG(1) << "OnTrackStarted result " << success;
|
| std::vector<MediaStreamSource*>::iterator it =
|
| std::find(sources_waiting_for_callback_.begin(),
|
| sources_waiting_for_callback_.end(),
|
|
|