Index: android_webview/browser/hardware_renderer.cc |
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc |
index f4962320364f7e100cf32147643c1a17686cef0f..b51a383ecf3ed906ce83896ce9b25cecb1bfbb2b 100644 |
--- a/android_webview/browser/hardware_renderer.cc |
+++ b/android_webview/browser/hardware_renderer.cc |
@@ -118,22 +118,18 @@ |
std::unique_ptr<cc::CompositorFrame> child_compositor_frame = |
std::move(child_frame_->frame); |
- float device_scale_factor = |
- child_compositor_frame->metadata.device_scale_factor; |
gfx::Size frame_size = |
child_compositor_frame->render_pass_list.back()->output_rect.size(); |
- if (!child_id_.is_valid() || surface_size_ != frame_size || |
- device_scale_factor_ != device_scale_factor) { |
+ bool size_changed = frame_size != frame_size_; |
+ frame_size_ = frame_size; |
+ if (!child_id_.is_valid() || size_changed) { |
if (child_id_.is_valid()) |
DestroySurface(); |
AllocateSurface(); |
- surface_size_ = frame_size; |
- device_scale_factor_ = device_scale_factor; |
} |
- bool result = support_->SubmitCompositorFrame( |
- child_id_, std::move(*child_compositor_frame)); |
- DCHECK(result); |
+ support_->SubmitCompositorFrame(child_id_, |
+ std::move(*child_compositor_frame)); |
} |
gfx::Transform transform(gfx::Transform::kSkipInitialization); |
@@ -157,7 +153,7 @@ |
gfx::Rect clip(draw_info->clip_left, draw_info->clip_top, |
draw_info->clip_right - draw_info->clip_left, |
draw_info->clip_bottom - draw_info->clip_top); |
- surfaces_->DrawAndSwap(viewport, clip, transform, surface_size_, |
+ surfaces_->DrawAndSwap(viewport, clip, transform, frame_size_, |
cc::SurfaceId(frame_sink_id_, child_id_)); |
} |
@@ -171,7 +167,7 @@ |
DCHECK(child_id_.is_valid()); |
// Submit an empty frame to force any existing resources to be returned. |
- gfx::Rect rect(surface_size_); |
+ gfx::Rect rect(frame_size_); |
std::unique_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); |
render_pass->SetNew(1, rect, rect, gfx::Transform()); |
cc::CompositorFrame frame; |
@@ -179,9 +175,7 @@ |
// We submit without a prior BeginFrame, so acknowledge a manual BeginFrame. |
frame.metadata.begin_frame_ack = |
cc::BeginFrameAck::CreateManualAckWithDamage(); |
- frame.metadata.device_scale_factor = device_scale_factor_; |
- bool result = support_->SubmitCompositorFrame(child_id_, std::move(frame)); |
- DCHECK(result); |
+ support_->SubmitCompositorFrame(child_id_, std::move(frame)); |
surfaces_->RemoveChildId(cc::SurfaceId(frame_sink_id_, child_id_)); |
support_->EvictCurrentSurface(); |