Index: ui/aura/local/compositor_frame_sink_local.cc |
diff --git a/ui/aura/local/compositor_frame_sink_local.cc b/ui/aura/local/compositor_frame_sink_local.cc |
index 2aa89b2de22c2af6649b1a7751fca1dfd658c5a7..a92bca46b5a0c3b589e0e93f0590adf8e4cd40c1 100644 |
--- a/ui/aura/local/compositor_frame_sink_local.cc |
+++ b/ui/aura/local/compositor_frame_sink_local.cc |
@@ -66,20 +66,21 @@ void CompositorFrameSinkLocal::SubmitCompositorFrame( |
frame.metadata.begin_frame_ack.sequence_number); |
cc::LocalSurfaceId old_local_surface_id = local_surface_id_; |
- if (!frame.render_pass_list.empty()) { |
- const auto& frame_size = frame.render_pass_list.back()->output_rect.size(); |
- if (frame_size != last_submitted_frame_size_ || |
- !local_surface_id_.is_valid()) { |
- last_submitted_frame_size_ = frame_size; |
- local_surface_id_ = id_allocator_.GenerateId(); |
- } |
+ const auto& frame_size = frame.render_pass_list.back()->output_rect.size(); |
+ if (frame_size != surface_size_ || |
+ frame.metadata.device_scale_factor != device_scale_factor_ || |
+ !local_surface_id_.is_valid()) { |
+ surface_size_ = frame_size; |
+ device_scale_factor_ = frame.metadata.device_scale_factor; |
+ local_surface_id_ = id_allocator_.GenerateId(); |
} |
- support_->SubmitCompositorFrame(local_surface_id_, std::move(frame)); |
+ bool result = |
+ support_->SubmitCompositorFrame(local_surface_id_, std::move(frame)); |
+ DCHECK(result); |
if (local_surface_id_ != old_local_surface_id) { |
surface_changed_callback_.Run( |
- cc::SurfaceId(frame_sink_id_, local_surface_id_), |
- last_submitted_frame_size_); |
+ cc::SurfaceId(frame_sink_id_, local_surface_id_), surface_size_); |
} |
} |