Index: content/browser/renderer_host/render_widget_host.cc |
diff --git a/content/browser/renderer_host/render_widget_host.cc b/content/browser/renderer_host/render_widget_host.cc |
index 404ff86093ef97319b1da921c70cda7dfbc631d1..461de1cc69230896df8ec57b9a03b5c8726be9cc 100644 |
--- a/content/browser/renderer_host/render_widget_host.cc |
+++ b/content/browser/renderer_host/render_widget_host.cc |
@@ -195,6 +195,7 @@ bool RenderWidgetHost::OnMessageReceived(const IPC::Message &msg) { |
IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnMsgSetTooltipText) |
IPC_MESSAGE_HANDLER(ViewHostMsg_PaintAtSize_ACK, OnMsgPaintAtSizeAck) |
IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateRect, OnMsgUpdateRect) |
+ IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateIsDelayed, OnMsgUpdateIsDelayed) |
IPC_MESSAGE_HANDLER(ViewHostMsg_HandleInputEvent_ACK, OnMsgInputEventAck) |
IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnMsgFocus) |
IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnMsgBlur) |
@@ -1036,17 +1037,23 @@ void RenderWidgetHost::OnMsgUpdateRect( |
UMA_HISTOGRAM_TIMES("MPArch.RWH_OnMsgUpdateRect", delta); |
} |
+void RenderWidgetHost::OnMsgUpdateIsDelayed() { |
+ // Nothing to do, this message was just to unblock the UI thread. |
+} |
+ |
void RenderWidgetHost::DidUpdateBackingStore( |
const ViewHostMsg_UpdateRect_Params& params, |
const TimeTicks& paint_start) { |
TRACE_EVENT0("renderer_host", "RenderWidgetHost::DidUpdateBackingStore"); |
TimeTicks update_start = TimeTicks::Now(); |
- // ACK early so we can prefetch the next PaintRect if there is a next one. |
- // This must be done AFTER we're done painting with the bitmap supplied by the |
- // renderer. This ACK is a signal to the renderer that the backing store can |
- // be re-used, so the bitmap may be invalid after this call. |
- Send(new ViewMsg_UpdateRect_ACK(routing_id_)); |
+ if (ViewHostMsg_UpdateRect_Flags::needs_ack(params.flags)) { |
+ // ACK early so we can prefetch the next PaintRect if there is a next one. |
darin (slow to review)
2011/11/15 08:06:04
nit: indentation
piman
2011/11/16 01:00:55
Done.
|
+ // This must be done AFTER we're done painting with the bitmap supplied by |
+ // the renderer. This ACK is a signal to the renderer that the backing |
+ // store can be re-used, so the bitmap may be invalid after this call. |
+ Send(new ViewMsg_UpdateRect_ACK(routing_id_)); |
+ } |
// Move the plugins if the view hasn't already been destroyed. Plugin moves |
// will not be re-issued, so must move them now, regardless of whether we |