Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1144)

Unified Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 1078123002: Send resize event when the screen info changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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*
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.h ('k') | content/browser/renderer_host/render_widget_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698