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

Unified Diff: content/browser/renderer_host/media/video_capture_host.cc

Issue 2430313007: VideoCapture: remove last remnants of IPC (Closed)
Patch Set: rockot@ comment on using ChildThread Created 4 years, 2 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/browser/renderer_host/media/video_capture_host.cc
diff --git a/content/browser/renderer_host/media/video_capture_host.cc b/content/browser/renderer_host/media/video_capture_host.cc
index b699b8bc09bb5e3df8d526e75589106388dbb3c3..71c61c03561315f73e81195f730fec7575e28246 100644
--- a/content/browser/renderer_host/media/video_capture_host.cc
+++ b/content/browser/renderer_host/media/video_capture_host.cc
@@ -11,22 +11,28 @@
#include "content/browser/browser_main_loop.h"
#include "content/browser/renderer_host/media/media_stream_manager.h"
#include "content/browser/renderer_host/media/video_capture_manager.h"
-#include "content/common/media/video_capture_messages.h"
-#include "mojo/public/cpp/system/platform_handle.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
namespace content {
VideoCaptureHost::VideoCaptureHost(MediaStreamManager* media_stream_manager)
- : BrowserMessageFilter(VideoCaptureMsgStart),
- BrowserAssociatedInterface(this, this),
- media_stream_manager_(media_stream_manager) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ : media_stream_manager_(media_stream_manager),
+ weak_factory_(this) {
+ DVLOG(1) << __func__;
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
}
-VideoCaptureHost::~VideoCaptureHost() {}
+// static
+void VideoCaptureHost::Create(MediaStreamManager* media_stream_manager,
+ mojom::VideoCaptureHostRequest request) {
+ DVLOG(1) << __func__;
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ mojo::MakeStrongBinding(
+ base::MakeUnique<VideoCaptureHost>(media_stream_manager),
+ std::move(request));
+}
-void VideoCaptureHost::OnChannelClosing() {
- // Since the IPC sender is gone, close all requested VideoCaptureDevices.
+VideoCaptureHost::~VideoCaptureHost() {
for (auto it = controllers_.begin(); it != controllers_.end(); ) {
const base::WeakPtr<VideoCaptureController>& controller = it->second;
if (controller) {
@@ -43,21 +49,13 @@ void VideoCaptureHost::OnChannelClosing() {
}
}
-void VideoCaptureHost::OnDestruct() const {
- BrowserThread::DeleteOnIOThread::Destruct(this);
-}
-
-bool VideoCaptureHost::OnMessageReceived(const IPC::Message& message) {
- NOTREACHED() << __func__ << " should not be receiving messages";
- return true;
-}
-
void VideoCaptureHost::OnError(VideoCaptureControllerID controller_id) {
DVLOG(1) << __func__;
DCHECK_CURRENTLY_ON(BrowserThread::IO);
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- base::Bind(&VideoCaptureHost::DoError, this, controller_id));
+ base::Bind(&VideoCaptureHost::DoError, weak_factory_.GetWeakPtr(),
+ controller_id));
}
void VideoCaptureHost::OnBufferCreated(VideoCaptureControllerID controller_id,
@@ -114,7 +112,8 @@ void VideoCaptureHost::OnEnded(VideoCaptureControllerID controller_id) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- base::Bind(&VideoCaptureHost::DoEnded, this, controller_id));
+ base::Bind(&VideoCaptureHost::DoEnded, weak_factory_.GetWeakPtr(),
+ controller_id));
}
void VideoCaptureHost::Start(int32_t device_id,
@@ -138,11 +137,9 @@ void VideoCaptureHost::Start(int32_t device_id,
controllers_[controller_id] = base::WeakPtr<VideoCaptureController>();
media_stream_manager_->video_capture_manager()->StartCaptureForClient(
- session_id,
- params,
- controller_id,
- this,
- base::Bind(&VideoCaptureHost::OnControllerAdded, this, device_id));
+ session_id, params, controller_id, this,
+ base::Bind(&VideoCaptureHost::OnControllerAdded,
+ weak_factory_.GetWeakPtr(), device_id));
}
void VideoCaptureHost::Stop(int32_t device_id) {

Powered by Google App Engine
This is Rietveld 408576698