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

Side by Side 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: 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_impl.h" 5 #include "content/browser/renderer_host/render_widget_host_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 hung_renderer_delay_( 163 hung_renderer_delay_(
164 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), 164 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)),
165 delegate_(delegate), 165 delegate_(delegate),
166 process_(process), 166 process_(process),
167 routing_id_(routing_id), 167 routing_id_(routing_id),
168 surface_id_(0), 168 surface_id_(0),
169 is_loading_(false), 169 is_loading_(false),
170 is_hidden_(hidden), 170 is_hidden_(hidden),
171 repaint_ack_pending_(false), 171 repaint_ack_pending_(false),
172 resize_ack_pending_(false), 172 resize_ack_pending_(false),
173 screen_info_out_of_date_(false), 173 screen_info_out_of_date_(true),
174 auto_resize_enabled_(false), 174 auto_resize_enabled_(false),
175 waiting_for_screen_rects_ack_(false), 175 waiting_for_screen_rects_ack_(false),
176 needs_repainting_on_restore_(false), 176 needs_repainting_on_restore_(false),
177 is_unresponsive_(false), 177 is_unresponsive_(false),
178 in_flight_event_count_(0), 178 in_flight_event_count_(0),
179 in_get_backing_store_(false), 179 in_get_backing_store_(false),
180 ignore_input_events_(false), 180 ignore_input_events_(false),
181 input_method_active_(false), 181 input_method_active_(false),
182 text_direction_updated_(false), 182 text_direction_updated_(false),
183 text_direction_(blink::WebTextDirectionLeftToRight), 183 text_direction_(blink::WebTextDirectionLeftToRight),
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 // could handle both the restore and resize at once. This isn't that big a 573 // could handle both the restore and resize at once. This isn't that big a
574 // deal as RenderWidget::WasShown delays updating, so that the resize from 574 // deal as RenderWidget::WasShown delays updating, so that the resize from
575 // WasResized is usually processed before the renderer is painted. 575 // WasResized is usually processed before the renderer is painted.
576 WasResized(); 576 WasResized();
577 } 577 }
578 578
579 bool RenderWidgetHostImpl::GetResizeParams( 579 bool RenderWidgetHostImpl::GetResizeParams(
580 ViewMsg_Resize_Params* resize_params) { 580 ViewMsg_Resize_Params* resize_params) {
581 *resize_params = ViewMsg_Resize_Params(); 581 *resize_params = ViewMsg_Resize_Params();
582 582
583 if (!screen_info_) { 583 const bool screen_info_was_out_of_date = screen_info_out_of_date_;
584 if (screen_info_out_of_date_) {
584 screen_info_.reset(new blink::WebScreenInfo); 585 screen_info_.reset(new blink::WebScreenInfo);
585 GetWebScreenInfo(screen_info_.get()); 586 GetWebScreenInfo(screen_info_.get());
587 screen_info_out_of_date_ = false;
586 } 588 }
no sievers 2015/04/10 18:40:31 Should we just move this out to WasResized()? And
mlamouri (slow - plz ping) 2015/04/13 11:39:08 Done.
587 resize_params->screen_info = *screen_info_; 589 resize_params->screen_info = *screen_info_;
588 resize_params->resizer_rect = GetRootWindowResizerRect(); 590 resize_params->resizer_rect = GetRootWindowResizerRect();
589 591
590 if (view_) { 592 if (view_) {
591 resize_params->new_size = view_->GetRequestedRendererSize(); 593 resize_params->new_size = view_->GetRequestedRendererSize();
592 resize_params->physical_backing_size = view_->GetPhysicalBackingSize(); 594 resize_params->physical_backing_size = view_->GetPhysicalBackingSize();
593 resize_params->top_controls_height = view_->GetTopControlsHeight(); 595 resize_params->top_controls_height = view_->GetTopControlsHeight();
594 resize_params->top_controls_shrink_blink_size = 596 resize_params->top_controls_shrink_blink_size =
595 view_->DoTopControlsShrinkBlinkSize(); 597 view_->DoTopControlsShrinkBlinkSize();
596 resize_params->visible_viewport_size = view_->GetVisibleViewportSize(); 598 resize_params->visible_viewport_size = view_->GetVisibleViewportSize();
597 resize_params->is_fullscreen = IsFullscreen(); 599 resize_params->is_fullscreen = IsFullscreen();
598 } 600 }
599 601
600 const bool size_changed = 602 const bool size_changed =
601 !old_resize_params_ || 603 !old_resize_params_ ||
602 old_resize_params_->new_size != resize_params->new_size || 604 old_resize_params_->new_size != resize_params->new_size ||
603 (old_resize_params_->physical_backing_size.IsEmpty() && 605 (old_resize_params_->physical_backing_size.IsEmpty() &&
604 !resize_params->physical_backing_size.IsEmpty()); 606 !resize_params->physical_backing_size.IsEmpty());
605 bool dirty = 607 bool dirty =
606 size_changed || screen_info_out_of_date_ || 608 size_changed || screen_info_was_out_of_date ||
607 old_resize_params_->physical_backing_size != 609 old_resize_params_->physical_backing_size !=
608 resize_params->physical_backing_size || 610 resize_params->physical_backing_size ||
609 old_resize_params_->is_fullscreen != resize_params->is_fullscreen || 611 old_resize_params_->is_fullscreen != resize_params->is_fullscreen ||
610 old_resize_params_->top_controls_height != 612 old_resize_params_->top_controls_height !=
611 resize_params->top_controls_height || 613 resize_params->top_controls_height ||
612 old_resize_params_->top_controls_shrink_blink_size != 614 old_resize_params_->top_controls_shrink_blink_size !=
613 resize_params->top_controls_shrink_blink_size || 615 resize_params->top_controls_shrink_blink_size ||
614 old_resize_params_->visible_viewport_size != 616 old_resize_params_->visible_viewport_size !=
615 resize_params->visible_viewport_size; 617 resize_params->visible_viewport_size;
616 618
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 } 1130 }
1129 } 1131 }
1130 1132
1131 void RenderWidgetHostImpl::GetWebScreenInfo(blink::WebScreenInfo* result) { 1133 void RenderWidgetHostImpl::GetWebScreenInfo(blink::WebScreenInfo* result) {
1132 TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::GetWebScreenInfo"); 1134 TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::GetWebScreenInfo");
1133 if (view_) 1135 if (view_)
1134 view_->GetScreenInfo(result); 1136 view_->GetScreenInfo(result);
1135 else 1137 else
1136 RenderWidgetHostViewBase::GetDefaultScreenInfo(result); 1138 RenderWidgetHostViewBase::GetDefaultScreenInfo(result);
1137 latency_tracker_.set_device_scale_factor(result->deviceScaleFactor); 1139 latency_tracker_.set_device_scale_factor(result->deviceScaleFactor);
1138 screen_info_out_of_date_ = false;
1139 } 1140 }
1140 1141
1141 const NativeWebKeyboardEvent* 1142 const NativeWebKeyboardEvent*
1142 RenderWidgetHostImpl::GetLastKeyboardEvent() const { 1143 RenderWidgetHostImpl::GetLastKeyboardEvent() const {
1143 return input_router_->GetLastKeyboardEvent(); 1144 return input_router_->GetLastKeyboardEvent();
1144 } 1145 }
1145 1146
1146 void RenderWidgetHostImpl::NotifyScreenInfoChanged() { 1147 void RenderWidgetHostImpl::NotifyScreenInfoChanged() {
1147 if (delegate_) 1148 if (delegate_)
1148 delegate_->ScreenInfoChanged(); 1149 delegate_->ScreenInfoChanged();
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 } 2120 }
2120 #endif 2121 #endif
2121 2122
2122 SkColorType RenderWidgetHostImpl::PreferredReadbackFormat() { 2123 SkColorType RenderWidgetHostImpl::PreferredReadbackFormat() {
2123 if (view_) 2124 if (view_)
2124 return view_->PreferredReadbackFormat(); 2125 return view_->PreferredReadbackFormat();
2125 return kN32_SkColorType; 2126 return kN32_SkColorType;
2126 } 2127 }
2127 2128
2128 } // namespace content 2129 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698