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

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

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dana's nits Created 4 years, 6 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/delegated_frame_host.cc
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc
index c5b923d5eff86106ce93b9b1c177b03557e6d9af..df479af0112a259e54000e699d091420b50c8b8c 100644
--- a/content/browser/renderer_host/delegated_frame_host.cc
+++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -381,12 +381,11 @@ void DelegatedFrameHost::AttemptFrameSubscriberCapture(
}
}
-void DelegatedFrameHost::SwapDelegatedFrame(
- uint32_t output_surface_id,
- std::unique_ptr<cc::CompositorFrame> frame) {
- DCHECK(frame->delegated_frame_data.get());
- cc::DelegatedFrameData* frame_data = frame->delegated_frame_data.get();
- float frame_device_scale_factor = frame->metadata.device_scale_factor;
+void DelegatedFrameHost::SwapDelegatedFrame(uint32_t output_surface_id,
+ cc::CompositorFrame frame) {
+ DCHECK(frame.delegated_frame_data.get());
+ cc::DelegatedFrameData* frame_data = frame.delegated_frame_data.get();
+ float frame_device_scale_factor = frame.metadata.device_scale_factor;
DCHECK(!frame_data->render_pass_list.empty());
@@ -407,8 +406,8 @@ void DelegatedFrameHost::SwapDelegatedFrame(
&ack.resources);
skipped_latency_info_list_.insert(skipped_latency_info_list_.end(),
- frame->metadata.latency_info.begin(),
- frame->metadata.latency_info.end());
+ frame.metadata.latency_info.begin(),
+ frame.metadata.latency_info.end());
client_->DelegatedFrameHostSendCompositorSwapAck(output_surface_id, ack);
skipped_frames_ = true;
@@ -444,7 +443,7 @@ void DelegatedFrameHost::SwapDelegatedFrame(
bool skip_frame = false;
pending_delegated_ack_count_++;
- background_color_ = frame->metadata.root_background_color;
+ background_color_ = frame.metadata.root_background_color;
if (frame_size.IsEmpty()) {
DCHECK(frame_data->resource_list.empty());
@@ -473,9 +472,9 @@ void DelegatedFrameHost::SwapDelegatedFrame(
current_scale_factor_ = frame_device_scale_factor;
}
- frame->metadata.latency_info.insert(frame->metadata.latency_info.end(),
- skipped_latency_info_list_.begin(),
- skipped_latency_info_list_.end());
+ frame.metadata.latency_info.insert(frame.metadata.latency_info.end(),
+ skipped_latency_info_list_.begin(),
+ skipped_latency_info_list_.end());
skipped_latency_info_list_.clear();
gfx::Size desired_size = client_->DelegatedFrameHostDesiredSizeInDIP();
@@ -487,7 +486,9 @@ void DelegatedFrameHost::SwapDelegatedFrame(
ack_callback = base::Bind(&DelegatedFrameHost::SurfaceDrawn, AsWeakPtr(),
output_surface_id);
}
- surface_factory_->SubmitCompositorFrame(surface_id_, std::move(frame),
+ std::unique_ptr<cc::CompositorFrame> frame_copy(new cc::CompositorFrame);
+ *frame_copy = std::move(frame);
+ surface_factory_->SubmitCompositorFrame(surface_id_, std::move(frame_copy),
ack_callback);
}
released_front_lock_ = NULL;
« no previous file with comments | « content/browser/renderer_host/delegated_frame_host.h ('k') | content/browser/renderer_host/render_widget_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698