Index: content/browser/android/in_process/synchronous_compositor_impl.cc |
diff --git a/content/browser/android/in_process/synchronous_compositor_impl.cc b/content/browser/android/in_process/synchronous_compositor_impl.cc |
index 0a0be1cd16ebf452a0c54c037c5828b6b9c3d4e5..def1a78cd2003a1e90c116a21e1d62931ca32ec5 100644 |
--- a/content/browser/android/in_process/synchronous_compositor_impl.cc |
+++ b/content/browser/android/in_process/synchronous_compositor_impl.cc |
@@ -129,6 +129,7 @@ scoped_ptr<cc::CompositorFrame> SynchronousCompositorImpl::DemandDrawHw( |
surface_size, transform, viewport, clip, stencil_enabled); |
if (frame.get()) |
UpdateFrameMetaData(frame->metadata); |
+ |
return frame.Pass(); |
} |
@@ -163,6 +164,7 @@ void SynchronousCompositorImpl::UpdateFrameMetaData( |
contents_->GetRenderWidgetHostView()); |
if (rwhv) |
rwhv->SynchronousFrameMetadata(frame_metadata); |
+ DeliverMessages(); |
} |
void SynchronousCompositorImpl::SetMemoryPolicy( |
@@ -242,6 +244,17 @@ InputEventAckState SynchronousCompositorImpl::HandleInputEvent( |
contents_->GetRoutingID(), input_event); |
} |
+void SynchronousCompositorImpl::DeliverMessages() { |
+ std::vector<IPC::Message> messages; |
+ output_surface_->GetMessagesToDeliver(&messages); |
+ RenderProcessHost* rph = contents_->GetRenderProcessHost(); |
+ for (std::vector<IPC::Message>::const_iterator i = messages.begin(); |
+ i != messages.end(); |
+ ++i) { |
+ rph->OnMessageReceived(*i); |
+ } |
+} |
+ |
void SynchronousCompositorImpl::DidActivatePendingTree() { |
if (compositor_client_) |
compositor_client_->DidUpdateContent(); |