From b16a1ca7c5079f203da009cb34d7c665eac2fc52 Mon Sep 17 00:00:00 2001 From: Jim Fisher Date: Thu, 24 Sep 2020 19:05:00 +0100 Subject: [PATCH 1/3] Check for null returned from canvas.getContext getWebGLRenderingContext can clearly return null. This is expected behavior, because canvas.getContext can return null. We therefore must check for null before trying to call .isContextLost on it. --- tfjs-backend-webgl/src/canvas_util.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tfjs-backend-webgl/src/canvas_util.ts b/tfjs-backend-webgl/src/canvas_util.ts index dd940899411..92ce2949cfe 100644 --- a/tfjs-backend-webgl/src/canvas_util.ts +++ b/tfjs-backend-webgl/src/canvas_util.ts @@ -34,7 +34,13 @@ export function setWebGLContext( export function getWebGLContext(webGLVersion: number): WebGLRenderingContext { if (!(webGLVersion in contexts)) { - contexts[webGLVersion] = getWebGLRenderingContext(webGLVersion); + const newCtx = getWebGLRenderingContext(webGLVersion); + if (newCtx) { + contexts[webGLVersion] = newCtx; + } else { + console.log("Could not get context for WebGL version", webGLVersion); + return null; + } } const gl = contexts[webGLVersion]; if (gl.isContextLost()) { From 47d8bb6e03f114b5b1842f010d7746e53fe596ff Mon Sep 17 00:00:00 2001 From: Jim Fisher Date: Thu, 24 Sep 2020 19:15:21 +0100 Subject: [PATCH 2/3] Make yarn lint happy --- tfjs-backend-webgl/src/canvas_util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tfjs-backend-webgl/src/canvas_util.ts b/tfjs-backend-webgl/src/canvas_util.ts index 92ce2949cfe..a2347630ff6 100644 --- a/tfjs-backend-webgl/src/canvas_util.ts +++ b/tfjs-backend-webgl/src/canvas_util.ts @@ -38,7 +38,7 @@ export function getWebGLContext(webGLVersion: number): WebGLRenderingContext { if (newCtx) { contexts[webGLVersion] = newCtx; } else { - console.log("Could not get context for WebGL version", webGLVersion); + console.log('Could not get context for WebGL version', webGLVersion); return null; } } From 42596fd70c49e33c1ad0bea8d29734e7b92fa7a1 Mon Sep 17 00:00:00 2001 From: Jim Fisher Date: Tue, 29 Sep 2020 13:53:21 +0100 Subject: [PATCH 3/3] Clearer null check --- tfjs-backend-webgl/src/canvas_util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tfjs-backend-webgl/src/canvas_util.ts b/tfjs-backend-webgl/src/canvas_util.ts index a2347630ff6..c255ce9cd52 100644 --- a/tfjs-backend-webgl/src/canvas_util.ts +++ b/tfjs-backend-webgl/src/canvas_util.ts @@ -35,7 +35,7 @@ export function setWebGLContext( export function getWebGLContext(webGLVersion: number): WebGLRenderingContext { if (!(webGLVersion in contexts)) { const newCtx = getWebGLRenderingContext(webGLVersion); - if (newCtx) { + if (newCtx !== null) { contexts[webGLVersion] = newCtx; } else { console.log('Could not get context for WebGL version', webGLVersion);