diff --git a/content/canvas/src/WebGLContextGL.cpp b/content/canvas/src/WebGLContextGL.cpp index a46f4ee0c95..507b62295b9 100644 --- a/content/canvas/src/WebGLContextGL.cpp +++ b/content/canvas/src/WebGLContextGL.cpp @@ -3708,6 +3708,15 @@ WebGLContext::LinkProgram(WebGLProgram *program, ErrorResult& rv) if (ok) { bool updateInfoSucceeded = program->UpdateInfo(); program->SetLinkStatus(updateInfoSucceeded); + + // Bug 750527 + if (gl->WorkAroundDriverBugs() && + updateInfoSucceeded && + gl->Vendor() == gl::GLContext::VendorNVIDIA) + { + if (program == mCurrentProgram) + gl->fUseProgram(progname); + } } else { program->SetLinkStatus(false);