| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index b910e62be6c2d7688dff87550476b003afd3adbc..01d454214d3767dc76538cd41e408aa505f7b583 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -186,7 +186,7 @@ class RenderWidget::ScreenMetricsEmulator {
|
|
|
| private:
|
| void Reapply();
|
| - void Apply(float overdraw_bottom_height,
|
| + void Apply(float overdraw_bottom_height, int visible_viewport_height,
|
| gfx::Rect resizer_rect, bool is_fullscreen);
|
|
|
| RenderWidget* widget_;
|
| @@ -220,7 +220,7 @@ RenderWidget::ScreenMetricsEmulator::ScreenMetricsEmulator(
|
| original_screen_info_ = widget_->screen_info_;
|
| original_view_screen_rect_ = widget_->view_screen_rect_;
|
| original_window_screen_rect_ = widget_->window_screen_rect_;
|
| - Apply(widget_->overdraw_bottom_height_,
|
| + Apply(widget_->overdraw_bottom_height_, widget_->visible_viewport_height_,
|
| widget_->resizer_rect_, widget_->is_fullscreen_);
|
| }
|
|
|
| @@ -232,8 +232,8 @@ RenderWidget::ScreenMetricsEmulator::~ScreenMetricsEmulator() {
|
| widget_->view_screen_rect_ = original_view_screen_rect_;
|
| widget_->window_screen_rect_ = original_window_screen_rect_;
|
| widget_->Resize(original_size_, original_physical_backing_size_,
|
| - widget_->overdraw_bottom_height_, widget_->resizer_rect_,
|
| - widget_->is_fullscreen_, NO_RESIZE_ACK);
|
| + widget_->overdraw_bottom_height_, widget_->visible_viewport_height_,
|
| + widget_->resizer_rect_, widget_->is_fullscreen_, NO_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
|
| @@ -243,12 +243,13 @@ void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::Reapply() {
|
| - Apply(widget_->overdraw_bottom_height_,
|
| + Apply(widget_->overdraw_bottom_height_, widget_->visible_viewport_height_,
|
| widget_->resizer_rect_, widget_->is_fullscreen_);
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::Apply(
|
| - float overdraw_bottom_height, gfx::Rect resizer_rect, bool is_fullscreen) {
|
| + float overdraw_bottom_height, int visible_viewport_height,
|
| + gfx::Rect resizer_rect, bool is_fullscreen) {
|
| applied_widget_rect_.set_size(params_.viewSize.isEmpty() ?
|
| original_size_ : gfx::Size(params_.viewSize));
|
|
|
| @@ -306,7 +307,8 @@ void RenderWidget::ScreenMetricsEmulator::Apply(
|
| gfx::Size physical_backing_size = gfx::ToCeiledSize(gfx::ScaleSize(
|
| original_size_, original_screen_info_.deviceScaleFactor));
|
| widget_->Resize(applied_widget_rect_.size(), physical_backing_size,
|
| - overdraw_bottom_height, resizer_rect, is_fullscreen, NO_RESIZE_ACK);
|
| + overdraw_bottom_height, visible_viewport_height, resizer_rect,
|
| + is_fullscreen, NO_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::OnResizeMessage(
|
| @@ -316,8 +318,8 @@ void RenderWidget::ScreenMetricsEmulator::OnResizeMessage(
|
| original_size_ = params.new_size;
|
| original_physical_backing_size_ = params.physical_backing_size;
|
| original_screen_info_ = params.screen_info;
|
| - Apply(params.overdraw_bottom_height, params.resizer_rect,
|
| - params.is_fullscreen);
|
| + Apply(params.overdraw_bottom_height, params.visible_viewport_height,
|
| + params.resizer_rect, params.is_fullscreen);
|
|
|
| if (need_ack) {
|
| widget_->set_next_paint_is_resize_ack();
|
| @@ -645,6 +647,7 @@ bool RenderWidget::Send(IPC::Message* message) {
|
| void RenderWidget::Resize(const gfx::Size& new_size,
|
| const gfx::Size& physical_backing_size,
|
| float overdraw_bottom_height,
|
| + int visible_viewport_height,
|
| const gfx::Rect& resizer_rect,
|
| bool is_fullscreen,
|
| ResizeAck resize_ack) {
|
| @@ -662,6 +665,8 @@ void RenderWidget::Resize(const gfx::Size& new_size,
|
| if (compositor_) {
|
| compositor_->setViewportSize(new_size, physical_backing_size);
|
| compositor_->SetOverdrawBottomHeight(overdraw_bottom_height);
|
| + gfx::Size pinch_viewport_size(new_size.width(), visible_viewport_height);
|
| + webwidget()->resizePinchViewport(pinch_viewport_size);
|
| }
|
|
|
| physical_backing_size_ = physical_backing_size;
|
| @@ -716,7 +721,7 @@ void RenderWidget::Resize(const gfx::Size& new_size,
|
|
|
| void RenderWidget::ResizeSynchronously(const gfx::Rect& new_position) {
|
| Resize(new_position.size(), new_position.size(), overdraw_bottom_height_,
|
| - gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK);
|
| + visible_viewport_height_, gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK);
|
| view_screen_rect_ = new_position;
|
| window_screen_rect_ = new_position;
|
| if (!did_show_)
|
| @@ -766,8 +771,8 @@ void RenderWidget::OnResize(const ViewMsg_Resize_Params& params) {
|
| screen_info_ = params.screen_info;
|
| SetDeviceScaleFactor(screen_info_.deviceScaleFactor);
|
| Resize(params.new_size, params.physical_backing_size,
|
| - params.overdraw_bottom_height, params.resizer_rect,
|
| - params.is_fullscreen, SEND_RESIZE_ACK);
|
| + params.overdraw_bottom_height, params.visible_viewport_height,
|
| + params.resizer_rect, params.is_fullscreen, SEND_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) {
|
|
|