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 <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor( | 670 std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor( |
671 compositor_->CreateLatencyInfoSwapPromiseMonitor(&swap_latency_info)); | 671 compositor_->CreateLatencyInfoSwapPromiseMonitor(&swap_latency_info)); |
672 compositor_->SetNeedsForcedRedraw(); | 672 compositor_->SetNeedsForcedRedraw(); |
673 } | 673 } |
674 ScheduleComposite(); | 674 ScheduleComposite(); |
675 } | 675 } |
676 | 676 |
677 void RenderWidget::OnRequestMoveAck() { | 677 void RenderWidget::OnRequestMoveAck() { |
678 DCHECK(pending_window_rect_count_); | 678 DCHECK(pending_window_rect_count_); |
679 pending_window_rect_count_--; | 679 pending_window_rect_count_--; |
| 680 if (!pending_window_rect_count_) |
| 681 view_screen_rect_ = pending_window_rect_; |
680 } | 682 } |
681 | 683 |
682 GURL RenderWidget::GetURLForGraphicsContext3D() { | 684 GURL RenderWidget::GetURLForGraphicsContext3D() { |
683 return GURL(); | 685 return GURL(); |
684 } | 686 } |
685 | 687 |
686 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, | 688 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, |
687 const ui::LatencyInfo& latency_info, | 689 const ui::LatencyInfo& latency_info, |
688 InputEventDispatchType dispatch_type) { | 690 InputEventDispatchType dispatch_type) { |
689 if (!input_event) | 691 if (!input_event) |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1127 DCHECK(!params.needs_resize_ack || !next_paint_is_resize_ack()); | 1129 DCHECK(!params.needs_resize_ack || !next_paint_is_resize_ack()); |
1128 } | 1130 } |
1129 | 1131 |
1130 // Ignore this during shutdown. | 1132 // Ignore this during shutdown. |
1131 if (!webwidget_) | 1133 if (!webwidget_) |
1132 return; | 1134 return; |
1133 | 1135 |
1134 if (compositor_) | 1136 if (compositor_) |
1135 compositor_->setViewportSize(params.physical_backing_size); | 1137 compositor_->setViewportSize(params.physical_backing_size); |
1136 | 1138 |
1137 bool resized = size_ != params.new_size || | |
1138 physical_backing_size_ != params.physical_backing_size; | |
1139 | |
1140 size_ = params.new_size; | 1139 size_ = params.new_size; |
1141 physical_backing_size_ = params.physical_backing_size; | 1140 physical_backing_size_ = params.physical_backing_size; |
1142 | 1141 |
1143 top_controls_shrink_blink_size_ = params.top_controls_shrink_blink_size; | 1142 top_controls_shrink_blink_size_ = params.top_controls_shrink_blink_size; |
1144 top_controls_height_ = params.top_controls_height; | 1143 top_controls_height_ = params.top_controls_height; |
1145 visible_viewport_size_ = params.visible_viewport_size; | 1144 visible_viewport_size_ = params.visible_viewport_size; |
1146 resizer_rect_ = params.resizer_rect; | 1145 resizer_rect_ = params.resizer_rect; |
1147 | 1146 |
1148 // NOTE: We may have entered fullscreen mode without changing our size. | 1147 // NOTE: We may have entered fullscreen mode without changing our size. |
1149 bool fullscreen_change = | 1148 bool fullscreen_change = |
1150 is_fullscreen_granted_ != params.is_fullscreen_granted; | 1149 is_fullscreen_granted_ != params.is_fullscreen_granted; |
1151 is_fullscreen_granted_ = params.is_fullscreen_granted; | 1150 is_fullscreen_granted_ = params.is_fullscreen_granted; |
1152 display_mode_ = params.display_mode; | 1151 display_mode_ = params.display_mode; |
1153 | 1152 |
1154 webwidget_->setTopControlsHeight(params.top_controls_height, | 1153 webwidget_->setTopControlsHeight(params.top_controls_height, |
1155 top_controls_shrink_blink_size_); | 1154 top_controls_shrink_blink_size_); |
1156 | 1155 |
1157 if (resized) { | 1156 gfx::Size new_widget_size = size_; |
1158 gfx::Size new_widget_size = size_; | 1157 if (IsUseZoomForDSFEnabled()) { |
1159 if (IsUseZoomForDSFEnabled()) { | 1158 new_widget_size = gfx::ScaleToCeiledSize(new_widget_size, |
1160 new_widget_size = gfx::ScaleToCeiledSize(new_widget_size, | 1159 GetOriginalDeviceScaleFactor()); |
1161 GetOriginalDeviceScaleFactor()); | |
1162 } | |
1163 // When resizing, we want to wait to paint before ACK'ing the resize. This | |
1164 // ensures that we only resize as fast as we can paint. We only need to | |
1165 // send an ACK if we are resized to a non-empty rect. | |
1166 webwidget_->resize(new_widget_size); | |
1167 } | 1160 } |
| 1161 // When resizing, we want to wait to paint before ACK'ing the resize. This |
| 1162 // ensures that we only resize as fast as we can paint. We only need to |
| 1163 // send an ACK if we are resized to a non-empty rect. |
| 1164 webwidget_->resize(new_widget_size); |
| 1165 |
1168 WebSize visual_viewport_size; | 1166 WebSize visual_viewport_size; |
1169 | 1167 |
1170 if (IsUseZoomForDSFEnabled()) { | 1168 if (IsUseZoomForDSFEnabled()) { |
1171 visual_viewport_size = gfx::ScaleToCeiledSize( | 1169 visual_viewport_size = gfx::ScaleToCeiledSize( |
1172 params.visible_viewport_size, | 1170 params.visible_viewport_size, |
1173 GetOriginalDeviceScaleFactor()); | 1171 GetOriginalDeviceScaleFactor()); |
1174 } else { | 1172 } else { |
1175 visual_viewport_size = visible_viewport_size_; | 1173 visual_viewport_size = visible_viewport_size_; |
1176 } | 1174 } |
1177 | 1175 |
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2111 } | 2109 } |
2112 | 2110 |
2113 float RenderWidget::GetOriginalDeviceScaleFactor() const { | 2111 float RenderWidget::GetOriginalDeviceScaleFactor() const { |
2114 return | 2112 return |
2115 screen_metrics_emulator_ ? | 2113 screen_metrics_emulator_ ? |
2116 screen_metrics_emulator_->original_screen_info().deviceScaleFactor : | 2114 screen_metrics_emulator_->original_screen_info().deviceScaleFactor : |
2117 device_scale_factor_; | 2115 device_scale_factor_; |
2118 } | 2116 } |
2119 | 2117 |
2120 } // namespace content | 2118 } // namespace content |
OLD | NEW |