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

Unified Diff: content/browser/media/capture/web_contents_video_capture_device.cc

Issue 2652343003: Replace source pointer in cc::CopyOutputRequest with a base::UnguessableToken (Closed)
Patch Set: c Created 3 years, 11 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/media/capture/web_contents_video_capture_device.cc
diff --git a/content/browser/media/capture/web_contents_video_capture_device.cc b/content/browser/media/capture/web_contents_video_capture_device.cc
index 5be935ef1619d9c116a94ba4ead2e26e53c28e31..9b44e7f44efc453735434b05e9336d90cc25af1c 100644
--- a/content/browser/media/capture/web_contents_video_capture_device.cc
+++ b/content/browser/media/capture/web_contents_video_capture_device.cc
@@ -60,15 +60,9 @@ class FrameSubscriber : public RenderWidgetHostViewFrameSubscriber {
oracle_proxy_(std::move(oracle)),
cursor_renderer_(cursor_renderer),
window_activity_tracker_(tracker),
+ source_id_for_copy_request_(base::UnguessableToken::Create()),
weak_ptr_factory_(this) {}
- bool ShouldCaptureFrame(
- const gfx::Rect& damage_rect,
- base::TimeTicks present_time,
- scoped_refptr<media::VideoFrame>* storage,
- RenderWidgetHostViewFrameSubscriber::DeliverFrameCallback*
- deliver_frame_cb) override;
-
static void DidCaptureFrame(
base::WeakPtr<FrameSubscriber> frame_subscriber_,
const media::ThreadSafeCaptureOracle::CaptureFrameCallback&
@@ -80,6 +74,15 @@ class FrameSubscriber : public RenderWidgetHostViewFrameSubscriber {
bool IsUserInteractingWithContent();
+ // RenderWidgetHostViewFrameSubscriber implementation:
+ bool ShouldCaptureFrame(
+ const gfx::Rect& damage_rect,
+ base::TimeTicks present_time,
+ scoped_refptr<media::VideoFrame>* storage,
+ RenderWidgetHostViewFrameSubscriber::DeliverFrameCallback*
+ deliver_frame_cb) override;
+ base::UnguessableToken GetSourceIdForCopyRequest() override;
Fady Samuel 2017/01/26 21:22:42 const base::UnguessableToken&?
Saman Sami 2017/01/26 21:47:27 Done.
+
private:
const media::VideoCaptureOracle::Event event_type_;
const scoped_refptr<media::ThreadSafeCaptureOracle> oracle_proxy_;
@@ -89,6 +92,7 @@ class FrameSubscriber : public RenderWidgetHostViewFrameSubscriber {
// We need a weak pointer since FrameSubscriber is owned externally and
// may outlive the ui activity tracker.
const base::WeakPtr<WindowActivityTracker> window_activity_tracker_;
+ base::UnguessableToken source_id_for_copy_request_;
base::WeakPtrFactory<FrameSubscriber> weak_ptr_factory_;
};
@@ -243,28 +247,6 @@ class WebContentsCaptureMachine : public media::VideoCaptureMachine {
DISALLOW_COPY_AND_ASSIGN(WebContentsCaptureMachine);
};
-bool FrameSubscriber::ShouldCaptureFrame(
- const gfx::Rect& damage_rect,
- base::TimeTicks present_time,
- scoped_refptr<media::VideoFrame>* storage,
- DeliverFrameCallback* deliver_frame_cb) {
- TRACE_EVENT1("gpu.capture", "FrameSubscriber::ShouldCaptureFrame", "instance",
- this);
-
- media::ThreadSafeCaptureOracle::CaptureFrameCallback capture_frame_cb;
- if (!oracle_proxy_->ObserveEventAndDecideCapture(
- event_type_, damage_rect, present_time, storage, &capture_frame_cb)) {
- return false;
- }
-
- DCHECK(*storage);
- DCHECK(!capture_frame_cb.is_null());
- *deliver_frame_cb =
- base::Bind(&FrameSubscriber::DidCaptureFrame,
- weak_ptr_factory_.GetWeakPtr(), capture_frame_cb, *storage);
- return true;
-}
-
void FrameSubscriber::DidCaptureFrame(
base::WeakPtr<FrameSubscriber> frame_subscriber_,
const media::ThreadSafeCaptureOracle::CaptureFrameCallback&
@@ -310,6 +292,32 @@ bool FrameSubscriber::IsUserInteractingWithContent() {
return interactive_mode;
}
+bool FrameSubscriber::ShouldCaptureFrame(
+ const gfx::Rect& damage_rect,
+ base::TimeTicks present_time,
+ scoped_refptr<media::VideoFrame>* storage,
+ DeliverFrameCallback* deliver_frame_cb) {
+ TRACE_EVENT1("gpu.capture", "FrameSubscriber::ShouldCaptureFrame", "instance",
+ this);
+
+ media::ThreadSafeCaptureOracle::CaptureFrameCallback capture_frame_cb;
+ if (!oracle_proxy_->ObserveEventAndDecideCapture(
+ event_type_, damage_rect, present_time, storage, &capture_frame_cb)) {
+ return false;
+ }
+
+ DCHECK(*storage);
+ DCHECK(!capture_frame_cb.is_null());
+ *deliver_frame_cb =
+ base::Bind(&FrameSubscriber::DidCaptureFrame,
+ weak_ptr_factory_.GetWeakPtr(), capture_frame_cb, *storage);
+ return true;
+}
+
+base::UnguessableToken FrameSubscriber::GetSourceIdForCopyRequest() {
Fady Samuel 2017/01/26 21:22:42 const base::UnguessableToken&
Saman Sami 2017/01/26 21:47:27 Done.
+ return source_id_for_copy_request_;
+}
+
ContentCaptureSubscription::ContentCaptureSubscription(
base::WeakPtr<RenderWidgetHostViewBase> source_view,
scoped_refptr<media::ThreadSafeCaptureOracle> oracle_proxy,

Powered by Google App Engine
This is Rietveld 408576698