Chromium Code Reviews| Index: content/renderer/pepper/pepper_media_device_manager.cc |
| diff --git a/content/renderer/pepper/pepper_media_device_manager.cc b/content/renderer/pepper/pepper_media_device_manager.cc |
| index b36df317788802e2ef9c2da7099033b9c91916cb..8cef7b75ff04ad0fc59e1910fc746d793d55a1e9 100644 |
| --- a/content/renderer/pepper/pepper_media_device_manager.cc |
| +++ b/content/renderer/pepper/pepper_media_device_manager.cc |
| @@ -6,7 +6,7 @@ |
| #include "base/logging.h" |
| #include "content/renderer/media/media_stream_dispatcher.h" |
| -#include "content/renderer/render_view_impl.h" |
| +#include "content/renderer/render_frame_impl.h" |
| #include "ppapi/shared_impl/ppb_device_ref_shared.h" |
| namespace content { |
| @@ -23,18 +23,18 @@ ppapi::DeviceRefData FromStreamDeviceInfo(const StreamDeviceInfo& info) { |
| } // namespace |
| -PepperMediaDeviceManager* PepperMediaDeviceManager::GetForRenderView( |
| - RenderView* render_view) { |
| +PepperMediaDeviceManager* PepperMediaDeviceManager::GetForRenderFrame( |
| + RenderFrame* render_frame) { |
| PepperMediaDeviceManager* handler = |
| - PepperMediaDeviceManager::Get(render_view); |
| + PepperMediaDeviceManager::Get(render_frame); |
| if (!handler) |
| - handler = new PepperMediaDeviceManager(render_view); |
| + handler = new PepperMediaDeviceManager(render_frame); |
| return handler; |
| } |
| -PepperMediaDeviceManager::PepperMediaDeviceManager(RenderView* render_view) |
| - : RenderViewObserver(render_view), |
| - RenderViewObserverTracker<PepperMediaDeviceManager>(render_view), |
| +PepperMediaDeviceManager::PepperMediaDeviceManager(RenderFrame* render_frame) |
| + : RenderFrameObserver(render_frame), |
| + RenderFrameObserverTracker<PepperMediaDeviceManager>(render_frame), |
| next_id_(1) {} |
| PepperMediaDeviceManager::~PepperMediaDeviceManager() { |
| @@ -50,7 +50,7 @@ int PepperMediaDeviceManager::EnumerateDevices( |
| int request_id = next_id_++; |
| #if defined(ENABLE_WEBRTC) |
| - GetRenderViewImpl()->media_stream_dispatcher()->EnumerateDevices( |
| + GetMediaStreamDispatcher()->EnumerateDevices( |
| request_id, |
| AsWeakPtr(), |
| PepperMediaDeviceManager::FromPepperDeviceType(type), |
| @@ -72,14 +72,7 @@ void PepperMediaDeviceManager::StopEnumerateDevices(int request_id) { |
| enumerate_callbacks_.erase(request_id); |
| #if defined(ENABLE_WEBRTC) |
| - // Need to post task since this function might be called inside the callback |
| - // of EnumerateDevices. |
| - base::MessageLoop::current()->PostTask( |
| - FROM_HERE, |
| - base::Bind(&MediaStreamDispatcher::StopEnumerateDevices, |
| - GetRenderViewImpl()->media_stream_dispatcher()->AsWeakPtr(), |
| - request_id, |
| - AsWeakPtr())); |
| + GetMediaStreamDispatcher()->StopEnumerateDevices(request_id, AsWeakPtr()); |
|
yzshen1
2014/07/14 17:19:55
Is it safe to remove this PostTask()?
If I unders
miu
2014/07/14 19:41:28
Done.
I removed it because, at one point, I manag
yzshen1
2014/07/14 21:15:32
I don't think the mechanism can avoid the re-entra
|
| #endif |
| } |
| @@ -91,7 +84,7 @@ int PepperMediaDeviceManager::OpenDevice(PP_DeviceType_Dev type, |
| int request_id = next_id_++; |
| #if defined(ENABLE_WEBRTC) |
| - GetRenderViewImpl()->media_stream_dispatcher()->OpenDevice( |
| + GetMediaStreamDispatcher()->OpenDevice( |
| request_id, |
| AsWeakPtr(), |
| device_id, |
| @@ -112,14 +105,13 @@ void PepperMediaDeviceManager::CancelOpenDevice(int request_id) { |
| open_callbacks_.erase(request_id); |
| #if defined(ENABLE_WEBRTC) |
| - GetRenderViewImpl()->media_stream_dispatcher()->CancelOpenDevice(request_id, |
| - AsWeakPtr()); |
| + GetMediaStreamDispatcher()->CancelOpenDevice(request_id, AsWeakPtr()); |
| #endif |
| } |
| void PepperMediaDeviceManager::CloseDevice(const std::string& label) { |
| #if defined(ENABLE_WEBRTC) |
| - GetRenderViewImpl()->media_stream_dispatcher()->CloseDevice(label); |
| + GetMediaStreamDispatcher()->CloseDevice(label); |
| #endif |
| } |
| @@ -128,11 +120,9 @@ int PepperMediaDeviceManager::GetSessionID(PP_DeviceType_Dev type, |
| #if defined(ENABLE_WEBRTC) |
| switch (type) { |
| case PP_DEVICETYPE_DEV_AUDIOCAPTURE: |
| - return GetRenderViewImpl()->media_stream_dispatcher()->audio_session_id( |
| - label, 0); |
| + return GetMediaStreamDispatcher()->audio_session_id(label, 0); |
| case PP_DEVICETYPE_DEV_VIDEOCAPTURE: |
| - return GetRenderViewImpl()->media_stream_dispatcher()->video_session_id( |
| - label, 0); |
| + return GetMediaStreamDispatcher()->video_session_id(label, 0); |
| default: |
| NOTREACHED(); |
| return 0; |
| @@ -236,8 +226,13 @@ void PepperMediaDeviceManager::NotifyDeviceOpened(int request_id, |
| callback.Run(request_id, succeeded, label); |
| } |
| -RenderViewImpl* PepperMediaDeviceManager::GetRenderViewImpl() { |
| - return static_cast<RenderViewImpl*>(render_view()); |
| +MediaStreamDispatcher* PepperMediaDeviceManager::GetMediaStreamDispatcher() |
| + const { |
| + DCHECK(render_frame()); |
| + MediaStreamDispatcher* const dispatcher = |
| + static_cast<RenderFrameImpl*>(render_frame())->GetMediaStreamDispatcher(); |
| + DCHECK(dispatcher); |
| + return dispatcher; |
| } |
| } // namespace content |