Browser detection script (only!) malfunctioning on Pale Moon 32.x

On the majority of Discourse instances I visit with Pale Moon 32.x, I initially get a crippled view with a “browser too old” banner at the top. However, this is a false positive from the browser-detect JS, since using an adblocker to disable /assets/browser-detect-<hash>.br.js allows full functionality from the sites. (As expected, since Pale Moon supports most modern web standards.)

In other words, you’ve successfully written a site that will work on modern browsers, but then arbitrarily limited it to a handpicked selection of them with user agent sniffing from the 90s. This has the unintended side effect of limiting user freedom and propping up Google’s near-monopoly on the web. Please fix this!

We don’t arbitrarily limit browsers. We use feature detection to determine whether a browser supports all the modern web APIs which Discourse relies on. Our current checks are:

So, Pale Moon must be missing one of those features.


Ah, I see. Thanks for the prompt reply, and correcting my misconceptions!

Only CSS.supports("aspect-ratio: 1") is false. I have to admit it puzzles me that you would need to detect that, especially since as I went looking to see what styles rely on that, I found quite a few places in the CSS with @supports not (aspect-ratio: 1) {/*...*/} blocks and the like, which would seem to explain why the sites’ appearance is fine despite lacking aspect-ratio support. (I’ve never noticed any visual problems anywhere despite using Discourse extensively in both PM and in other browsers.)

1 Like