Index: content/browser/renderer_host/compositing_iosurface_mac.mm |
diff --git a/content/browser/renderer_host/compositing_iosurface_mac.mm b/content/browser/renderer_host/compositing_iosurface_mac.mm |
index f1754cf0f97593dca7eaf38fbdc46cc320bb7d3b..1786fb6917d09a6502c297cfc0f05b5c1293294c 100644 |
--- a/content/browser/renderer_host/compositing_iosurface_mac.mm |
+++ b/content/browser/renderer_host/compositing_iosurface_mac.mm |
@@ -100,11 +100,13 @@ void CompositingIOSurfaceMac::SetIOSurface(uint64 io_surface_handle) { |
} |
void CompositingIOSurfaceMac::DrawIOSurface(NSView* view) { |
- TRACE_EVENT0("browser", "CompositingIOSurfaceMac::DrawIOSurface"); |
CGLSetCurrentContext(cglContext_); |
bool has_io_surface = MapIOSurfaceToTexture(io_surface_handle_); |
+ TRACE_EVENT1("browser", "CompositingIOSurfaceMac::DrawIOSurface", |
+ "has_io_surface", has_io_surface); |
+ |
[glContext_ setView:view]; |
NSSize window_size = [view frame].size; |
glViewport(0, 0, window_size.width, window_size.height); |
@@ -291,6 +293,11 @@ void CompositingIOSurfaceMac::UnrefIOSurfaceWithContextCurrent() { |
} |
io_surface_.reset(); |
+ |
+ // Forget the ID, because even if it is still around when we want to use it |
+ // again, OSX may have reused the same ID for a new tab and we don't want to |
+ // blit random tab contents. |
+ io_surface_handle_ = 0; |
} |
void CompositingIOSurfaceMac::GlobalFrameDidChange() { |