Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 773a0701c9959b9e6bf76ec4b5e5e82b07baca0a..240e69d0461b75eb2653d34635db33a69f57aea7 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -181,6 +181,7 @@ class RenderWidget::ScreenMetricsEmulator { |
// The following methods alter handlers' behavior for messages related to |
// widget size and position. |
void OnResizeMessage(const ViewMsg_Resize_Params& params); |
+ void ResizeSynchronously(const gfx::Rect& rect); |
void OnUpdateScreenRectsMessage(const gfx::Rect& view_screen_rect, |
const gfx::Rect& window_screen_rect); |
void OnShowContextMenu(ContextMenuParams* params); |
@@ -335,6 +336,14 @@ void RenderWidget::ScreenMetricsEmulator::OnResizeMessage( |
} |
} |
+void RenderWidget::ScreenMetricsEmulator::ResizeSynchronously( |
+ const gfx::Rect& rect) { |
+ original_size_ = rect.size(); |
+ original_view_screen_rect_ = rect; |
+ original_window_screen_rect_ = rect; |
+ Reapply(); |
+} |
+ |
void RenderWidget::ScreenMetricsEmulator::OnUpdateScreenRectsMessage( |
const gfx::Rect& view_screen_rect, |
const gfx::Rect& window_screen_rect) { |
@@ -694,10 +703,14 @@ 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_, |
- visible_viewport_size_, gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK); |
- view_screen_rect_ = new_position; |
- window_screen_rect_ = new_position; |
+ if (screen_metrics_emulator_) { |
+ screen_metrics_emulator_->ResizeSynchronously(new_position); |
+ } else { |
+ Resize(new_position.size(), new_position.size(), overdraw_bottom_height_, |
+ visible_viewport_size_, gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK); |
+ view_screen_rect_ = new_position; |
+ window_screen_rect_ = new_position; |
+ } |
if (!did_show_) |
initial_pos_ = new_position; |
} |