browser-bug-demos

This repo demonstrates some browser bugs that tend to affect drawing web apps the most. Status should be fairly up-to-date.

Visit here for easy viewing of demos: bitbof.github.io/browser-bug-demos

Not Fixed

Chrome

Date Live Demo Summary Effects Issue Link
2021-02-15 View In an iframe, when using a stylus, PointerEvent.pointerId is inconsistent. Drawing applications can't reliably run in iframes. I.e. Kleki/Klecks can't be embedded via iframe without glitching. Chromium Ticket (reported 2021-02-15)
2022-04-28 View CanvasRenderingContext2D deletes parts of image after switching tabs. With certain hardware, drawing apps or image editing apps aren't reliable, as image data gets corrupted when switching tabs. I.e. Kleki/Klecks users lose progress. Chromium Ticket (reported 2022-03-24)
2022-10-19 View Context2d arc() fill() draws jagged circles on MacOS M1. Applications relying on the canvas arc method achieve bad quality circles. I.e. the pen tool in Kleki/Klecks looks much worse. Chromium Ticket (reported 2022-10-23)
2024-06-23 no demo Cursor disappears with Windows Ink Seeing no cursor worsens visual feedback for stylus users. Chromium Ticket (reported 2024-06-23)

Safari

Date Live Demo Summary Effects Issue Link
2024-09-02 View On macOS, while fullscreen, pressing the escape key will not fire keyup Breaks logic which assumes that key events are reliable WebKit Bugzilla Ticket (reported 2024-09-02)

Firefox

Date Live Demo Summary Effects Issue Link
2022-03-08 View PointerEvent.buttons attribute is inconsistent when using a stylus. Drawing applications break, unless they handle Firefox differently (not trust the button attribute). Bugzilla Ticket (reported 2022-03-08)
2023-06-11 View Visual glitches in canvas when drawing a line. Drawing applications will draw glitchy strokes on Windows. Bugzilla Ticket (reported 2023-06-11)
2023-11-03 View globalCompositeOperation makes canvas without alpha channel transparent Higher memory use, and slower rendering. Bugzilla Ticket (reported 2023-11-03)
2024-09-02 View On macOS, while fullscreen, pressing the escape key will not fire keyup Breaks logic which assumes that key events are reliable Bugzilla Ticket (reported 2024-09-02)

Fixed (Archive)

Chrome

Date Live Demo Summary Effects Issue Link
2024-06-23 View Context2d arc() fill() draws strange shapes for small radii. Applications relying on the canvas arc method achieve bad quality circles. I.e. the pen tool in Kleki/Klecks looks much worse. Chromium Ticket (reported 2024-06-23, fixed 2024-07-24 in Chrome 127)
2023-05-06 kleki.com canvas.context('webgl') fails on Chrome OS on some pages (not on all devices) Features relying on WebGL do not work (filters in Kleki/Klecks) Chromium Ticket (reported 2023-05-06, fixed 2023-06-14)

Safari

Date Live Demo Summary Effects Issue Link
2023-04-30 View Canvas putImageData draws onto wrong canvas. If you duplicate canvases, the putImageData method becomes unreliable. I.e. it breaks the paint bucket in Kleki/Klecks without a special workaround. WebKit Bugzilla Ticket (reported on 2023-04-30, fixed 2023-05-11)

Firefox

Date Live Demo Summary Effects Issue Link

todo