| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 0c4f68e86bb29748d0f86534fb7a41cb71bf8c0c..ba5fd34bd977755446987e385ff9f0cf0a91f03f 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -187,7 +187,9 @@ class RenderWidget::ScreenMetricsEmulator {
|
| private:
|
| void Reapply();
|
| void Apply(float overdraw_bottom_height,
|
| - gfx::Rect resizer_rect, bool is_fullscreen);
|
| + const gfx::Size& visible_viewport_size,
|
| + gfx::Rect resizer_rect,
|
| + bool is_fullscreen);
|
|
|
| RenderWidget* widget_;
|
|
|
| @@ -220,7 +222,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_size_,
|
| widget_->resizer_rect_, widget_->is_fullscreen_);
|
| }
|
|
|
| @@ -232,8 +234,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_size_,
|
| + widget_->resizer_rect_, widget_->is_fullscreen_, NO_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
|
| @@ -243,12 +245,15 @@ void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::Reapply() {
|
| - Apply(widget_->overdraw_bottom_height_,
|
| + Apply(widget_->overdraw_bottom_height_, widget_->visible_viewport_size_,
|
| 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,
|
| + const gfx::Size& visible_viewport_size,
|
| + gfx::Rect resizer_rect,
|
| + bool is_fullscreen) {
|
| applied_widget_rect_.set_size(params_.viewSize.isEmpty() ?
|
| original_size_ : gfx::Size(params_.viewSize));
|
|
|
| @@ -306,7 +311,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_size, resizer_rect,
|
| + is_fullscreen, NO_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::ScreenMetricsEmulator::OnResizeMessage(
|
| @@ -316,8 +322,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_size,
|
| + params.resizer_rect, params.is_fullscreen);
|
|
|
| if (need_ack) {
|
| widget_->set_next_paint_is_resize_ack();
|
| @@ -630,6 +636,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,
|
| + const gfx::Size& visible_viewport_size,
|
| const gfx::Rect& resizer_rect,
|
| bool is_fullscreen,
|
| ResizeAck resize_ack) {
|
| @@ -681,6 +688,10 @@ void RenderWidget::Resize(const gfx::Size& new_size,
|
| resize_ack = NO_RESIZE_ACK;
|
| }
|
|
|
| + webwidget()->resizePinchViewport(gfx::Size(
|
| + visible_viewport_size.width(),
|
| + visible_viewport_size.height()));
|
| +
|
| if (new_size.IsEmpty() || physical_backing_size.IsEmpty()) {
|
| // For empty size or empty physical_backing_size, there is no next paint
|
| // (along with which to send the ack) until they are set to non-empty.
|
| @@ -701,7 +712,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_size_, gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK);
|
| view_screen_rect_ = new_position;
|
| window_screen_rect_ = new_position;
|
| if (!did_show_)
|
| @@ -751,8 +762,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_size,
|
| + params.resizer_rect, params.is_fullscreen, SEND_RESIZE_ACK);
|
| }
|
|
|
| void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) {
|
|
|