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
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| Date | Live Demo | Summary | Effects | Issue Link |
|---|
- chrome invert artifacts bitbof/klecks#8
- safari canvas gradient -> webgl glitch bitbof/klecks#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?