Index: content/renderer/gpu/renderer_compositor_frame_sink.cc |
diff --git a/content/renderer/gpu/renderer_compositor_frame_sink.cc b/content/renderer/gpu/renderer_compositor_frame_sink.cc |
index f06784c42a312865cc027ea7ac8d7d73b27e29d7..2be7c4fb9e5837ad4737f9aaaea689d49174ddbe 100644 |
--- a/content/renderer/gpu/renderer_compositor_frame_sink.cc |
+++ b/content/renderer/gpu/renderer_compositor_frame_sink.cc |
@@ -125,9 +125,13 @@ void RendererCompositorFrameSink::SubmitCompositorFrame( |
// We should only submit CompositorFrames with valid BeginFrameAcks. |
DCHECK_LE(cc::BeginFrameArgs::kStartingFrameNumber, |
frame.metadata.begin_frame_ack.sequence_number); |
- if (ShouldAllocateNewLocalSurfaceId(frame)) |
+ auto new_surface_properties = |
+ RenderWidgetSurfaceProperties::FromCompositorFrame(frame); |
+ if (!local_surface_id_.is_valid() || |
+ new_surface_properties != current_surface_properties_) { |
local_surface_id_ = id_allocator_.GenerateId(); |
- UpdateFrameData(frame); |
+ current_surface_properties_ = new_surface_properties; |
+ } |
{ |
std::unique_ptr<FrameSwapMessageQueue::SendMessageScope> |
@@ -164,53 +168,6 @@ void RendererCompositorFrameSink::OnBeginFrameIPC( |
external_begin_frame_source_->OnBeginFrame(args); |
} |
-bool RendererCompositorFrameSink::ShouldAllocateNewLocalSurfaceId( |
- const cc::CompositorFrame& frame) { |
- cc::RenderPass* root_pass = frame.render_pass_list.back().get(); |
- gfx::Size frame_size = root_pass->output_rect.size(); |
- |
- // Once the proposal in crbug.com/689754 is implemented, the LocalSurfaceId |
- // allocation logic will be unified across all platforms. |
- return !local_surface_id_.is_valid() || |
- current_frame_data_.device_scale_factor != |
- frame.metadata.device_scale_factor || |
-#ifdef OS_ANDROID |
- current_frame_data_.top_controls_height != |
- frame.metadata.top_controls_height || |
- current_frame_data_.top_controls_shown_ratio != |
- frame.metadata.top_controls_shown_ratio || |
- current_frame_data_.bottom_controls_height != |
- frame.metadata.bottom_controls_height || |
- current_frame_data_.bottom_controls_shown_ratio != |
- frame.metadata.bottom_controls_shown_ratio || |
- current_frame_data_.viewport_selection != frame.metadata.selection || |
- current_frame_data_.has_transparent_background != |
- root_pass->has_transparent_background || |
-#endif |
- current_frame_data_.frame_size != frame_size; |
-} |
- |
-void RendererCompositorFrameSink::UpdateFrameData( |
- const cc::CompositorFrame& frame) { |
- cc::RenderPass* root_pass = frame.render_pass_list.back().get(); |
- gfx::Size frame_size = root_pass->output_rect.size(); |
- |
- current_frame_data_.frame_size = frame_size; |
- current_frame_data_.device_scale_factor = frame.metadata.device_scale_factor; |
-#ifdef OS_ANDROID |
- current_frame_data_.top_controls_height = frame.metadata.top_controls_height; |
- current_frame_data_.top_controls_shown_ratio = |
- frame.metadata.top_controls_shown_ratio; |
- current_frame_data_.bottom_controls_height = |
- frame.metadata.bottom_controls_height; |
- current_frame_data_.bottom_controls_shown_ratio = |
- frame.metadata.bottom_controls_shown_ratio; |
- current_frame_data_.viewport_selection = frame.metadata.selection; |
- current_frame_data_.has_transparent_background = |
- root_pass->has_transparent_background; |
-#endif |
-} |
- |
void RendererCompositorFrameSink::DidReceiveCompositorFrameAck( |
const cc::ReturnedResourceArray& resources) { |
ReclaimResources(resources); |