Index: ui/gl/android/surface_texture.cc |
diff --git a/ui/gl/android/surface_texture.cc b/ui/gl/android/surface_texture.cc |
index a580041f3b73941f2be2798908cf69f534453d42..3f55cbdaa75d990b286a00d51385f4c831b2cf59 100644 |
--- a/ui/gl/android/surface_texture.cc |
+++ b/ui/gl/android/surface_texture.cc |
@@ -123,6 +123,10 @@ void SurfaceTexture::DetachFromGLContext() { |
ANativeWindow* SurfaceTexture::CreateSurface() { |
JNIEnv* env = base::android::AttachCurrentThread(); |
ScopedJavaSurface surface(this); |
+ // Note: This ensures that any local references used by |
+ // ANativeWindow_fromSurface are released immediately. This is needed as a |
+ // workaround for https://code.google.com/p/android/issues/detail?id=68174 |
+ base::android::ScopedJavaLocalFrame scoped_local_reference_frame(env); |
ANativeWindow* native_window = ANativeWindow_fromSurface( |
env, surface.j_surface().obj()); |
return native_window; |