Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: content/renderer/pepper/pepper_media_device_manager.cc

Issue 364123002: [Cross-Site Isolation] Migrate entire MediaStream verticals to be per-RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add back PostTask() to StopEnumerateDevices() to avoid reentrancy issue. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..30643d4a817a2c1504345642d8fb4ff185a057ff 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),
@@ -76,10 +76,16 @@ void PepperMediaDeviceManager::StopEnumerateDevices(int request_id) {
// of EnumerateDevices.
base::MessageLoop::current()->PostTask(
FROM_HERE,
- base::Bind(&MediaStreamDispatcher::StopEnumerateDevices,
- GetRenderViewImpl()->media_stream_dispatcher()->AsWeakPtr(),
- request_id,
- AsWeakPtr()));
+ base::Bind(&PepperMediaDeviceManager::StopEnumerateDevicesDelayed,
+ AsWeakPtr(),
+ request_id));
+#endif
+}
+
+void PepperMediaDeviceManager::StopEnumerateDevicesDelayed(int request_id) {
+#if defined(ENABLE_WEBRTC)
+ if (render_frame())
miu 2014/07/14 19:41:28 FYI--Checking that render_frame() is not NULL to g
yzshen1 2014/07/14 21:15:33 It seems good to make this a comment? (This meth
miu 2014/07/15 00:09:14 Done.
+ GetMediaStreamDispatcher()->StopEnumerateDevices(request_id, AsWeakPtr());
#endif
}
@@ -91,7 +97,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 +118,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 +133,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 +239,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
« no previous file with comments | « content/renderer/pepper/pepper_media_device_manager.h ('k') | content/renderer/pepper/pepper_platform_audio_input.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698