summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-24 19:23:26 +0000
committeralekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-24 19:23:26 +0000
commit826fa729e3763314e75a8391af8b7ca50f3aa573 (patch)
tree1eb510da8861e87850e749a15a6caead51129d3d
parent602627ccfcedd1183fa558a89ade93e9b8c4416a (diff)
downloadchromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.zip
chromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.tar.gz
chromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.tar.bz2
Update renderer's resize corner rect cached in RenderWidgetHost only on resize ack.
BUG=64113 TEST=browser_tests should pass. Review URL: http://codereview.chromium.org/5368001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67292 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/renderer_host/render_widget_host.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc
index 7f84227..7e6f2ce 100644
--- a/chrome/browser/renderer_host/render_widget_host.cc
+++ b/chrome/browser/renderer_host/render_widget_host.cc
@@ -263,11 +263,7 @@ void RenderWidgetHost::WasRestored() {
// could handle both the restore and resize at once. This isn't that big a
// deal as RenderWidget::WasRestored delays updating, so that the resize from
// WasResized is usually processed before the renderer is painted.
- //
- // NOTE: This is disabled on Mac because of 64113.
-#if !defined(OS_MACOSX)
WasResized();
-#endif
}
void RenderWidgetHost::WasResized() {
@@ -304,6 +300,8 @@ void RenderWidgetHost::WasResized() {
// Message was sent successfully, but we do not expect to receive an ACK,
// so update current values right away.
current_size_ = new_size;
+ // TODO(alekseys): send a message from renderer to ack a reserved rect
+ // changes only.
current_reserved_rect_ = reserved_rect;
}
}
@@ -803,7 +801,6 @@ void RenderWidgetHost::OnMsgUpdateRect(
// Update our knowledge of the RenderWidget's size.
current_size_ = params.view_size;
- current_reserved_rect_ = params.resizer_rect;
bool is_resize_ack =
ViewHostMsg_UpdateRect_Flags::is_resize_ack(params.flags);
@@ -815,6 +812,13 @@ void RenderWidgetHost::OnMsgUpdateRect(
resize_ack_pending_ = false;
in_flight_size_.SetSize(0, 0);
in_flight_reserved_rect_.SetRect(0, 0, 0, 0);
+ // Update our knowledge of the RenderWidget's resizer rect.
+ // ViewMsg_Resize is acknowledged only when view size is actually changed,
+ // otherwise current_reserved_rect_ is updated immediately after sending
+ // ViewMsg_Resize to the RenderWidget and can be clobbered by
+ // OnMsgUpdateRect called for a paint that was initiated before the resize
+ // message was sent.
+ current_reserved_rect_ = params.resizer_rect;
}
bool is_repaint_ack =