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
- chrome invert artifacts https://github.com/bitbof/klecks/issues/8
- safari canvas gradient -> webgl glitch https://github.com/bitbof/klecks/issues/41
- firefox text repositioning after scrolling
- safari apple pencil pressure very high in first event?
- chrome after lifting stylus one pointerevent in position of pointerdown?