Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_impl.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
| index 24ff901dd48668f1c2535abbbab177c40cacb89e..d4df40b16c8158949aa49bea87209cdb8f28dcae 100644 |
| --- a/content/browser/renderer_host/render_widget_host_impl.cc |
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc |
| @@ -1484,6 +1484,16 @@ bool RenderWidgetHostImpl::OnSwapCompositorFrame( |
| scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| uint32 output_surface_id = param.a; |
| param.b.AssignTo(frame.get()); |
| + std::vector<IPC::Message> messages_to_deliver_with_frame; |
| + messages_to_deliver_with_frame.swap(param.c); |
| + |
| + for (std::vector<IPC::Message>::const_iterator i = |
| + messages_to_deliver_with_frame.begin(); |
| + i != messages_to_deliver_with_frame.end(); |
| + ++i) { |
| + GetProcess()->OnMessageReceived(*i); |
|
mkosiba (inactive)
2014/05/13 19:15:26
reentrant IPC dispatch seems shady to me.
|
| + } |
| + messages_to_deliver_with_frame.clear(); |
| for (size_t i = 0; i < frame->metadata.latency_info.size(); i++) |
| AddLatencyInfoComponentIds(&frame->metadata.latency_info[i]); |