Chromium Code Reviews| Index: content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc |
| diff --git a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc |
| index 1217392e320519d3cc1a73723ac05c1c8275bcf4..7251bb947ee06ffd30b8f0f945b8a650aaaa93e1 100644 |
| --- a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc |
| +++ b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc |
| @@ -278,7 +278,9 @@ void WebGraphicsContext3DCommandBufferImpl::prepareTexture() { |
| // used by the compositor. |
| RenderViewImpl* renderview = |
| web_view_ ? RenderViewImpl::FromWebView(web_view_) : NULL; |
|
jamesr
2011/11/09 04:51:58
hold up, this lookup is not threadsafe either.
I
|
| - if (renderview) |
| + CompositorThread* compositor_thread = |
| + RenderThreadImpl::current()->compositor_thread(); |
| + if (renderview && !compositor_thread) |
| renderview->OnViewContextSwapBuffersPosted(); |
| context_->SwapBuffers(); |
| context_->Echo(base::Bind( |
| @@ -1089,7 +1091,9 @@ void WebGraphicsContext3DCommandBufferImpl::OnSwapBuffersComplete() { |
| // This may be called after tear-down of the RenderView. |
| RenderViewImpl* renderview = |
| web_view_ ? RenderViewImpl::FromWebView(web_view_) : NULL; |
| - if (renderview) |
| + CompositorThread* compositor_thread = |
| + RenderThreadImpl::current()->compositor_thread(); |
| + if (renderview && !compositor_thread) |
| renderview->OnViewContextSwapBuffersComplete(); |
| if (swapbuffers_complete_callback_) |
| @@ -1148,7 +1152,9 @@ void WebGraphicsContext3DCommandBufferImpl::OnContextLost( |
| } |
| RenderViewImpl* renderview = |
| web_view_ ? RenderViewImpl::FromWebView(web_view_) : NULL; |
| - if (renderview) |
| + CompositorThread* compositor_thread = |
| + RenderThreadImpl::current()->compositor_thread(); |
| + if (renderview && !compositor_thread) |
| renderview->OnViewContextSwapBuffersAborted(); |
| } |