]> git.codecow.com Git - nano-pow.git/commitdiff
Restrict GL canvas size to a reasonable value instead of letting Firefox go crazy.
authorChris Duncan <chris@codecow.com>
Thu, 21 May 2026 18:14:49 +0000 (11:14 -0700)
committerChris Duncan <chris@codecow.com>
Thu, 21 May 2026 18:14:49 +0000 (11:14 -0700)
test/index.html

index 451052ab5cce7e4387183512a55e4d51920a27f9..1660fb8ff391838254c36cd6683655dc4fe6d630 100644 (file)
@@ -28,13 +28,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
 
                const glSize = (canvas => {
                        const gl = canvas.getContext('webgl2')
-                       const MAX_VIEWPORT_DIMS = gl.getParameter(gl.MAX_VIEWPORT_DIMS)
-                       canvas.height = MAX_VIEWPORT_DIMS?.[0] ?? 0x1000
-                       canvas.width = MAX_VIEWPORT_DIMS?.[1] ?? 0x1000
-                       return gl.drawingBufferHeight < gl.drawingBufferWidth ? gl.drawingBufferHeight : gl.drawingBufferWidth
+                       const MAX_VIEWPORT_DIMS = gl?.getParameter(gl.MAX_VIEWPORT_DIMS)
+                       const size = Math.min(0x2000, ...MAX_VIEWPORT_DIMS) || 0x1000
+                       canvas.height = canvas.width = size
+                       return gl?.drawingBufferHeight < gl?.drawingBufferWidth ? gl?.drawingBufferHeight : gl?.drawingBufferWidth
                })(new OffscreenCanvas(0, 0))
 
-               function random (size = 64) {
+               function random(size = 64) {
                        let hex = ''
                        while (hex.length < size) {
                                hex += crypto.randomUUID().replace(/-.*-/g, '')