Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_impl.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
| index 7dcae5a132096567fdee37d5b5e02de2dc042795..1219bf9ff5c2ab112552912469f5d9fdc579995d 100644 |
| --- a/content/browser/renderer_host/render_widget_host_impl.cc |
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc |
| @@ -170,7 +170,7 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate, |
| is_hidden_(hidden), |
| repaint_ack_pending_(false), |
| resize_ack_pending_(false), |
| - screen_info_out_of_date_(false), |
| + screen_info_out_of_date_(true), |
| auto_resize_enabled_(false), |
| waiting_for_screen_rects_ack_(false), |
| needs_repainting_on_restore_(false), |
| @@ -577,13 +577,9 @@ void RenderWidgetHostImpl::WasShown(const ui::LatencyInfo& latency_info) { |
| } |
| bool RenderWidgetHostImpl::GetResizeParams( |
| - ViewMsg_Resize_Params* resize_params) { |
| + ViewMsg_Resize_Params* resize_params) const { |
| *resize_params = ViewMsg_Resize_Params(); |
| - if (!screen_info_) { |
| - screen_info_.reset(new blink::WebScreenInfo); |
| - GetWebScreenInfo(screen_info_.get()); |
| - } |
|
piman
2015/04/15 19:38:42
Do we need to call UpdateScreenInfo() in RenderVie
mlamouri (slow - plz ping)
2015/04/16 14:56:42
Done.
|
| resize_params->screen_info = *screen_info_; |
| resize_params->resizer_rect = GetRootWindowResizerRect(); |
| @@ -603,7 +599,7 @@ bool RenderWidgetHostImpl::GetResizeParams( |
| (old_resize_params_->physical_backing_size.IsEmpty() && |
| !resize_params->physical_backing_size.IsEmpty()); |
| bool dirty = |
| - size_changed || screen_info_out_of_date_ || |
| + size_changed || |
| old_resize_params_->physical_backing_size != |
| resize_params->physical_backing_size || |
| old_resize_params_->is_fullscreen_granted != |
| @@ -624,6 +620,17 @@ bool RenderWidgetHostImpl::GetResizeParams( |
| return dirty; |
| } |
| +bool RenderWidgetHostImpl::UpdateScreenInfo() { |
| + if (!screen_info_out_of_date_) |
| + return false; |
| + |
| + screen_info_.reset(new blink::WebScreenInfo); |
| + GetWebScreenInfo(screen_info_.get()); |
| + screen_info_out_of_date_ = false; |
| + |
| + return true; |
| +} |
| + |
| void RenderWidgetHostImpl::SetInitialRenderSizeParams( |
| const ViewMsg_Resize_Params& resize_params) { |
| resize_ack_pending_ = resize_params.needs_resize_ack; |
| @@ -640,8 +647,9 @@ void RenderWidgetHostImpl::WasResized() { |
| return; |
| } |
| + bool screen_info_was_updated = UpdateScreenInfo(); |
| scoped_ptr<ViewMsg_Resize_Params> params(new ViewMsg_Resize_Params); |
| - if (!GetResizeParams(params.get())) |
| + if (!GetResizeParams(params.get()) && !screen_info_was_updated) |
| return; |
| bool width_changed = |
| @@ -1136,7 +1144,6 @@ void RenderWidgetHostImpl::GetWebScreenInfo(blink::WebScreenInfo* result) { |
| else |
| RenderWidgetHostViewBase::GetDefaultScreenInfo(result); |
| latency_tracker_.set_device_scale_factor(result->deviceScaleFactor); |
|
no sievers
2015/04/15 18:17:00
This would also be nice to follow up on (maybe a T
mlamouri (slow - plz ping)
2015/04/16 14:56:42
TODO added.
|
| - screen_info_out_of_date_ = false; |
| } |
| const NativeWebKeyboardEvent* |