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

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

Issue 1844013002: Fix main thread top controls scrolling to mirror CC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@propertyTreesBoundsDelta
Patch Set: aelias@ review: moved combined resize into WebView 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
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 <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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698