And you know what's worse? Some of these APIs conflate different concepts together: it's a tablet so it doesn't have a keyboard... no wait, it's detachable, the user can plug it in. Oh no, we were joking, it's a foldable laptop so when it turns into a tablet it still has a keyboard attached, but it's disabled! You need a different API to query that! Also you should check the registry, there's firmware hooks updating it. But the firmware is buggy and lies to you. 5/13
Conversation
Notices
-
Embed this notice
Gabriele Svelto (gabrielesvelto@fosstodon.org)'s status on Sunday, 20-Aug-2023 02:04:42 JST Gabriele Svelto
- Haelwenn /элвэн/ :triskell: likes this.
-
Embed this notice
Gabriele Svelto (gabrielesvelto@fosstodon.org)'s status on Sunday, 20-Aug-2023 02:04:43 JST Gabriele Svelto
The first one is a #Windows input bug: the virtual keyboard did not show up when editing some texts on Windows tablet-convertible laptops on Windows 11.
https://bugzilla.mozilla.org/show_bug.cgi?id=1722208
Sounds like an obscure area of input code? You bet it is! Windows has several different APIs to figure out if a machine has a touch screen or not, if it's a tablet or not, if it has a keyboard or not and whether it was detached... and thus needs to display an on-screen one. 4/13
-
Embed this notice
Gabriele Svelto (gabrielesvelto@fosstodon.org)'s status on Sunday, 20-Aug-2023 02:04:44 JST Gabriele Svelto
These must run over an astounding amount of different hardware, some of which with very peculiar behaviors, hardware- or configuration-specific bugs and very different support levels. So in some cases a certain feature will have two, three or sometimes even four fallback paths to support specific setups. This is a lot of complexity in the code and it makes doing changes and testing them extremely hard. Old platforms pose extra challenges on top of this, so let me give you a few examples. 3/13
-
Embed this notice
Gabriele Svelto (gabrielesvelto@fosstodon.org)'s status on Sunday, 20-Aug-2023 02:04:45 JST Gabriele Svelto
Before we dive into the bugs themselves it's important to understand just how complex our platform support is: Firefox runs on 4 different operating systems, and for each of them it uses dozens of platform-specific APIs to implement a huge amount of features: input handling, media decoding, various forms of hardware acceleration, accessibility, window management, the list goes on and on... 2/13
-
Embed this notice
Gabriele Svelto (gabrielesvelto@fosstodon.org)'s status on Sunday, 20-Aug-2023 02:04:47 JST Gabriele Svelto
Starting with version 116, #Firefox will drop support for macOS versions prior to 10.15 as well as Windows 7, 8 and 8.1. This has understandably annoyed a few users so let me explain why we're taking this step: the maintenance burden of supporting several versions of each platform is very significant. I'll show you how much by citing three platform-specific bugs I've worked on over the past two years. 🧵 1/13