OLD | NEW |
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/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 blink::WebPopupType popup_type, | 211 blink::WebPopupType popup_type, |
212 const blink::WebScreenInfo& screen_info, | 212 const blink::WebScreenInfo& screen_info, |
213 bool swapped_out, | 213 bool swapped_out, |
214 bool hidden, | 214 bool hidden, |
215 bool never_visible) | 215 bool never_visible) |
216 : routing_id_(MSG_ROUTING_NONE), | 216 : routing_id_(MSG_ROUTING_NONE), |
217 compositor_deps_(compositor_deps), | 217 compositor_deps_(compositor_deps), |
218 webwidget_(nullptr), | 218 webwidget_(nullptr), |
219 owner_delegate_(nullptr), | 219 owner_delegate_(nullptr), |
220 opener_id_(MSG_ROUTING_NONE), | 220 opener_id_(MSG_ROUTING_NONE), |
221 top_controls_shrink_blink_size_(false), | |
222 top_controls_height_(0.f), | |
223 next_paint_flags_(0), | 221 next_paint_flags_(0), |
224 auto_resize_mode_(false), | 222 auto_resize_mode_(false), |
225 need_update_rect_for_auto_resize_(false), | 223 need_update_rect_for_auto_resize_(false), |
226 did_show_(false), | 224 did_show_(false), |
227 is_hidden_(hidden), | 225 is_hidden_(hidden), |
228 compositor_never_visible_(never_visible), | 226 compositor_never_visible_(never_visible), |
229 is_fullscreen_granted_(false), | 227 is_fullscreen_granted_(false), |
230 display_mode_(blink::WebDisplayModeUndefined), | 228 display_mode_(blink::WebDisplayModeUndefined), |
231 ime_event_guard_(nullptr), | 229 ime_event_guard_(nullptr), |
232 closing_(false), | 230 closing_(false), |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 return RenderThread::Get()->Send(message); | 506 return RenderThread::Get()->Send(message); |
509 } | 507 } |
510 | 508 |
511 void RenderWidget::SetWindowRectSynchronously( | 509 void RenderWidget::SetWindowRectSynchronously( |
512 const gfx::Rect& new_window_rect) { | 510 const gfx::Rect& new_window_rect) { |
513 ResizeParams params; | 511 ResizeParams params; |
514 params.screen_info = screen_info_; | 512 params.screen_info = screen_info_; |
515 params.new_size = new_window_rect.size(); | 513 params.new_size = new_window_rect.size(); |
516 params.physical_backing_size = | 514 params.physical_backing_size = |
517 gfx::ScaleToCeiledSize(new_window_rect.size(), device_scale_factor_); | 515 gfx::ScaleToCeiledSize(new_window_rect.size(), device_scale_factor_); |
518 params.top_controls_shrink_blink_size = top_controls_shrink_blink_size_; | |
519 params.top_controls_height = top_controls_height_; | |
520 params.visible_viewport_size = new_window_rect.size(); | 516 params.visible_viewport_size = new_window_rect.size(); |
521 params.resizer_rect = gfx::Rect(); | 517 params.resizer_rect = gfx::Rect(); |
522 params.is_fullscreen_granted = is_fullscreen_granted_; | 518 params.is_fullscreen_granted = is_fullscreen_granted_; |
523 params.display_mode = display_mode_; | 519 params.display_mode = display_mode_; |
524 params.needs_resize_ack = false; | 520 params.needs_resize_ack = false; |
525 Resize(params); | 521 Resize(params); |
526 | 522 |
527 view_screen_rect_ = new_window_rect; | 523 view_screen_rect_ = new_window_rect; |
528 window_screen_rect_ = new_window_rect; | 524 window_screen_rect_ = new_window_rect; |
529 if (!did_show_) | 525 if (!did_show_) |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 } | 573 } |
578 | 574 |
579 void RenderWidget::OnEnableDeviceEmulation( | 575 void RenderWidget::OnEnableDeviceEmulation( |
580 const blink::WebDeviceEmulationParams& params) { | 576 const blink::WebDeviceEmulationParams& params) { |
581 if (!screen_metrics_emulator_) { | 577 if (!screen_metrics_emulator_) { |
582 ResizeParams resize_params; | 578 ResizeParams resize_params; |
583 resize_params.screen_info = screen_info_; | 579 resize_params.screen_info = screen_info_; |
584 resize_params.new_size = size_; | 580 resize_params.new_size = size_; |
585 resize_params.physical_backing_size = physical_backing_size_; | 581 resize_params.physical_backing_size = physical_backing_size_; |
586 resize_params.visible_viewport_size = visible_viewport_size_; | 582 resize_params.visible_viewport_size = visible_viewport_size_; |
587 resize_params.top_controls_shrink_blink_size = | |
588 top_controls_shrink_blink_size_; | |
589 resize_params.top_controls_height = top_controls_height_; | |
590 resize_params.resizer_rect = resizer_rect_; | 583 resize_params.resizer_rect = resizer_rect_; |
591 resize_params.is_fullscreen_granted = is_fullscreen_granted_; | 584 resize_params.is_fullscreen_granted = is_fullscreen_granted_; |
592 resize_params.display_mode = display_mode_; | 585 resize_params.display_mode = display_mode_; |
593 screen_metrics_emulator_.reset(new RenderWidgetScreenMetricsEmulator( | 586 screen_metrics_emulator_.reset(new RenderWidgetScreenMetricsEmulator( |
594 this, params, resize_params, view_screen_rect_, window_screen_rect_)); | 587 this, params, resize_params, view_screen_rect_, window_screen_rect_)); |
595 screen_metrics_emulator_->Apply(); | 588 screen_metrics_emulator_->Apply(); |
596 } else { | 589 } else { |
597 screen_metrics_emulator_->ChangeEmulationParams(params); | 590 screen_metrics_emulator_->ChangeEmulationParams(params); |
598 } | 591 } |
599 } | 592 } |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1118 | 1111 |
1119 if (compositor_) | 1112 if (compositor_) |
1120 compositor_->setViewportSize(params.physical_backing_size); | 1113 compositor_->setViewportSize(params.physical_backing_size); |
1121 | 1114 |
1122 bool resized = size_ != params.new_size || | 1115 bool resized = size_ != params.new_size || |
1123 physical_backing_size_ != params.physical_backing_size; | 1116 physical_backing_size_ != params.physical_backing_size; |
1124 | 1117 |
1125 size_ = params.new_size; | 1118 size_ = params.new_size; |
1126 physical_backing_size_ = params.physical_backing_size; | 1119 physical_backing_size_ = params.physical_backing_size; |
1127 | 1120 |
1128 top_controls_shrink_blink_size_ = params.top_controls_shrink_blink_size; | |
1129 top_controls_height_ = params.top_controls_height; | |
1130 visible_viewport_size_ = params.visible_viewport_size; | 1121 visible_viewport_size_ = params.visible_viewport_size; |
1131 resizer_rect_ = params.resizer_rect; | 1122 resizer_rect_ = params.resizer_rect; |
1132 | 1123 |
1133 // NOTE: We may have entered fullscreen mode without changing our size. | 1124 // NOTE: We may have entered fullscreen mode without changing our size. |
1134 bool fullscreen_change = | 1125 bool fullscreen_change = |
1135 is_fullscreen_granted_ != params.is_fullscreen_granted; | 1126 is_fullscreen_granted_ != params.is_fullscreen_granted; |
1136 is_fullscreen_granted_ = params.is_fullscreen_granted; | 1127 is_fullscreen_granted_ = params.is_fullscreen_granted; |
1137 display_mode_ = params.display_mode; | 1128 display_mode_ = params.display_mode; |
1138 | 1129 |
1139 webwidget_->setTopControlsHeight(params.top_controls_height, | |
1140 top_controls_shrink_blink_size_); | |
1141 | |
1142 if (resized) { | 1130 if (resized) { |
1143 gfx::Size new_widget_size = size_; | 1131 gfx::Size new_widget_size = size_; |
1144 if (IsUseZoomForDSFEnabled()) { | 1132 if (IsUseZoomForDSFEnabled()) { |
1145 new_widget_size = gfx::ScaleToCeiledSize(new_widget_size, | 1133 new_widget_size = gfx::ScaleToCeiledSize(new_widget_size, |
1146 GetOriginalDeviceScaleFactor()); | 1134 GetOriginalDeviceScaleFactor()); |
1147 } | 1135 } |
1148 // When resizing, we want to wait to paint before ACK'ing the resize. This | 1136 // When resizing, we want to wait to paint before ACK'ing the resize. This |
1149 // ensures that we only resize as fast as we can paint. We only need to | 1137 // ensures that we only resize as fast as we can paint. We only need to |
1150 // send an ACK if we are resized to a non-empty rect. | 1138 // send an ACK if we are resized to a non-empty rect. |
1151 webwidget_->resize(new_widget_size); | 1139 webwidget_->resize(new_widget_size); |
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2148 } | 2136 } |
2149 | 2137 |
2150 float RenderWidget::GetOriginalDeviceScaleFactor() const { | 2138 float RenderWidget::GetOriginalDeviceScaleFactor() const { |
2151 return | 2139 return |
2152 screen_metrics_emulator_ ? | 2140 screen_metrics_emulator_ ? |
2153 screen_metrics_emulator_->original_screen_info().deviceScaleFactor : | 2141 screen_metrics_emulator_->original_screen_info().deviceScaleFactor : |
2154 device_scale_factor_; | 2142 device_scale_factor_; |
2155 } | 2143 } |
2156 | 2144 |
2157 } // namespace content | 2145 } // namespace content |
OLD | NEW |