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

Unified Diff: content/renderer/pepper/pepper_platform_video_capture.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: It's random enough. + REBASE 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_platform_video_capture.cc
diff --git a/content/renderer/pepper/pepper_platform_video_capture.cc b/content/renderer/pepper/pepper_platform_video_capture.cc
index 74eea87f684740016e9e13a3c9924dcc33446b01..f883d1b3ae08a0e7b71949d27711ae9f73767c25 100644
--- a/content/renderer/pepper/pepper_platform_video_capture.cc
+++ b/content/renderer/pepper/pepper_platform_video_capture.cc
@@ -10,19 +10,19 @@
#include "content/renderer/media/video_capture_impl_manager.h"
#include "content/renderer/pepper/pepper_media_device_manager.h"
#include "content/renderer/pepper/pepper_video_capture_host.h"
+#include "content/renderer/render_frame_impl.h"
#include "content/renderer/render_thread_impl.h"
-#include "content/renderer/render_view_impl.h"
#include "media/base/bind_to_current_loop.h"
#include "url/gurl.h"
namespace content {
PepperPlatformVideoCapture::PepperPlatformVideoCapture(
- const base::WeakPtr<RenderViewImpl>& render_view,
+ int render_frame_id,
const std::string& device_id,
const GURL& document_url,
PepperVideoCaptureHost* handler)
- : render_view_(render_view),
+ : render_frame_id_(render_frame_id),
device_id_(device_id),
session_id_(0),
handler_(handler),
@@ -31,8 +31,9 @@ PepperPlatformVideoCapture::PepperPlatformVideoCapture(
weak_factory_(this) {
// We need to open the device and obtain the label and session ID before
// initializing.
- if (render_view_.get()) {
- pending_open_device_id_ = GetMediaDeviceManager()->OpenDevice(
+ PepperMediaDeviceManager* const device_manager = GetMediaDeviceManager();
+ if (device_manager) {
+ pending_open_device_id_ = device_manager->OpenDevice(
PP_DEVICETYPE_DEV_VIDEOCAPTURE,
device_id,
document_url,
@@ -75,16 +76,18 @@ void PepperPlatformVideoCapture::DetachEventHandler() {
release_device_cb_.Run();
release_device_cb_.Reset();
}
- if (render_view_.get()) {
- if (!label_.empty()) {
- GetMediaDeviceManager()->CloseDevice(label_);
- label_.clear();
- }
- if (pending_open_device_) {
- GetMediaDeviceManager()->CancelOpenDevice(pending_open_device_id_);
- pending_open_device_ = false;
- pending_open_device_id_ = -1;
- }
+ if (!label_.empty()) {
+ PepperMediaDeviceManager* const device_manager = GetMediaDeviceManager();
+ if (device_manager)
+ device_manager->CloseDevice(label_);
+ label_.clear();
+ }
+ if (pending_open_device_) {
+ PepperMediaDeviceManager* const device_manager = GetMediaDeviceManager();
+ if (device_manager)
+ device_manager->CancelOpenDevice(pending_open_device_id_);
+ pending_open_device_ = false;
+ pending_open_device_id_ = -1;
}
}
@@ -101,10 +104,11 @@ void PepperPlatformVideoCapture::OnDeviceOpened(int request_id,
pending_open_device_ = false;
pending_open_device_id_ = -1;
- succeeded = succeeded && render_view_.get();
+ PepperMediaDeviceManager* const device_manager = GetMediaDeviceManager();
+ succeeded = succeeded && device_manager;
if (succeeded) {
label_ = label;
- session_id_ = GetMediaDeviceManager()->GetSessionID(
+ session_id_ = device_manager->GetSessionID(
PP_DEVICETYPE_DEV_VIDEOCAPTURE, label);
VideoCaptureImplManager* manager =
RenderThreadImpl::current()->video_capture_impl_manager();
@@ -145,7 +149,10 @@ void PepperPlatformVideoCapture::OnFrameReady(
}
PepperMediaDeviceManager* PepperPlatformVideoCapture::GetMediaDeviceManager() {
- return PepperMediaDeviceManager::GetForRenderView(render_view_.get());
+ RenderFrameImpl* const render_frame =
+ RenderFrameImpl::FromRoutingID(render_frame_id_);
+ return render_frame ?
+ PepperMediaDeviceManager::GetForRenderFrame(render_frame) : NULL;
}
} // namespace content
« no previous file with comments | « content/renderer/pepper/pepper_platform_video_capture.h ('k') | content/renderer/pepper/pepper_video_capture_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698