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* |