Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Unified Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 240163005: Deliver IPC messages together with SwapCompositorFrame (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: don't use metadata to stash IPC messages Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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]);

Powered by Google App Engine
This is Rietveld 408576698