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

Side by Side Diff: content/renderer/render_widget.cc

Issue 1894333002: Make WebWidget::resize early out if the size doesn't change. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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
« no previous file with comments | « no previous file | content/renderer/render_widget_fullscreen_pepper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | content/renderer/render_widget_fullscreen_pepper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698