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

Unified Diff: content/browser/compositor/delegated_frame_host.cc

Issue 1010803013: Revert of De-dupe copy requests for tab capture in DelegatedFrameHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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/compositor/delegated_frame_host.cc
diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc
index 026e0e0dba7c2dedfe362aa361ca5f1130d9162b..e6cb16150673df0c4db6cc80b28610e4154792a2 100644
--- a/content/browser/compositor/delegated_frame_host.cc
+++ b/content/browser/compositor/delegated_frame_host.cc
@@ -64,7 +64,6 @@
skipped_frames_(false),
current_scale_factor_(1.f),
can_lock_compositor_(YES_CAN_LOCK),
- frame_subscriber_copy_request_pending_(false),
delegated_frame_evictor_(new DelegatedFrameEvictor(this)) {
ImageTransportFactory::GetInstance()->AddObserver(this);
}
@@ -268,38 +267,13 @@
scoped_refptr<media::VideoFrame> frame;
RenderWidgetHostViewFrameSubscriber::DeliverFrameCallback callback;
- if (!frame_subscriber()->ShouldCaptureFrame(damage_rect, present_time,
- &frame, &callback))
- return;
-
- if (frame_subscriber_copy_request_pending_) {
- // A copy request was made for the previous frame from the renderer, but
- // drawing never started (which executes the request). Therefore, the
- // prior frame subscriber delivery callback is to be aborted and the current
- // one will be run when the existing copy request completes. This de-duping
- // check must be done after the call to ShouldCaptureFrame() above, since
- // the frame subscriber makes decisions based on the renderer's intentions,
- // and not the performance of the browser compositor.
- DCHECK(!frame_subscriber_callbacks_.empty());
- frame_subscriber_callbacks_.back().Run(false);
- frame_subscriber_callbacks_.back() = base::Bind(callback, present_time);
- return;
- }
-
- // Start a new copy request.
- frame_subscriber_copy_request_pending_ = true;
- frame_subscriber_callbacks_.push_back(base::Bind(callback, present_time));
- CopyFromCompositingSurfaceToVideoFrame(
- gfx::Rect(current_frame_size_in_dip_),
- frame,
- base::Bind(&DelegatedFrameHost::DeliverResultForFrameSubscriber,
- AsWeakPtr()));
-}
-
-void DelegatedFrameHost::DeliverResultForFrameSubscriber(bool success) {
- DCHECK(!frame_subscriber_callbacks_.empty());
- frame_subscriber_callbacks_.front().Run(success);
- frame_subscriber_callbacks_.pop_front();
+ if (frame_subscriber()->ShouldCaptureFrame(damage_rect, present_time,
+ &frame, &callback)) {
+ CopyFromCompositingSurfaceToVideoFrame(
+ gfx::Rect(current_frame_size_in_dip_),
+ frame,
+ base::Bind(callback, present_time));
+ }
}
void DelegatedFrameHost::SwapDelegatedFrame(
@@ -880,7 +854,6 @@
void DelegatedFrameHost::OnCompositingStarted(
ui::Compositor* compositor, base::TimeTicks start_time) {
last_draw_ended_ = start_time;
- frame_subscriber_copy_request_pending_ = false;
}
void DelegatedFrameHost::OnCompositingEnded(
@@ -930,11 +903,6 @@
// DelegatedFrameHost, private:
DelegatedFrameHost::~DelegatedFrameHost() {
- while (!frame_subscriber_callbacks_.empty()) {
- frame_subscriber_callbacks_.front().Run(false);
- frame_subscriber_callbacks_.pop_front();
- }
-
DCHECK(!compositor_);
ImageTransportFactory::GetInstance()->RemoveObserver(this);
« no previous file with comments | « content/browser/compositor/delegated_frame_host.h ('k') | content/browser/media/capture/video_capture_oracle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698