This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The webglcontextrestored event of the WebGL API is fired if the user agent restores the drawing buffer for a WebGLRenderingContext object.
Once the context is restored, WebGL resources such as textures and buffers that were created before the context was lost are no longer valid. You need to reinitialize the state of your WebGL application and recreate resources.
This event does not bubble.
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("webglcontextrestored", (event) => { })
onwebglcontextrestored = (event) => { }
A WebGLContextEvent. Inherits from Event.
This interface inherits properties from its parent interface, Event.
WebGLContextEvent.statusMessageA read-only property containing additional information about the event.
With the help of the WEBGL_lose_context extension, you can simulate the webglcontextrestored event:
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
canvas.addEventListener(
"webglcontextrestored",
(e) => {
console.log(e);
},
false,
);
gl.getExtension("WEBGL_lose_context").restoreContext();
// "webglcontextrestored" event is logged.
| Specification |
|---|
| WebGL Specification> # 5.15.3> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
webglcontextrestored_event |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4 | 8 |
WebGLContextEventWebGLRenderingContext.isContextLost()WEBGL_lose_context, WEBGL_lose_context.loseContext(), WEBGL_lose_context.restoreContext()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/webglcontextrestored_event