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

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

Issue 19331002: Associate an id with the output surface to handle lost contexts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android, tests Created 7 years, 5 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 80db16b75794196df8fbd41337f2479b8e471267..943c2fe0abbd90ab4da12e4198c6f30d63a689dd 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1792,10 +1792,11 @@ bool RenderWidgetHostImpl::OnSwapCompositorFrame(
if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param))
return false;
scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame);
- param.a.AssignTo(frame.get());
+ uint32 output_surface_id = param.a;
+ param.b.AssignTo(frame.get());
if (view_) {
- view_->OnSwapCompositorFrame(frame.Pass());
+ view_->OnSwapCompositorFrame(output_surface_id, frame.Pass());
view_->DidReceiveRendererFrame();
} else {
cc::CompositorFrameAck ack;
@@ -1807,7 +1808,8 @@ bool RenderWidgetHostImpl::OnSwapCompositorFrame(
} else if (frame->software_frame_data) {
ack.last_software_frame_id = frame->software_frame_data->id;
}
- SendSwapCompositorFrameAck(routing_id_, process_->GetID(), ack);
+ SendSwapCompositorFrameAck(routing_id_, process_->GetID(),
+ output_surface_id, ack);
}
return true;
}
@@ -2556,10 +2558,15 @@ void RenderWidgetHostImpl::AcknowledgeBufferPresent(
// static
void RenderWidgetHostImpl::SendSwapCompositorFrameAck(
- int32 route_id, int renderer_host_id, const cc::CompositorFrameAck& ack) {
+ int32 route_id,
+ uint32 output_surface_id,
+ int renderer_host_id,
+ const cc::CompositorFrameAck& ack) {
RenderProcessHost* host = RenderProcessHost::FromID(renderer_host_id);
- if (host)
- host->Send(new ViewMsg_SwapCompositorFrameAck(route_id, ack));
+ if (!host)
+ return;
+ host->Send(new ViewMsg_SwapCompositorFrameAck(
+ route_id, output_surface_id, ack));
}
void RenderWidgetHostImpl::AcknowledgeSwapBuffersToRenderer() {

Powered by Google App Engine
This is Rietveld 408576698