| Index: ui/gl/gl_image_android_native_buffer.cc | 
| diff --git a/ui/gl/gl_image_android_native_buffer.cc b/ui/gl/gl_image_android_native_buffer.cc | 
| index 5e311eeef785a3934fc7604e35942498d81cc650..0323954be572f35724c4733b51778ce0f6a0820c 100644 | 
| --- a/ui/gl/gl_image_android_native_buffer.cc | 
| +++ b/ui/gl/gl_image_android_native_buffer.cc | 
| @@ -18,7 +18,10 @@ GLImageAndroidNativeBuffer::GLImageAndroidNativeBuffer(const gfx::Size& size) | 
| texture_id_for_unbind_(0) { | 
| } | 
|  | 
| -GLImageAndroidNativeBuffer::~GLImageAndroidNativeBuffer() { Destroy(); } | 
| +GLImageAndroidNativeBuffer::~GLImageAndroidNativeBuffer() { | 
| +  DCHECK_EQ(EGL_NO_IMAGE_KHR, egl_image_); | 
| +  DCHECK_EQ(0u, texture_id_for_unbind_); | 
| +} | 
|  | 
| bool GLImageAndroidNativeBuffer::Initialize(EGLClientBuffer native_buffer) { | 
| EGLint attrs[] = {EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE}; | 
| @@ -26,18 +29,20 @@ bool GLImageAndroidNativeBuffer::Initialize(EGLClientBuffer native_buffer) { | 
| EGL_NATIVE_BUFFER_ANDROID, native_buffer, attrs); | 
| } | 
|  | 
| -void GLImageAndroidNativeBuffer::Destroy() { | 
| +void GLImageAndroidNativeBuffer::Destroy(bool have_context) { | 
| if (egl_image_for_unbind_ != EGL_NO_IMAGE_KHR) { | 
| eglDestroyImageKHR(GLSurfaceEGL::GetHardwareDisplay(), | 
| egl_image_for_unbind_); | 
| egl_image_for_unbind_ = EGL_NO_IMAGE_KHR; | 
| } | 
| + | 
| if (texture_id_for_unbind_) { | 
| -    glDeleteTextures(1, &texture_id_for_unbind_); | 
| -    texture_id_for_unbind_ = 0; | 
| +    if (have_context) | 
| +      glDeleteTextures(1, &texture_id_for_unbind_); | 
| +    texture_id_for_unbind_ = 0u; | 
| } | 
|  | 
| -  GLImageEGL::Destroy(); | 
| +  GLImageEGL::Destroy(have_context); | 
| } | 
|  | 
| bool GLImageAndroidNativeBuffer::BindTexImage(unsigned target) { | 
| @@ -64,7 +69,7 @@ bool GLImageAndroidNativeBuffer::BindTexImage(unsigned target) { | 
| } | 
|  | 
| void GLImageAndroidNativeBuffer::WillUseTexImage() { | 
| -  DCHECK(egl_image_); | 
| +  DCHECK_NE(EGL_NO_IMAGE_KHR, egl_image_); | 
| DCHECK(!in_use_); | 
| in_use_ = true; | 
| glEGLImageTargetTexture2DOES(target_, egl_image_); | 
| @@ -72,6 +77,7 @@ void GLImageAndroidNativeBuffer::WillUseTexImage() { | 
| } | 
|  | 
| void GLImageAndroidNativeBuffer::DidUseTexImage() { | 
| +  DCHECK_NE(EGL_NO_IMAGE_KHR, egl_image_); | 
| DCHECK(in_use_); | 
| in_use_ = false; | 
|  | 
|  |